# Dynamic Currency Conversion (DCC) ## Overview Dynamic Currency Conversion (DCC) allows international shoppers to pay in their home currency when making a purchase at a merchant abroad. Through Shift4's **Commerce Engine** and **Global Blue** (**a Shift4 Company**), DCC is offered seamlessly during the payment flow on the device — no additional POS development is required to present the conversion offer. **Merchants will find value** by providing a better checkout experience for international customers, which can increase conversion rates and customer satisfaction. **Shoppers will find value** by seeing the transaction amount in their home currency at the point of sale, giving them transparency and control over the exchange rate before completing the purchase. When a DCC-eligible card is detected during a transaction, Commerce Engine automatically performs a rate lookup and presents the currency conversion offer to the cardholder on the payment device. The cardholder can accept or decline the offer. The transaction response returned to the POS includes the `dcc` object with full conversion details. The merchant must be configured for DCC on the Shift4 platform. Contact your Shift4 representative to enable this feature. ## Availability ### Merchant Countries DCC is currently available for merchants in the following countries: EMEA table tr td Austria td Germany td Malta tr td Belgium td Greece td Netherlands tr td Croatia td Ireland td Portugal tr td Cyprus td Italy td Slovakia tr td Estonia td Latvia td Slovenia tr td Finland td Lithuania td Spain tr td France td Luxembourg td United Kingdom North America United States *(coming soon)* ### Supported Cardholder Currencies When a foreign card is detected, Commerce Engine can offer conversion to the following cardholder currencies: EMEA table tr td AED td UAE Dirham td EUR td Euro td PLN td Polish Zloty tr td AOA td Angolan Kwanza td GBP td British Pound td QAR td Qatari Riyal tr td CHF td Swiss Franc td ILS td Israeli Shekel td SAR td Saudi Riyal tr td DKK td Danish Krone td NGN td Nigerian Naira td SEK td Swedish Krona tr td EGP td Egyptian Pound td NOK td Norwegian Krone td TRY td Turkish Lira tr td td td td td ZAR td South African Rand North America table tr td CAD td Canadian Dollar tr td USD td US Dollar LATAM table tr td ARS td Argentine Peso td DOP td Dominican Peso td PAB td Panamanian Balboa tr td BRL td Brazilian Real td GTQ td Guatemalan Quetzal td PEN td Peruvian Sol tr td CLP td Chilean Peso td HNL td Honduran Lempira td UYU td Uruguayan Peso tr td COP td Colombian Peso td MXN td Mexican Peso td td APAC table tr td AUD td Australian Dollar td JPY td Japanese Yen td SGD td Singapore Dollar tr td CNY td Chinese Yuan td KRW td South Korean Won td THB td Thai Baht tr td HKD td Hong Kong Dollar td KZT td Kazakhstani Tenge td TWD td New Taiwan Dollar tr td INR td Indian Rupee td PHP td Philippine Peso td td ## Requirements The following are required to support DCC: 1. **Card Present Integration with Commerce Engine** — A card present integration with [Commerce Engine](/guides/device-functionality/commerce-engine), either on-premise or cloud-based. 2. **DCC-Enabled Merchant** — The merchant must be enabled for DCC processing. 3. **Receipt Handling** — The POS app must include DCC-specific fields on the printed receipt when currency conversion is offered, unless it uses the pre-formatted receipt provided by Commerce Engine. ## How It Works Dynamic Currency Conversion Flow The following describes the end-to-end DCC flow during a transaction: 1. The POS app sends a transaction request (e.g., [Sale](/apis/payments-platform-rest/openapi/transactions/transactionssale)) to Shift4 via Commerce Engine. 2. Commerce Engine detects that the card may be eligible for DCC and performs an eligibility check and rate lookup on **Global Blue's rate lookup service**. If the card is eligible, the payment device displays the currency conversion offer to the cardholder, showing the transaction amount in both the merchant's local currency and the cardholder's home currency. 3. The cardholder selects their preferred currency on the payment device. 4. Shift4 processes the transaction with the cardholder's selection. The transaction response to the POS includes the `dcc` object with the conversion details and the `conversionIndicator` reflecting the cardholder's choice. ## Shift4 Transaction Response Data ### The `dcc` Object When DCC is offered during a Commerce Engine transaction, the response includes the `dcc` object with the following fields: | Field | Type | Description | Example | | --- | --- | --- | --- | | `rateTimeStamp` | string | DCC rate lookup timestamp (ISO 8601) | `2026-02-15T09:18:25.875-05:00` | | `currencyCode` | string | Cardholder's home currency code | `EUR` | | `foreignAmount` | number | Amount in the cardholder's home currency | `177.00` | | `conversionRate` | string | Exchange rate applied | `1.18` | | `marginPercentage` | string | Foreign exchange markup (%) | `9.73` | | `currencyMinorUnits` | number | Decimal digits for the foreign currency | `2` | | `transactionId` | string | ID of the exchange rate lookup | `1A2820D2G334` | | `conversionIndicator` | string | Cardholder's DCC decision (see below) | `1` | | `supportIndicator` | string | Whether DCC can be used: `1` = yes, `0` = no | `1` | | `diffOverEcb` | string | Difference over ECB reference rate (%). EU currency pairs only. | `2.85` | | `marginOverEcb` | string | Markup over ECB reference rate (%). EU currency pairs only. | `2.85` | | `displayUnit` | number | Display unit exponent for the base currency | `0` | | `provider` | string | DCC provider | `GLOBAL_BLUE` | ### Conversion Indicator Values The `conversionIndicator` field reflects the cardholder's decision: | Value | Meaning | Description | | --- | --- | --- | | `0` | Declined | The cardholder was offered DCC but chose to pay in the merchant's currency | | `1` | Converted | The cardholder opted to pay in their home currency | | `2` | Nonconvertible | DCC could not be offered for this transaction (e.g., the card currency matches the merchant currency). No DCC receipt fields need to be printed. | ### Example Transaction Response Below is an example response showing the `dcc` object when the cardholder opts into DCC: ```json { "result": [ { "dateTime": "2026-02-15T10:30:00.000-05:00", "currencyCode": "GBP", "amount": { "total": 150.00 }, "card": { "token": { "value": "8044540000000043" }, "entryMode": "C", "type": "VS", "number": "XXXXXXXXXXXX0043", "present": "Y" }, "merchant": { "mid": 15877, "name": "Merchant XYZ" }, "transaction": { "invoice": "192029", "retrievalReference": "402F9H0230S0", "saleFlag": "S", "responseCode": "A", "authorizationCode": "123456" }, "dcc": { "rateTimeStamp": "2026-02-15T10:30:02.125-05:00", "currencyCode": "EUR", "foreignAmount": 177.00, "conversionRate": "1.18", "marginPercentage": "3.50", "currencyMinorUnits": 2, "transactionId": "1A2820D2G334", "conversionIndicator": "1", "supportIndicator": "1", "diffOverEcb": "0.35", "displayUnit": 0, "provider": "GLOBAL_BLUE" } } ] } ``` See the [Sale](/apis/payments-platform-rest/openapi/transactions/transactionssale) endpoint for an example of the complete response schema. ## POS Responsibilities As described above, Commerce Engine handles the DCC offer automatically. The POS app's responsibilities are limited to: ### Required: Receipt Printing When `conversionIndicator` is `1` (converted), the POS must include DCC-specific fields on the printed receipt. See [Receipt Printing Requirements](#receipt-printing-requirements) below. If the POS consumes the pre-formatted receipt from Commerce Engine (via the `receipt` array in the response), DCC receipt fields are already included and no additional work is needed. ### Optional: Storing DCC Data The POS may store the `dcc` object fields for informational or reporting purposes. This data is **not required** for follow-up transactions — the Shift4 backend retains the DCC details and applies them automatically. ### Refunds When refunding a DCC transaction, the POS **must** use a linked refund by including `transaction.originalInvoice` in the [Refund](/apis/payments-platform-rest/openapi/transactions/refund) request. This links the refund to the original transaction and ensures the backend applies the original DCC details automatically. No `dcc` object is needed in the refund request. ```json { "dateTime": "2026-02-15T10:30:00.000-05:00", "amount": { "total": 150.00 }, "card": { "present": "Y" }, "clerk": { "numericId": 1576 }, "transaction": { "invoice": "192050", "originalInvoice": "192029" } } ``` ## Receipt Printing Requirements When the cardholder opts into DCC (`dcc.conversionIndicator` is `1`), the POS must include DCC-specific fields on the printed receipt. If the cardholder declines (`0`) or DCC is nonconvertible (`2`), DCC data is not printed. ### DCC Receipt Fields | Receipt Key | Description | Example Value | | --- | --- | --- | | `dccExchangeRate` | The exchange rate applied | `EXCHANGE RATE 1 GBP = 1.3383 USD` | | `dccMarkup` | The markup percentage over wholesale rate | `INCLUDES 1.5025% OVER WHOLESALE RATE` | | `dccTranCurrency` | The cardholder's transaction currency | `USD` | | `dccTranAmount` | The transaction amount in the cardholder's currency | `148.55` | | `dccDisclaimer` | DCC offer disclaimer text | `I HAVE BEEN OFFERED A CHOICE OF PAYMENT CURRENCIES INCLUDING USD` | | `dccOfferedBy` | Indicates who offers the currency conversion service | `THIS CURRENCY CONVERSION SERVICE IS OFFERED BY THE MERCHANT` | ### Sample DCC Receipt ``` Sample Store 123 High Street London, W1D 1BS UK +44 20 7946 0958 02/15/2026 12:54:38 MID: XXXXXXXXXXXX9137 TID: XXX2946 Purchase Mastercard Credit ************6405 Entry Mode: CONTACTLESS CVM: PIN VERIFIED Invoice 192029 Clerk 16 Total Amount GBP£ 111.00 EXCHANGE RATE 1 GBP = 1.3383 USD INCLUDES 1.5025% OVER WHOLESALE RATE TRANS CURRENCY USD TRANS AMOUNT 148.55 I HAVE BEEN OFFERED A CHOICE OF PAYMENT CURRENCIES INCLUDING USD THIS CURRENCY CONVERSION SERVICE IS OFFERED BY THE MERCHANT Response: APPROVED Auth Code: 217983 AID: A0000000041010 TVR: 0820000000 IAD: 092B302A9104 TSI: C800 ARC: 00 CUSTOMER COPY ``` For the complete list of DCC raw receipt tags, see the [DCC Receipts](/guides/core-concepts/printing-receipts#dynamic-currency-conversion-dcc-receipts) section in the Printing Receipts guide. ## Compliance ### EU Cross-Border Payments Regulation For transactions involving most European currency pairs (e.g., GBP to EUR, EUR to DKK), EU Regulation 2021/1230 requires transparency around the exchange rate markup. The `dcc` object includes two fields to support this: - **`diffOverEcb`** — The difference between the offered rate and the European Central Bank (ECB) reference rate, expressed as a percentage. - **`marginOverEcb`** — The markup of the offered rate over the ECB reference rate, expressed as a percentage. These fields are only returned for currency pairs that fall within the scope of the regulation. Commerce Engine and the payment device handle the required disclosures automatically. ### Cardholder Choice Card scheme rules (Visa, Mastercard) require that DCC is always offered as a choice — the cardholder must be able to accept or decline the conversion. Commerce Engine enforces this by presenting the offer on the payment device and recording the cardholder's decision in `conversionIndicator`. ### Receipt Disclosure When a cardholder opts into DCC, the printed receipt must include the exchange rate, markup, converted amount, and disclaimer text. These fields are provided by Commerce Engine in the receipt data. See [Receipt Printing Requirements](#receipt-printing-requirements) above. For questions about DCC rates, supported currencies, or configuration, contact your Shift4 Integration Analyst.