Multiple Currencies

Payments in multiple currencies is fully supported. The integration will automatically reconcile payments in a foreign currency to the correct deposit with the converted destination currency amount.


How Foreign Currencies can be Set Up with Stripe

There are two main ways to use Stripe with foreign currencies:

  1. Charge in foreign currencies out of a single Stripe account and let Stripe convert the payment to the currency of your settlement bank
  2. Create multiple Stripe accounts attached to various subsidiaries of your companies. Connect various settlement accounts to these Stripe accounts, one for each currency you charge in. Stripe will create a bank deposit for each settlement currencies in each Stripe account to avoid currency conversion fees.

Option #1 is much easier to setup, manage, and maintain. Option #2 provides the opportunity to manage FX risk on your end and eliminate processing fees.

Take a look at Stripe's currency conversion documentation for more information.

Customers

In order for a currency to be used in NetSuite, it has to be added to the NetSuite customer. SuiteSync adds all active NetSuite currencies to the NetSuite customer when multiple currencies are used in Stripe.

Here's where the currencies are added on the NetSuite customer record:

NetSuite Customer Currencies

Note that auto-adding all NetSuite currencies to the NetSuite customer is an optional feature. If you are managing the customer creation process, you may need to add active currencies to the NetSuite customer on your end.

Charges & Refunds

The currency on a NetSuite payment or refund is chosen to match the Stripe payment's currency. If the charge currency is not the same as the currency of the corresponding payout (aka deposit or batch payment), the amount of the converted currency is indicated on the deposit.

Here's an example foreign currency payment in Stripe:

NetSuite Customer Currencies

The red box is the currency that is presented to the customer. The yellow box is the amount that you'll receive in your payout from Stripe (less processing & currency conversion fees). In other words, the amount in the red box is the amount on your NetSuite payment or refund and the amount in the yellow box is the converted currency amount specified in the bank deposit in NetSuite (details of how this looks in NetSuite is spelled out below).

If the currency of the Stripe payment does not exist in the NetSuite account, the payment is not translated until that currency is created in NetSuite. We don't create currencies in NetSuite for you; you'll need to make sure that the appropriate currencies exist in your NetSuite account.

Payouts (Deposits)

A NetSuite Bank Account is associated with a currency. Unlike payments and refunds, a NetSuite Deposit does not have a direct currency setting. The currency for a NetSuite deposit is determined based on which bank account the deposit posts to.

When a Stripe payout is pushed to NetSuite a deposit is created. The bank account for a deposit is chosen based on the currency of the transfer. If your NetSuite account has multiple bank accounts for a given currency in NetSuite, you can customize which bank account is chosen for a specific currency.

For example, if Stripe deposited a charge of 75 EUR as 100 USD you'd see the following records in NetSuite:

  • A NetSuite CustomerPayment with currency EUR and a payment amount of 75.
  • A NetSuite Deposit associated with a EUR bank account and a Deposits > Payment item containing the CustomerPayment payment amount set to 100.

In the deposit below you'll notice that you can input the deposit amount for the payment or refund if the currency is different from the bank account's currency. SuiteSync inputs the converted currency amount specified by Stripe (as shown in the above Stripe screenshot) into that field:

Multiple Currency Deposits

Multiple Settlement Accounts

By default, Stripe converts all multi-currency charges to a "base" currency on your account. However, in many cases, you can choose to connect payout bank accounts in various currencies to avoid the currency conversion fee and manage FX risk on your own.

Which settlement currencies are supported depends on the country of the legal entity tied to your Stripe account. You can determine which settlement currencies are available on your Stripe account here.

Charges in Previously Unused Currencies

If you start charging customers in a currency that has not previously used, and you have a unique settlement account for that currency, you'll need to setup the account you'd like the automated bank deposits to post to. You can do this under "Bank Deposit Accounts" area of your account settings.

Currency Conversion Fees

By default, Stripe's FX fees are bundled into the charge fees on a deposit.

If needed, the FX fees can be broken out into a separate line item on the deposit. Enabling this feature modifies your account's BalanceTransaction#fee_details API response. This difference in API response may effect other integrations you have in place. Make sure that this change will not effect other integrations you have in place before enabling this feature on your account.

Normally a BalanceTransaction API response for a charge in a currency different from the destination bank account looks like:

{
  "id": "txn_16wKfbFOuE2ChQDi2drfs163",
  "object": "balance_transaction",
  "amount": 799,
  "currency": "gbp",
  "fee": 69,
  "fee_details": [
    {
      "amount": 69,
      "application": null,
      "currency": "gbp",
      "description": "Stripe processing fees",
      "type": "stripe_fee"
    },
  ],
  "net": 730,
  "source": "ch_16wKfbFOuE2ChQDi8APUU7fs",
  "status": "pending",
  "type": "charge"
}

With the FX fee breakout features enabled, the fee_details looks like:

{
  "fee": 69,
  "fee_details": [
    {
      "amount": 53,
      "application": null,
      "currency": "gbp",
      "description": "Stripe processing fees",
      "type": "stripe_fee"
    },
    {
      "amount": 16,
      "application": null,
      "currency": "gbp",
      "description": "Stripe currency conversion fee",
      "type": "stripe_fee"
    }
  ]
}

Currency Conversion Rate

The currency conversion rate is implicitly specified in the 'deposit > payments > amount' sublist column: this is where the amount of the destination currency to be deposited in your bank account is defined, which implicitly specifies the currency conversion rate for a given payment. Unfortunately, NetSuite doesn't let you use this data easily for reporting or other accounting operations.

If you need easy access to this data, you'll have to build a custom process to determine the exact exchange rate based on the NetSuite payment data. Alternatively, you can use Stripe the Charge (or refund) and related balance transaction to calculate the currency conversion amount.