Feature Requests
Closed

Currency enforcement by card country at checkout

Hi team,

I sell a digital tool with region-based pricing: INR for India, USD for the US, EUR for Europe/rest of world. I want to make sure customers are charged in the currency that matches their card, and can't pick a cheaper region's currency. A few questions:

  1. If I create a checkout/payment in one currency (e.g. INR) but the customer pays with a card issued in a different country (e.g. a US or EU card) — does Dodo block/decline it, auto-convert to the card's currency, or allow it through as-is?
  2. Can Dodo enforce currency based on the card's issuing country (i.e. detect the card BIN/country and only allow the matching currency), so a customer can't pay in a region's currency that doesn't match their card?
  3. Do you expose the card's issuing country to me (via API response or webhook) after a payment, so I can validate it on my side?
  4. For dynamic/multi-currency pricing, what's the recommended setup — separate products/prices per currency, or a single product with currency passed at checkout?

Thanks!

1 Comment

Sign in to comment

Shreya·about 1 month ago

Hi! Great questions. Let me go through them in order.

1. Checkout in one currency, card from another country

It depends on the billing country the customer enters. If they enter India, only Indian-issued cards will go through. Cards from any other country will fail. For other billing countries (e.g. US), cards from any country are accepted. So the strict card-country enforcement only applies to the India case today.

2. Enforce currency by the card's issuing country (BIN/country detection)

No, we don't enforce currency based on the card's issuing country. Matching is driven by billing details, not the card BIN.

3. Expose the card's issuing country to you (API/webhook)

The card's issuing country isn't something we currently surface back on the payment object or webhook, so it's not available to validate against on your side today.

4. Recommended setup for multi-currency pricing

Use Localized Pricing: one product with a base price, plus a fixed price per currency (everyone paying in EUR sees €9.99) or per country (₹999 in India). Cleaner than separate products per currency. Setup and API details: https://docs.dodopayments.com/features/localized-pricing

Happy to help in case you have any doubts.

Posting anonymously