# 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.