Multi-currency

Depending on your country and account settings, you can accept credit card charges through Omise in up to six different currencies: THB, USD, EUR, GBP, JPY and SGD.

Creating a multi-currency charge is straightforward; specify a currency when creating a charge, and Omise will transparently handle conversion into your account currency before settling funds.

Omise also provides several additional APIs to make implementing this feature even more convenient.

Note: the cardholder may be charged a foreign transaction fee by their issuing bank even if they pay in their home currency.

Read on to learn more about implementing this feature as well as some important restrictions.

Creating a Multi-currency Charge

Creating a charge in another currency is just like creating a normal charge. Simply change the value of the currency parameter to your preferred currency.

You can also determine the exchange rate used (in 10-minute windows) by making a request to the Forex API. Keep in mind that the effective minimum and maximum charge amount will vary depending on the exchange rate.

Charge Request

The curl snippet below shows how to create a 1000 USD charge:

curl https://api.omise.co/charges \
  -X POST \
  -u skey_test_57rlyvu8iyjhu1gx6b2: \
  -d "amount=100000" \
  -d "currency=usd" \
  -d "card=tokn_test_5eihqwlbykc5xp7lkeo"

Charge Response

The JSON excerpt below shows the response of the above command:

{
    "object": "charge",
    "id": "chrg_test_5eihqy40lburr9pwj3p",
    "livemode": false,
    "location": "/charges/chrg_test_5eihqy40lburr9pwj3p",
    "amount": 100000,
    "currency": "usd",
    "funding_amount": 3328532,
    "funding_currency": "thb",
    "transaction": "trxn_test_5eihqy6cn0q7ylicbyz",
    ...
}

Note the funding_amount and funding_currency attributes which show the amount after conversion to your account currency at the current exchange rate as well as your account currency, respectively.

Transaction Response

Funds are always settled in your account currency. By inspecting the transaction above (trxn_test_5e95tvtbghmpc8vz5jz), you can see the credited amount (after any fees) in the account currency:

{
    "object": "transaction",
    "id": "trxn_test_5eihqy6cn0q7ylicbyz",
    "location": "/transactions/trxn_test_5eihqy6cn0q7ylicbyz",
    "type": "credit",
    "amount": 3198537,
    "currency": "thb",
    ...
}

Dashboard

The screenshot below shows the charge as it would appear on your dashboard:

Multi currency charge

Refunds

As usual, you can create a full or partial refund for a multi-currency charge through our refund API or from your dashboard.

Note: when processing a multi-currency refund via API, the amount parameter will be understood as having the same currency as the original charge.

curl https://api.omise.co/charges/chrg_test_4ype2jynk2len88i4er/refunds \
  -X POST \
  -u skey_test_4ypcvnwzy9ob6gs89pn: \
  -d "amount=10000"

Restrictions

The multi-currency feature is currently only available to merchants with Thai-registered Omise accounts. We will be adding support for other countries in the future.

Only credit and debit cards (Visa and Mastercard) can be used for multi-currency charges; alternative payment methods such as Internet Banking and Alipay can only be charged in your account currency.

Enabling Multi-currency

If you already have a live account and would like to enable this feature, please send an email to support@omise.co. You will need to review new terms and conditions before using the API.