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 |
Make sure to contact your point of contact at Worldline before using this feature, as we will have to preconfigure your account.
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:
Get the DCC rates for the transaction, make an offer to the cardholder and get a cardholder's consent.
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"
}
Make sure to store the rateReferenceId in your platform and use it to fetch the DCC rates prior to any of these follow-up operations - reversals, adjustments, captures, refunds. This way, you have a possibility to apply the same rate across different operations.
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.
Ensure all the follow-up operations (reversals, adjustments, captures, refunds) of an authorization/pre-authorization involving DCC holds the
reversalAmount / incrementAmount / amount object (representing in cardholder's currency).
dynamicCurrencyConversion object (representing in merchant's currency) .
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.
If "NO" then initiate refund payment without DCC.
If YES then
request for DCC rate using the rateReferenceId
initiate a refund payment with DCC.
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.