Refunds for Transactions with FX Conversion
For accounts that support FX conversion, when the original transaction was processed in a different currency than the order currency (the currency specified in the original transaction request), the following rules apply:
- The
amountin the refund API is always interpreted as being in the original transaction order currency. - If FX conversion was applied on the original transaction, the refund will reuse the same FX rate as the original transaction.
- The FX rate is taken from the original transaction, not from the rate on the day the refund is requested.
- The refund cannot change the currency. You control only the amount in order currency; the FX conversion back to the customer currency is handled automatically using the original rate.
Example 1: Full Refund with FX Conversion
- Original transaction request:
- Order currency:
EUR amount:100.00
- Order currency:
- Customer card currency:
USD - Original FX rate used at authorization:
1 EUR = 1.0850 USD - Customer was charged:
108.50 USD
Refund request:
{
"requestId": "refund-eur-001",
"mid": "exm-mid",
"transactionId": "txn-eur-100",
"amount": "100.00",
"reason": "Order cancelled",
"callbackUrl": "https://example.com/refund-callback"
}Behavior:
- The platform interprets
amount: "100.00"as 100.00 EUR. - The card refund will be processed in USD using the same FX rate
1.0850. - Customer refund on card:
108.50 USD.
Even if current market rate is different on refund day, the refund still uses 1.0850.
Example 2: Partial Refund with FX Conversion
Using the same original transaction as above:
- Original order amount:
100.00 EUR - Customer charged:
108.50 USDat1.0850
Partial refund request:
{
"requestId": "refund-eur-001",
"mid": "exm-mid",
"transactionId": "txn-eur-100",
"amount": "40.00",
"reason": "Partial refund for returned items",
"callbackUrl": "https://example.com/refund-callback"
}
Behavior:
amount: "40.00"is treated as 40.00 EUR.- Same FX rate from the original transaction:
1.0850. - Customer refund on card:
43.40 USD.
Example 3: No FX Conversion
If the original transaction order currency is the same as the processing/card currency (for example, order in EUR, card also in EUR), the amount in the refund request is still in the order currency, and no FX logic applies:
{
"requestId": "refund-eur-001",
"mid": "exm-mid",
"transactionId": "txn-eur-native",
"amount": "50.00",
"reason": "Customer returned the product"
}- Order currency:
EUR - Card currency:
EUR - Customer refund:
50.00 EUR
No FX rate is involved in this case.
