Stripe & NetSuite Best Practices

Here is a set of best practices for your customer support and finance teams to follow to ensure all aspects of the integration work smoothly.

NetSuite Best Practices

  • Never delete transactions in NetSuite created by the integration. This includes invoices, credit memos, payments, refunds, disputes, deposits, etc.
  • Never void transactions (payments, refunds, etc) in NetSuite created by the integration.
  • Never adjust the amount of payments or refunds created by the integration. This will trigger errors during the automatic reconciliation process.
  • If you are using the authorization-and-capture workflow, do not manually capture transactions in Stripe.
  • Deleting or merging customers can be done, but you’ll need to re-link the customer records in Stripe. Contact support before deleting or merging customers to understand the integration impact.
  • Invoices created by the integration can be edited as long as the total does not charge. This is not a hard rule, contact support if this is a requirement for your use-case.
  • Do not deposit any transactions (payments and refunds) created by the integration, this will cause issues with the automatic reconciliation process. Transactions are deposited/reconciled automatically.
  • Do not lock any transactions that need to be processed by the integration

Stripe Best Practices

  • Do not connect additional services to your Stripe account without contacting support. For instance, if you start doing events, do not connect your Stripe account to your event system. Instead, create a new Stripe account dedicated to processing event charges.
  • Do not delete customers in Stripe without contacting support. This operation is supported, but it’s important you understand how this will effect the integration.
  • If you are using the eCommerce or Auth-fulfill-capture flow, don't issue refunds directly in Stripe. Instead use NetSuite to issue refunds.
  • If you are using the auth-fulfill-capture flow do not capture charges directly in the Stripe Dashboard. Let SuiteSync manage capturing and releasing charges.
  • Do not disable automatic transfers
  • Do not use the customer balance. This feature is supported, but posts to a unique item in NetSuite which may confusing for the finance team. Contact support if this is a heavily used feature in your account.

Multiple Stripe Accounts

The integration supports connecting multiple Stripe accounts to the same NetSuite instance. Whether or not multiple Stripe accounts should be used depends on a number of factors. We are happy to talk through this decision during the onboarding process with you.

Here are general guidelines for when separate Stripe accounts should be used:

  • Each Stripe account should be tied to a different NetSuite subsidiary. If you are using multiple subsidiaries in NetSuite, each subsidiary must have it's own Stripe account (note that there are ways around this, but it is error-prone and not recommended).
  • The customer support or finance teams will not be given access to both Stripe accounts. If you'd like to segregate who has access to certain Stripe data, you'll need to separate the data out into separate Stripe accounts.
  • The integration configuration for each account is very different. For example, each account might be tied to a different department or use a different workflow (eCommerce vs subscription).
  • Revenue needs to be deposited in a different bank account depending on the site/app that it was purchased under.

Here's when multiple Stripe accounts should not be used:

  • The integration configuration is largely the same across both accounts. For example, they are both eCommerce accounts, both posting to the same department/class/subsidiary, etc.
  • The same customer service and finance teams will have access to both accounts. Having two Stripe accounts creates additional work and possible confusion for these teams.
  • Each day two deposits will be pushed to your bank account. This does not add additional reconciliation work (this is automated).
  • Note that Stripe considers separate Stripe accounts as a single account for volume pricing.
  • You'd like to have separate API keys for multiple sites or components of an application. This can be done by creating a Stripe Connect account and authorizing it against your primary Stripe account, essentially creating sub-accounts of a primary "master" Stripe account.
  • Saved payment method information should be shared between the various sites/applications using Stripe. Note that using a single Stripe account does force you to share saved payment information, but gives you that option.

Some other considerations to keep in mind:

  • Fraud configuration across each account will be need to be separately maintained and monitored
  • Any other Stripe applications will need to be setup, paid for, and maintained separately.
  • Any dispute/chargeback automation, or integration with other systems will be more complex. You'll need to listen for webhooks from multiple accounts and essentially built multi-tenant support into those systems.