---
title: "Dynamic Currency Conversion (DCC)"
description: "Use Dynamic Currency Conversion to let your users' customers pay in their own currency."
url: "https://docs.adyen.com/platforms/in-person-payments/dynamic-currency-conversion"
source_url: "https://docs.adyen.com/platforms/in-person-payments/dynamic-currency-conversion.md"
canonical: "https://docs.adyen.com/platforms/in-person-payments/dynamic-currency-conversion"
last_modified: "2023-05-03T17:04:00+02:00"
language: "en"
---

# Dynamic Currency Conversion (DCC)

Use Dynamic Currency Conversion to let your users' customers pay in their own currency.

[View source](/platforms/in-person-payments/dynamic-currency-conversion.md)

**Limited availability**\
Dynamic Currency Conversion (DCC) for platforms is currently in pilot phase. Some of the processes and documentation may change as the feature evolves. If you are interested in piloting DCC or have any feedback, reach out to your Adyen contact.

***

Dynamic Currency Conversion (DCC) allows you to convert the currency of your users' transactions at the point of sale. DCC gives your users' international customers the option to either pay in the local currency or their home currency. Before payment, the terminal shows the customer the exchange rate and markup, so they can make an informed decision.

When you offer DCC to your users' customers, you must comply with [regulations](#complying-with-regulations), such as what is shown on receipts.

## Requirements

In addition to the [general requirements](/platforms/in-person-payments#requirements) for in-person payments with an Adyen for Platforms integration, take into account the following information.

| Requirement                                     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ----------------------------------------------- |   |
| **Integration type**                            | A [Terminal API](/point-of-sale/design-your-integration/terminal-api) integration with [payment terminals](/point-of-sale/what-we-support/select-your-terminals) or with a [Mobile solution](/point-of-sale/ipp-mobile).The standalone solution does not support adding split instructions to individual payment authorization requests.                                                                                                                                                                                                                                                                                                            |
| **[Customer Area roles](/account/user-roles)**  | For DCC reports and overviews, make sure you have the following role(s):- **Merchant view POS Payment Report**
- **Merchant POS Report role**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| **[Webhooks](/development-resources/webhooks)** | Subscribe to [standard webhooks](/development-resources/webhooks) if you want to use DCC for authorization adjustment. To get notified about status changes to the resulting payment, subscribe to the following webhooks:- [Transfer webhooks](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/overview)
- [Transaction webhooks](https://docs.adyen.com/api-explorer/transaction-webhooks/latest/overview)                                                                                                                                                                                                                           |
| **Limitations**                                 | **Availability**:- DCC is available and certified for Visa, Mastercard, and Maestro.
- DCC is supported in specific [currencies and countries/regions](#supported-currencies).**Feature support**:- It is not allowed to apply a [surcharge and Dynamic Currency Conversion](/platforms/in-person-payments/surcharge#surcharge-or-dcc) to the same transaction.
- DCC is not supported for offline POS transactions.
- If DCC is enabled for even one store in your platform, all standalone terminals automatically start supporting DCC, regardless of their linked store. This does not apply to terminals on version 1.120, or 1.122 and later. |
| **Setup steps**                                 | Before you begin:- Reach out to your account manager to sign the DCC addendum with the agreed upon markup rate.
- Make sure you comply with card scheme [regulations](#complying-with-regulations).                                                                                                                                                                                                                                                                                                                                                                                                                                                 |

## How it works

After you have selected stores and enabled DCC:

1. Your user initiates a payment like they usually do, and the customer presents their card to the payment terminal.

2. The terminal recognizes the currency that is used for billing the customer when they use their card.

3. If the customer's billing currency differs from the local currency, the terminal prompts the customer to choose between paying in the local currency or their own billing currency.

   ![](/images/0/0/1/1/a/0011a84488481547a3504a752562ffe6b0c8ca0e-screen-endcc-portrait-usd.png)

4. If the customer accepts DCC by choosing their own billing currency, foreign-exchange conversion is applied to the transaction. The Adyen-generated receipt includes information about the conversion. If the customer rejects DCC by choosing the local currency, the transaction continues in the local currency.

## Complying with regulations

To avoid fines and the loss of DCC privileges, it is important to comply with the disclosure and receipt requirements of the card schemes when choosing to offer DCC to your users’ customers.

According to card scheme regulations, the customer must be given the choice to accept DCC, or decline it and pay in the local currency. The customer must be made aware of the cost of the currency conversion, and it is not permitted to force a choice on the cardholder.

Refer to [Dynamic Currency Conversion - Rules & Regulations](https://help.adyen.com/knowledge/in-person-payments/terminal-features/dynamic-currency-conversion-dcc-rules-regulations) for detailed guidance on card scheme requirements.

### Disclosure and receipt requirements

The Adyen DCC feature allows you to offer customers the choice to accept or decline DCC in a way that is fully compliant with card scheme regulations, with full disclosure of the exchange rate and markups. The customer can review DCC charges both on the payment terminal and on the Adyen-generated receipt.

The following illustrations show the information on a portrait, and landscape terminal display.

![](/images/9/2/a/5/f/92a5f62185eea5328087c4fed5e5da5af1802d32-screen-endcc-portrait-usd.png)

![](/images/d/4/0/a/9/d40a996fa917c27e84f08b37bf8cd463d2e4f227-screen-endcc-landscape-usd.png)

On the Adyen-generated receipt, the customer receives the same information, as well as a DCC acceptance statement (*I have been offered a choice of currencies and have chosen to accept DCC and pay in {currency} at the exchange rate provided by Adyen n.v.*).

| Merchant receipt                                                                           | Shopper receipt                                                                           |
| ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------- |
| ![](/images/f/8/d/0/0/f8d00802a531e846d61ba47c572627eaabd1cc10-dccreceiptmerchant-new.png) | ![](/images/2/f/7/1/0/2f71005d35dc4ebe0cd90f6d592ccc3d9e943a49-dccreceiptshopper-new.png) |

### If you do not use Adyen-generated receipts

To remain compliant with card scheme regulations if your integration defines the content of the receipt, make sure that the receipt contains the following information:

* Exchange rate
* Source of the exchange rate
* Markup
* Amount in customer's billing currency
* Amount in local currency
* DCC acceptance statement

To find out more, contact your Account Manager or our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other).

### If you use authorization adjustment

To remain compliant with card scheme regulations if you use DCC with pre-authorization and authorization adjustment:

1. Make sure that you have [set up webhooks](/development-resources/webhooks) to receive updates and learn whether the final amount has been captured.
2. Add the details from the [CAPTURE webhook](/point-of-sale/pre-authorisation#capture-authorization) to the receipt or invoice.

## DCC markup

When a customer selects DCC at the payment terminal, they pay the current exchange rate plus an additional markup on the transaction. Adyen uses a revenue share model, where the revenue from the markup can be split between your platform, your user, and Adyen.

After you deduct the portion of the markup that Adyen keeps, you can choose if and how to split the remaining markup amount between your platform and your user. For every payment that uses DCC, you must [specify the percentage of the remaining markup that must be booked to your user's balance account](#3-gather-the-split-instructions). Adyen then books the rest of the markup amount to your liable balance account.

When Adyen books a DCC markup amount to a balance account, we always use the split type **DCCMarkup**. All funds booked under this split type have the default settlement delay of the balance account.

## Accept a payment with DCC

To accept a payment using DCC, you must first:

1. [Select the stores for which you want to enable DCC](#1-select-stores)
2. [Enable DCC for your platform](#2-enable-dcc-for-your-platform)

After you enable DCC for your platform, your users' customers can select DCC at the payment terminal. To split the DCC markup amount between your platform and your user, you can do one of the following:

* **Option 1**: Set up a split configuration profile with a rule to handle the DCC markup amount. For more information about this, see [Create split configurations](/platforms/automatic-split-configuration/create-split-configuration?tab=api_2#book-dcc-markups)

* **Option 2**: Provide instructions to handle the DCC markup amount in each payment request. Instructions in your payment request override any instructions configured in the split configuration profile. To provide instructions in your payment request, you must:

  1. [Gather the split instructions](#3-gather-the-split-instructions)
  2. [Format the split instructions](#4-format-the-split-instructions)
  3. [Make a payment request](#5-make-a-payment-request)

## 1. Select stores

1. Identify the stores for which you want to enable DCC. If you choose to enable DCC for at least one store, all standalone terminals under your platform start supporting DCC, even if they are not linked to that store. This does not apply to terminals on version 1.120, or version 1.122 and later.

2. Create a CSV file specifying the following information:

   * The IDs of the stores for which to enable DCC.
   * Whether or not that store processes the Maestro payment method.

## 2. Enable DCC for your platform

1. Contact our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) to:

   * Enable and configure DCC to ensure it is offered in your stores.
   * Enable DCC reporting for your merchant account(s). This ensures [financial reports](#reports) and [dashboards](#reports) include DCC details.
   * (Optional) Enable DCC for pre-authorization and authorization adjustment.

   When you contact our support team, use the subject line **Pilot DCC -&#x20;****\[enable terminal]**, and include the CSV file you created in the [step above](#1-select-stores).

2. In your [Customer Area](https://ca-test.adyen.com/) under **Settings** > **Payment methods** make sure that the **Configured currencies** on your payment methods are set to **ANY**. The currency of payment methods is set by default and depends on the specific payment method type. If your implementation is different and you need to change the currency, contact our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other).

## 3. Gather the split instructions

1. Gather the split instructions for the payment:

   Always provide the split payment instructions in the **settlement currency**. This is the currency your user receives. For more information on how to gather split data, see [Gather the split instructions](/platforms/in-person-payments/split-transactions/split-payments-at-authorization#gather-data).

2. Gather the split instructions for the DCC markup:

   These instructions specify how to split the DCC markup amount between your platform and your user. You must gather the following data:

   | Field                                      | Required | Description                                                                                                                                                                                                                                                                  |
   | ------------------------------------------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | `platformDccLogic.targetAccount`           |          | The account to which your user's share of the DCC markup must be booked. Your platform's share of the DCC markup is always booked to your liable balance account. By default, we book the full markup amount, after deducting Adyen's share, to your liable balance account. |
   | `platformDccLogic.accountHolderPercentage` |          | The percentage of the DCC markup that must be booked to your user, in basis points. By default, we book the full markup amount, after deducting Adyen's share, to your platform.                                                                                             |

## 4. Format the split instructions

To pass the split instructions for the payment and DCC markup in the `SaleToAcquirerData` field of your request, you must first format them. There are two ways to do this:

* **Option 1**: as a string of form-encoded key-value pairs (using & as a separator).
* **Option 2**: as a JSON object converted to a Base64-encoded string.

The format you use in your request is the format that will be returned in the `AdditionalResponse`. To always receive the `AdditionalResponse` in a specific format, contact our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other).

Select the tab for the option you want to use.

### Tab: Key-value pairs

1. Turn the split instructions you gathered into key-value pairs.

   **Split instructions as key-value pairs**

   ```raw
   split.api=1
   split.nrOfItems=3
   split.totalAmount=62000
   split.currencyCode=USD
   split.item1.amount=60000
   split.item1.type=BalanceAccount
   split.item1.account=BA00000000000000000000001
   split.item1.reference=Your reference for the sale amount
   split.item1.description=Your description for the sale amount
   split.item2.amount=2000
   split.item2.type=Commission
   split.item2.reference=Your reference for your commission
   split.item2.description=Your description for your commission
   split.item3.type=PaymentFee
   split.item3.account=BA00000000000000000000001
   split.item3.reference=Your reference for the payment fee
   split.item3.description=Your description for the payment fee
   platformDccLogic.targetAccount=BA00000000000000000000001
   platformDccLogic.accountHolderPercentage=3000
   ```

2. Concatenate the key-value pairs into a string by separating them with ampersands (**&**). You will pass the resulting string in `SaleData.SaleToAcquirerData`.

   **Concatenated key-value pairs**

   ```bash
   split.api=1&split.nrOfItems=3&split.totalAmount=62000&split.currencyCode=USD&split.item1.amount=60000&split.item1.type=BalanceAccount&split.item1.account=BA00000000000000000000001&split.item1.reference=Your reference for the sale amount&split.item1.description=Your description for the sale amount&split.item2.amount=2000&split.item2.type=Commission&split.item2.reference=Your reference for your commission&split.item2.description=Your description for your commission&split.item3.type=PaymentFee&split.item3.account=BA00000000000000000000001&split.item3.reference=Your reference for the payment fee&split.item3.description=Your description for the payment fee&platformDccLogic.targetAccount=BA00000000000000000000001&platformDccLogic.accountHolderPercentage=3000
   ```

### Tab: Base64-encoded JSON

* Create a JSON object consisting of an `additionalData` object containing the split instructions you gathered.

  **JSON object**

  ```json
  {
       "additionalData": {
           "split.api": "1",
           "split.nrOfItems": "3",
           "split.totalAmount": "62000",
           "split.currencyCode": "USD",
           "split.item1.amount": "60000",
           "split.item1.type": "BalanceAccount",
           "split.item1.account": "BA00000000000000000000001",
           "split.item1.reference": "Your reference for the sale amount",
           "split.item1.description": "Your description for the sale amount",
           "split.item2.amount": "2000",
           "split.item2.type": "Commission",
           "split.item2.reference": "Your reference for your commission",
           "split.item2.description": "Your description for your commission",
           "split.item3.type": "PaymentFee",
           "split.item3.account": "BA00000000000000000000001",
           "split.item3.reference": "Your reference for the payment fee",
           "split.item3.description": "Your description for the payment fee",
           "platformDccLogic.targetAccount": "BA00000000000000000000001",
           "platformDccLogic.accountHolderPercentage": "3000"
       }
  }
  ```

* Encode the JSON object to Base64. You will pass the resulting string in `SaleData.SaleToAcquirerData`.

  **Base64 string**

  ```bash
   
  ```

## 5. Make a payment request

1. Make a POST [PaymentRequest](https://docs.adyen.com/api-explorer/terminal-api/latest/post/payment) request. Pass the formatted string of split instructions in the `SaleToAcquirerData` field of the [SaleData](https://docs.adyen.com/api-explorer/terminal-api/latest/post/payment#request-SaleData) object. For more information about Terminal API requests with split instructions, see [Split payments at authorization](/platforms/in-person-payments/split-transactions/split-payments-at-authorization#split-payment).

   For example, your user sells goods worth USD 620.00 to a customer, who wants to pay in their home currency of EUR.

   * The settlement currency is USD. This is the local currency.

   * The customer's home currency is EUR.

   * The payment amount must be split as follows:

     * USD 600.00 is booked to your user's balance account as payment for the goods or services.
     * USD 20.00 is booked to your liable balance account as your platform's commission.
     * All transaction fees are booked to your user's balance account.

   * After deducting Adyen's share, the remaining DCC markup must be split as follows:

     * 30% of the markup must be booked to your user's balance account (**BA00000000000000000000001**)
     * 70% of the markup must be booked to your liable balance account (**BA00000000000000000LIABLE**)

   The example request shows the split instructions as a string of concatenated key-value pairs, but note that specifying split instructions as a JSON object converted to a Base64-encoded string is supported too.

   **Payment request with split instructions as key-value pairs**

   ```json
   {
     "SaleToPOIRequest": {
         "MessageHeader": {
             "ProtocolVersion": "3.0",
             "MessageClass": "Service",
             "MessageCategory": "Payment",
             "MessageType": "Request",
             "SaleID": "POSSystemID12345",
             "ServiceID": "0207111104",
             "POIID": "V400m-324688179"
         },
         "PaymentRequest": {
             "SaleData": {
                 "SaleTransactionID": {
                     "TransactionID": "27908",
                     "TimeStamp": "2025-12-15T10:11:04+00:00"
                 },
                 "SaleToAcquirerData": "split.api=1&split.nrOfItems=3&split.totalAmount=62000&split.currencyCode=USD&split.item1.amount=60000&split.item1.type=BalanceAccount&split.item1.account=BA00000000000000000000001&split.item1.reference=reference_split_1&split.item1.description=description_split_1&split.item2.amount=2000&split.item2.type=Commission&split.item2.reference=reference_commission&split.item2.description=description_commission&split.item3.type=PaymentFee&split.item3.account=BA00000000000000000000001&split.item3.reference=reference_PaymentFee&split.item3.description=description_PaymentFee&platformDccLogic.targetAccount=BA00000000000000000000001&platformDccLogic.accountHolderPercentage=3000"
             },
             "PaymentTransaction": {
                 "AmountsReq": {
                     "Currency": "USD",
                     "RequestedAmount": 620.00
                 }
             }
         }
     }
   }
   ```

   The payment request is routed to the terminal. The customer presents their card, chooses whether to pay in the local currency or their home currency, and verifies the payment. The payment is then sent to the Adyen payments platform for processing.

2. In the [PaymentResponse](https://docs.adyen.com/api-explorer/terminal-api/latest/post/payment#responses-200), note the `Response.AdditionalResponse`, which contains the details of the conversion, such as:

   * The currency that the payment is converted into.
   * The exchange rate.
   * The converted payment amount.
   * The DCC markup amount that is split between Adyen, your user, and your platform.

   **DCC details in additional response**

   ```json
   {
      "SaleToPOIResponse": {
         "MessageHeader": {...},
         "PaymentResponse": {
            "POIData": {...}
            },
            "PaymentReceipt": [...],
            "PaymentResult":{
               "AmountsResp":{
                  "AuthorizedAmount":620.00,
                  "Currency":"USD"
               },
               ...
               "PaymentInstrumentData":{...}
            },
            "Response":{
               "AdditionalResponse":"...dcc.converted.amount.currency=EUR&dcc.converted.amount.value=52746&dcc.exchangerate=8507&dcc.markup=300&dcc.org.amount.currency=USD&dcc.org.amount.value=62000&dcc.source=FX_exchange_rate...issuerCountry=NL...posAuthAmountCurrency=USD&posAuthAmountValue=62000...",
               "Result":"Success"
            },
            "SaleData":{
               "SaleTransactionID": {...}
            }
         }
      }
   }
   ```

## Reconciling payments

Enabling DCC can have consequences for your (automated) reconciliation. For more information, contact your Account Manager or our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other).

Funds are settled in your settlement currency. The amount that you start the transaction with (before DCC) will be paid to your user. For example, you start a transaction for USD 100, and the customer accepts DCC for EUR 90. Adyen settles USD 100 to your user's balance account. The DCC markup, after deducting Adyen's share, is then split between your user's balance account and your liable account based on the instructions you provided in your payment request.

The markup is booked to your liable account and your user's balance account under the split type **DCCMarkup**. Currently, this split type is only visible on the reports and in the webhooks. It is currently unavailable in the **Transfers** page of your [Customer Area](https://ca-test.adyen.com/).

### Financial reports and overviews

When you have enabled DCC and DCC reporting, you can find information about DCC transactions in the following financial reports and overviews in your [Customer Area](https://ca-test.adyen.com/):

#### Reports

* The [Received payment details report](/reporting/received-payment-details-report) shows whether DCC is 'Accepted' or 'Declined'.
* The [Settlement details report](/reporting/settlement-reconciliation/transaction-level/settlement-details-report) includes the markup on the DCC transaction as a credit. To see the markup, you must first manually [configure the **DCC Markup** column](/reporting/settlement-reconciliation/transaction-level/settlement-details-report/#configure-report-columns).
* The [Aggregate Settlement details report](/reporting/settlement-reconciliation/batch-level/aggregate-settlement-details-report) includes all the markups on the DCC transaction as a credit on the store or the merchant account level. To see the markup, you must first manually [configure the **DCC Markup** column](/reporting/settlement-reconciliation/batch-level/aggregate-settlement-details-report/#configure-report-columns).
* The [Balance Platform Account Report](/platforms/reports-and-fees/balance-platform-accounting-report) shows your platform's share of the DCC markup, booked to your liable account and your user's balance account under the split type **DCCMarkup**.

#### Overviews

* The Payments list, available under **Transactions** > **Payments**.\
  To see whether DCC was applied to a transaction, select the columns **DCC offered** and **DCC accepted**.
* The **DCC** pane on the Payment Details page, available when you open a payment in the Payments list: the pane shows whether DCC was offered/accepted, the base and transaction currency, and the applied exchange rate.
* The [DCC Overview dashboard](/point-of-sale/currency-conversion/download-and-use-the-dcc-overview-file/), available under **Reports** > **Point of sale** > **Dashboards** > **Dynamic currency conversion**. This shows DCC usage and acceptance across different geographies and retail locations, as well as earnings from DCC. This overview is intended for management or operations teams.

## Availability

DCC is currently supported for a limited number of cards, currencies, and countries/regions.

### Supported cards

DCC is available for the following cards:

* Visa
* Mastercard
* Maestro
* VPay

### Supported currencies

Adyen currently supports the following DCC currencies:\
AED, ALL, ANG, AUD, BAM, BHD, BRL, CAD, CHF, CLP, CNY, COP, CZK, DKK, EEK, EGP, EUR, FJD, GBP, HKD, HRK, HUF, IDR, ILS, INR, ISK, JOD, JPY, KES, KRW, KWD, KZT, LKR, MAD, MXN, MYR, NGN, NOK, NZD, OMR, PEN, PHP, PKR, PLN, QAR, ROL, RON, SAR, SEK, SGD, SKK, THB, TRY, TWD, UAH, USD, UYU, UZS, VND, ZAR.

You can select a custom subset of currencies for DCC.

### Supported countries/regions

DCC is available in almost all countries/regions where Adyen has implemented a POS solution and supports Adyen for Platforms.

| Europe |   |
| ------ | - |

Austria\
Belgium\
Bulgaria\
Croatia\
Cyprus\
Czech Republic\
Denmark\
Estonia\
Finland\
France\
Germany\
Greece\
Hungary\
Ireland\
Italy\
Latvia\
Liechtenstein\
Lithuania\
Luxembourg\
Malta\
Netherlands\
Norway\
Poland\
Portugal\
Romania\
Slovakia\
Slovenia\
Spain\
Sweden\
Switzerland\
United Kingdom (includes Guernsey and Isle of Man)

| North America |   |
| ------------- | - |

Canada\
United States (including\
Puerto Rico)

| Asia Pacific |   |
| ------------ | - |

Australia\
Hong Kong\
New Zealand\
Singapore

## See also

* [Process in-person payments](/platforms/in-person-payments)
* [Split transactions between balance accounts](/platforms/in-person-payments/split-transactions)
