Pablo Fernandez
Pablo Fernandez

Reputation: 287850

Avoiding dual conversion of currency in Stripe

We are using Stripe to charge our customers with monthly subscriptions. We are based in the UK and we have a GBP bank. We publish prices in USD so our plans in Stripe have dollar amounts.

When charging a British customer, how do I avoid going from the GBP of the customer credit card to the USD of my price to the GBP of my bank account? I'd rathe do GBP -> GBP with no conversion.

More or less the same would apply for other currencies, I'd rather do EUR -> GBP than EUR -> USD -> GBP.

Upvotes: 4

Views: 5489

Answers (2)

Pablo Fernandez
Pablo Fernandez

Reputation: 287850

From Fred from Stripe support:

Conversion between currencies only happens once when funds are transferred to your Stripe account. If your account is in GBP, and your customer is in GBP, you won't be charged the 2% conversion fee.

When you charge in USD, and have a GBP bank account, Stripe does a quick exchange rate calculation to convert the USD amount into the equivalent GBP amount. Conversion fees are only charged when your customer's currency doesn't match your bank's currency.

More documentation on this here: https://support.stripe.com/questions/which-currencies-does-stripe-support

So, what I want happens automatically.

Upvotes: 4

Ywain
Ywain

Reputation: 17533

You'd need to have different plans set in GBP, and subscribe your UK customers to one of those plans rather than one of the USD plans.

One possible way to do this would be something like this:

  1. Collect the customer's card information using Stripe.js or Checkout.

  2. On your backend, retrieve the full token object using the token ID, and check the card's issuing country via the card.country attribute.

  3. Depending on the country ("GB" or not), display the correct amount and currency to your customer (in GBP or USD).

  4. Once the customer has confirmed, create a customer object with the token and subscribe them to the correct plan.

Upvotes: 0

Related Questions