Refunds for Transactions with FX Conversion

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:

  1. The amount in the refund API is always interpreted as being in the original transaction order currency.
  2. If FX conversion was applied on the original transaction, the refund will reuse the same FX rate as the original transaction.
  3. The FX rate is taken from the original transaction, not from the rate on the day the refund is requested.
  4. 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
  • 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 USD at 1.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.