worldline

Documentation

Dynamic Currency Conversion (DCC)

Dynamic Currency Conversion (DCC) is a financial service that allows you as a partner/merchant to offer your international customers the choice to pay directly in the currency the card was issued (cardholder's currency). This helps you in providing seamless checkout experience to your international customers and get the transaction settled in your local currency (merchant currency). On the other hand, your international customers will get a precise idea of how much they are paying while making a purchase with you and ease the expense reporting especially for business travelers. DCC is popular among merchants worldwide, especially in hotels, restaurants, and retail industries.

Worldline offers DCC solution across EU region (incl. UK), Australia & Japan while transacting using Visa and Mastercard. The solution provides all DCC related information needed for the cardholder interaction and for further processing of the transaction.

DCC is available for the following currencies:

Currency Code

Currency Name

AED

United Arab Emirates Dirham

AUD

Australian Dollar

BGN

Bulgarian Lev

BHD

Bahrain Dinar

BRL

Brazilian Real

CAD

Canadian Dollar

CHF

Swiss Franc

CNY

Chinese Yuan

CZK

Czech Koruna

DKK

Danish Krone

EUR

Euro

GBP

British Pound Sterling

HKD

Hong Kong Dollar

HUF

Hungarian Forint

IDR

Indonesian Rupiah

ILS

Israeli New Shekel

INR

Indian Rupee

ISK

Icelandic Króna

JPY

Japanese Yen

KRW

South Korean Won

KWD

Kuwaiti Dinar

MAD

Moroccan Dirham

MXN

Mexican Peso

MYR

Malaysian Ringgit

NOK

Norwegian Krone

NZD

New Zealand Dollar

OMR

Omani Rial

PHP

Philippine Peso

PKR

Pakistan Rupee

PLN

Polish Złoty

QAR

Qatari Riyal

RON

Romanian Leu

RSD

Serbian Dinar

SAR

Saudi Riyal

SEK

Swedish Krona

SGD

Singapore Dollar

THB

Thai Baht

TND

Tunisian Dinar

TWD

New Taiwan Dollar

UAH

Ukrainian Hryvnia

USD

United States Dollar

VND

Vietnamese Đồng

ZAR

South African Rand

Key considerations when offering DCC

Merchants needs to follow the disclosure requirements set by card scheme to avoid any non-compliance fee. In short, the scheme requirements insists that the DCC offer must be.

  • Transparent - cardholder should be provided with below given mandatory disclosures in same size, color and font types on screens, quote sheets or receipts.

    • amount in merchant currency.

    • currency symbol or code of the merchant currency.

    • exchange rate used to decide the DCC transaction amount.

    • any other exchange rate mark-up over the wholesale or government-mandated rate.

    • total transaction amount in the DCC currency.

    • currency symbol or code of the offered DCC transaction amount.

  • Convenient - Cardholder must be clearly advised of the choice to choose in a simple & convenient way.

    • cardholder must not be steered towards a choice with

      • "pre-selection" or setting a "default" option.

      • offering "Yes" or "No", "Accept" or "Decline" or in similar ways.

  • Honoring the cardholder's choice - An explicit cardholder's consent must be obtained prior to the transaction processing. In other words cardholder's choice must be honored.

    • cardholder must not be re-prompted to accept DCC after rejecting the offer. If the cardholder declines the DCC offer, the transaction must be processed in the merchant currency.

Handling of refunds

Refunds must be issued in the currency that the cardholder used for the payment. Otherwise, it is not guaranteed that the same exchange rate at the time of purchase transaction will be applied during refunds. This could lead to gains or losses for the merchants depending on fluctuations in the exchange rate.

Transact with DCC feature

Making a payment or refund with DCC is a two step process:

  1. Get the DCC rates for the transaction, make an offer to the cardholder and get a cardholder's consent.

  2. Process the payment or refund authorization in cardholder's currency.

Get DCC Rate

To get a DCC rate for a transaction, submit a DCC rate request with

  • cardPaymentData

  • amount specified in the merchant currency

  • For DCC inquiry for card-present/Point of Sale transactions, it is required to submit the cardPaymentData.cardEntryMode & pointOfSaleData

  • Also specify if the DCC rates are requested for a "PAYMENT" or "REFUND" transaction using the transactionType property.

Below is an example request to get the DCC amount in cardholder's currency (EUR) for supplied BIN and transaction amount in merchant currency (GBP).

{
    "operationId": "eaeeb959-4e61-479a-bea0-7fbe41818804",
    "transactionTimestamp": "2024-10-29T11:28:44+02:00",
    "transactionType": "PAYMENT",
    "pointOfSaleData": {
        "terminalId": "12345678"
    },
    "cardPaymentData": {
        "cardEntryMode": "CHIP",
        "bin": "54133300",
        "brand": "MASTERCARD"
    },
    "transaction": {
        "amount": {
            "amount": 10100,
            "currencyCode": "GBP",
            "numberOfDecimals": 2
        }
    }
}

Our DCC endpoint identifies the cardholder's currency based on the BIN and offers the DCC rates. You will notice that the result is "ALLOWED" which means DCC can be offered. Possible values that would be returned are given below.

Value

Explanation

INVALID_MERCHANT

DCC is not configured for the merchant. You (merchant) need to contact Worldline to check the possibilities of using the feature.

INVALID_CARD

DCC is not applicable for the supplied BIN or if the card is issued in the same currency as merchant currency.

NOT_AVAILABLE

DCC is not available for the currency/Amount/region.

NO_RATE

DCC rate isn't available at the moment due to technical issues.

A proposal to make an offer to the cardholder along with disclaimerReceipt and rateReferenceId is returned in the response as given below. With this you can handle the cardholder's interaction on your platform.

{
    "result": "ALLOWED",
    "proposal": {
        "rateReferenceId": "241029001100812",
        "originalAmount": {
            "amount": 10100,
            "currencyCode": "GBP",
            "numberOfDecimals": 2
        },
        "resultingAmount": {
            "amount": 12533,
            "currencyCode": "EUR",
            "numberOfDecimals": 2
        },
        "rate": {
            "exchangeRate": 1.240922110,
            "invertedExchangeRate": 0.805852351,
            "markUp": 3.5,
            "markUpBasis": "SIX_FINANCIAL_SERVICES",
            "quotationDateTime": "2024-10-29T07:30:00+01:00"
        }
    },
    "disclaimerReceipt": "I have been offered a choice of currencies and I accept the final amount in transaction currency.\n\nCurrency conversion provided by Worldline"
}

Authorization with DCC

Upon cardholder's acceptance of DCC offer, initiate an authorization using the create payment request. In addition to the normal authorization request, this must hold the amount object representing the amount and currency in cardholder's currency and the dynamicCurrencyConversion object representing amount in the merchant currency.

Example authorization request & response involving DCC

Below is an example eCommerce authorization request involving DCC.

{
    "operationId": "85ada13d-77e7-49b1-b446-aa232feee394",
    "transactionTimestamp": "2024-10-29T10:48:49.040Z",
    "authorizationType": "FINAL_AUTHORIZATION",
    "amount": {
        "amount": 12533,
        "currencyCode": "EUR",
        "numberOfDecimals": 2
    },
    "dynamicCurrencyConversion": {
        "amount": 10100,
        "currencyCode": "GBP",
        "numberOfDecimals": 2,
        "conversionRate": "1.240922110"
    },
    "cardPaymentData": {
        "brand": "MASTERCARD",
        "cardData": {
            "cardNumber": "5413330089600010",
            "expiryDate": "122025",
            "cardSecurityCode": "123"
        },
        "cardEntryMode": "ECOMMERCE",
        "cardholderVerificationMethod": "THREE_DS",
        "ecommerceData": {
            "threeDSecure": {
                "authenticationValue": "AAABBEg0VhI0VniQEjRWAAAAAAA=",
                "directoryServerTransactionId": "e18d0f2c-973c-43b6-add5-08e306e5eb32",
                "eci": "02",
                "threeDSecureType": "THREE_DS",
                "version": "2.2.0"
            }
        },
        "allowPartialApproval": false,
        "captureImmediately": false
    },
    "references": {
        "merchantReference": "Your-Order-9244d9f8-f659-42e7-974a-6e412a467a64"
    }
}

{
    "paymentId": "pay:ch:etu:hLrmS0ONTACOABomReGkBQ",
    "responseCode": "0",
    "responseCodeDescription": "Accepted or completed successfully",
    "responseCodeCategory": "APPROVED",
    "responder": "WORLDLINE",
    "initialAuthorizationCode": "575090",
    "cardPaymentData": {
        "ecommerceData": {
            "cardSecurityCodeResult": "MATCH"
        }
    },
    "totalAuthorizedAmount": {
        "amount": 12533,
        "currencyCode": "EUR",
        "numberOfDecimals": 2
    },
    "references": {
        "schemeTransactionId": "MCCSEA79Q1029"
    },
    "status": "AUTHORIZED",
    "operationId": "85ada13d-77e7-49b1-b446-aa232feee394"
}

You will noticed that the response holds the totalAuthorizedAmount object representing the amount and currency in cardholder's currency. Other response properties are the same as authorization without involving DCC. Please refer to response handling for additional information.

Refund with DCC

For standalone refund, initiate create refund upon getting cardholder's acceptance of DCC offer. In case of referenced refund, check if DCC was used while making a payment.

Example referenced refund request & response involving DCC

Below is the example referenced request involving DCC (POST /processing/v1/100812/520002526/payments/ pay:ch:etu:8SQ2FuNgQbeTbeB27O5OdQ /refunds).

{
    "amount": {
        "amount": "1249",
        "currencyCode": "EUR",
        "numberOfDecimals": 2
    },
    "captureImmediately": true,
    "dynamicCurrencyConversion": {
        "amount": "1010",
        "conversionRate": "1.23689412",
        "currencyCode": "GBP",
        "numberOfDecimals": 2
    },
    "operationId": "API1380_cc815e4b-6d9f-4416-878f-d2568dcdc1bb",
    "references": {
        "merchantReference": "API1380_iH6j8wX0nlWGOTTvpXmUs6KhbjH8SVio"
    },
    "transactionTimestamp": "2024-10-11T16:39:20+02:00"
}
{
    "operationId": "API1380_cc815e4b-6d9f-4416-878f-d2568dcdc1bb",
    "refund": {
        "refundId": "pay:ch:etu:2zYiyi0pQ1iiE3PdcTV-hA",
        "status": "CONFIRMED"
    },
    "responder": "WORLDLINE",
    "responseCode": "0",
    "responseCodeCategory": "APPROVED",
    "responseCodeDescription": "Accepted or completed successfully"
}

Please refer to response handling for additional information.