Adyen-for-platform icon

Currency conversion

Learn how to convert the currency of a transaction.

Because your platform processes payments through Adyen, you can enable your users to accept payments in many different currencies.

If the currency in which the customer pays (the processing currency) does not match the currency in which your user wants to be paid (the settlement currency), you can exchange the processing currency for the settlement currency. That way, you can debit the customer in one currency and credit your user in another.

Before you begin

Before you can convert the currency of a payment or refund. you must:

  1. Contact our Support Team to enable currency conversion for payments for your platform.

  2. Make sure you have at least one of the following user roles:

    • Merchant report
    • Merchant financial
    • Merchant admin
  3. Configure an additional column for the settlement exchange rate in the Exchange Rate Report:

    1. Log in to your Customer Area, and go to Settings > Report columns.
    2. Find the Exchange Rate Report and select Configure.
    3. Add the column Exchange rate (platform Settlement), then select Save configuration.

Convert the currency of a payment

If the cost of the goods in the settlement currency (the currency your user receives) is fixed, and you want to calculate the amount the shopper must pay in the processing currency, follow the steps below.

Step 1: Calculate the cost of the goods in the processing currency

When converting the currency of a payment, Adyen charges the prevailing exchange rate in addition to a conversion markup. To calculate the exact amount the customer must pay in their currency of choice (the processing currency):

  1. Get the exchange rates for the day from the Exchange Rate Report. To do this:

    1. Log in to your Customer Area, and go to Reports > Exchange rate.
    2. Select Manage report to generate the Exchange Rate Report for the day, or to enable automatic generation. Once generated, download the report.
    3. In the report, under the column Exchange rate (platform Settlement), find the rate to convert the settlement currency to the processing currency.

    The rates found in this report already include the conversion markup, which does not need to be added separately.

  2. Use the following formula to calculate the cost of the goods in the processing currency, which is the amount the customer must pay:

    • The cost of goods in the processing currency =
      The cost of goods in the settlement currency × The exchange rate to convert the settlement currency to the processing currency

    For example, your user sells goods worth CZK 1000.00 to a customer who pays in PLN. Here, the processing currency is PLN and the settlement currency is CZK.

    Because the customer pays in PLN, you must first calculate the cost of the goods in PLN (the processing currency). You can do this using the cost of the goods in CZK (the settlement currency) and the prevailing exchange rate found in the Exchange Rate Report.

    In this example, the cost of the goods in the settlement currency is CZK 1000.00. According to the Exchange Rate Report, these are exchange rates for the day:

    Base Currency Target Currency Exchange rate (platform Settlement)
    CZK PLN 0.20174
    PLN CZK 5.07655

    Based on this table:

    • The exchange rate to convert CZK to PLN is 0.20174
    • The exchange rate to convert PLN to CZK is 5.07655

    Because these exchange rates include a conversion markup, they cannot be used interchangeably. For example:

    (PLN to CZK exchange rate) ≠ 1 ÷ (CZK to PLN exchange rate)

    For your user to receive exactly exactly CZK 1000.00, use the following formula to calculate the amount the customer needs to pay in PLN so that your user receives exactly CZK 1000.00:

    (Cost of goods in CZK) × (Exchange rate to convert CZK to PLN) = (Cost of goods in PLN)

    In our example:
    CZK 1000.00 × 0.20174 = PLN 201.74

    The customer must pay PLN 201.74 in order for your user to receive CZK 1000.00.


Step 2: Send a payment request with the calculated amount

After you calculate the cost of the goods in the processing currency, send a POST /payments or /sessions request. In the request, include the amount you calculated in step 1 and the data to split the payment. You can also provide split data at capture instead.

We recommend that you always provide split data at the time of payment, rather than at capture. This is because:

  • For payment methods that do not support delayed captures, the funds may not be booked correctly unless split data is provided in the payment request.
  • When converting the currency at the time of capture, the exchange rates could vary from the rates at the time of payment. Therefore, the amount you calculated in step 1 and used in the payment authorisation may no longer match the cost of the goods in the settlement currency. To avoid this mismatch, you can adjust the authorised amount of a payment.

Provide the currency and amount for the payment and each split item using the following fields in your POST /payments or /sessions request:

Parameter Description Example
amount.value The cost of the goods in the processing currency, calculated in step 1. amount.value: 20174
amount.currency The currency in which the customer pays. amount.currency: "PLN"
splits.amount.value The cost of the goods in the settlement currency. In case of multiple splits, the sum of the split amounts in the splits array must equal the cost of the goods in the settlement currency. Any mismatch is booked to the balance account you specify in the split item with type Remainder. splits.amount.value: 100000
splits.amount.currency The settlement currency.
This is the currency in which your user receives the funds.
splits.amount.currency: "CZK"
splits.type The type of the split item. We recommend to always add a split item for the Remainder and the transaction fees. split.type: BalanceAccount
split.type: PaymentFee
split.type: Remainder

The splits are guaranteed, and the payment is booked according to the data you provide in the splits array. Any mismatch or miscalculation is booked to the balance account you specify in the split item with type Remainder. You can reconcile these mismatches per transaction using the Balance Platform Accounting Report.

In the splits array of your request, include two additional split items with the following type:

  • PaymentFee: Use this split item to choose the balance account to which all transaction fees must be booked, unless otherwise specified in a separate split item. It is important to include at least one split item for transaction fees when performing foreign exchange on a payment. If you do not include booking instructions for any of the transaction fee types in your payment request, Adyen automatically updates the request to include the PaymentFee split type, booking all transaction fees to your platform's liable balance account. This is also reflected in the Balance Platform Accounting Report.
  • Remainder: Use this split item to specify the balance account to which a mismatch in the converted amount(s) should be booked. To make reconciliation easier, we recommend to always include booking instructions for the amount left over after currency conversion in your payment request. If you do not send booking instructions for the leftover amount, Adyen automatically updates the request to include the Remainder split type, booking the funds to your platform's liable balance account. This is also reflected in the Balance Platform Accounting Report.

Convert the currency of a refund

When refunding a payment with a currency conversion, you can exchange currencies once again. This way, the customer receives the refund in the currency with which they originally paid (the processing currency).

In the example paymentabove, the customer paid PLN 201.74, and your user received CZK 1000.00. Here, you debited the customer in PLN, and credited your user in CZK. To refund this payment, you must debit your user in CZK, and credit the customer in PLN. When converting the currency of this refund, Adyen charges the prevailing exchange rate in addition to a conversion markup.

Due to this markup and the constantly fluctuating exchange rates, the refund amount in CZK, when re-converted to PLN, may no longer match the amount the customer originally paid in PLN. For example, at the time of refund, CZK 1000.00 may no longer be equal to PLN 201.74. This mismatch results in a leftover amount after the conversion, called the remainder. When a refund occurs on the same day as the payment, the remainder is usually negative.

Refund the payment

In your refund request, you can define how you want book the remainder amount by adding a split item with type Remainder. You can book this amount either to the customer, your user, or your own platform. If you do not specify how to handle the remainder in your request, it is booked to your liable balance account.

We recommend that you always provide the Remainder split item in your requests, because it can help you reconcile the remainder per transaction using the Balance Platform Accounting Report.

When you book the remainder amount to the customer, your user is debited the exact amount they originally received in the settlement currency. The customer is credited a different amount in the processing currency than what they originally paid.

In our original payment example, the customer paid PLN 201.74 and your user received CZK 1000.00. This means that, in the refund, your user will be deducted CZK 1000.00. You must calculate the amount the customer will receive in PLN (the processing currency) as the refund.

Step 1: Calculate the refund amount in the processing currency

  1. Get the exchange rates for the day from the Exchange Rate Report. To do this:

    1. Log into your Customer Area, and go to Reports > Exchange rate.
    2. Select Manage report to generate the Exchange Rate Report for the day, or to enable automatic generation. Once generated, download the report.
    3. In the report, under the column Exchange Rate, find the rate to convert the processing currency to the settlement currency.

    The rates found in this report already include the conversion markup, which does not need to be added separately.

  2. Use the following formula to calculate the amount in the processing currency that the customer receives in the refund:

    • Amount to be refunded to the customer in the processing currency =
      Amount to be refunded in settlement currency × The exchange rate to convert the settlement currency to the processing currency

    In the example payment above, your user received CZK 1000.00, and the customer paid PLN 201.74. The processing currency is PLN and the settlement currency is CZK. Because you are booking the remainder to the customer, the refund amount in the settlement currency is CZK 1000.00: the amount your user originally received.

    Because the customer needs to be refunded in PLN, you must first calculate the refund amount in PLN (the processing currency). You can do this using the refund amount in CZK (the settlement currency) and the prevailing exchange rate found in the Exchange Rate Report.

    According to the Exchange Rate Report, these are the exchange rates at the time of the refund:

    Base currency Target currency Exchange rate
    CZK PLN 0.20014
    PLN CZK 5.11703

    Based on this table:

    • The exchange rate to convert CZK to PLN is 0.20014
    • The exchange rate to convert PLN to CZK is 5.11703

    Because these exchange rates include a conversion markup, they cannot be used interchangeably. For example:
    (PLN to CZK exchange rate) ≠ 1 ÷ (CZK to PLN exchange rate)

    We can calculate the amount to be refunded to the customer in PLN using the following formula:

    (Amount to be refunded in CZK) × (The exchange rate to convert CZK to PLN) = (Amount to be refunded to the customer in PLN)

    In our example:
    CZK 1000.00 ÷ 5.11703 = PLN 195.43

    The customer receives PLN 200.14 in the refund, which is PLN 1.60 less than the amount they originally paid. This mismatched amount of PLN 1.60 is the remainder.


Step 2: Send a refund request

To book the remainder to the customer, send a POST /payments/{paymentPspReference}/refunds request. In the amount and splits.amount objects of your request, include the following values:

Parameter Description Example
amount.value The amount to be refunded to the customer in the processing currency, calculated in step 1. amount.value: 19543
amount.currency The original processing currency. amount.currency: "PLN"
splits.amount.value The original cost of the goods in the settlement currency. In case of multiple splits, the sum of the split amounts in the splits array must equal the original cost of the goods in the settlement currency. Any mismatch is booked to the balance account you specify in the split item with type Remainder. splits.amount.value: 100000
splits.amount.currency The original settlement currency. splits.amount.currency: "CZK"
splits.type The type of the split item. We recommend to always add a split item for the type Remainder. split.type: BalanceAccount
split.type: Remainder

The splits are guaranteed, and the refund is booked according to the data you provide in the splits array. Any mismatch or miscalculation is booked to the balance account you specify in the split item with type Remainder. You can reconcile these mismatches per transaction using the Balance Platform Accounting Report.

See also