Dynamic Currency Conversion

The Dynamic Currency Conversion (DCC) service is implemented prior to the authorization actually taking place and through an AcceptorCurrencyConversion exchange. The Gateway will forward the conversion request to the DCC provider and will reply with and AcceptorCurrencyConversionResponse message to the terminal (host) after receiving the response from the provider. If the card is eligible for DCC, the currency conversion response will convey all information required to present the DCC offer on the terminal display. The cardholder will be given the option to decline the DCC and continue the transaction in merchant currency or to accept the conversion and continue the transaction in its own card currency. In case of DCC acceptance, the subsequent authorisation message will include transaction amount in card currency together with all conversion details returned in the corresponding AcceptorCurrencyConversionResponse message.

DCC is supported for Visa and MasterCard only.

DCC will be applicable to following transaction types:

  • Purchase
  • Purchase with Tip
  • Purchase with Cashback
  • Preauthorisation management transactions

DCC can also be used for preauthorisations. While receiving the postauthorisation the Gateway will always check if DCC was applied on the initial preauthorisation and if the DCC rate is still valid. If the DCC rate applied to the initial preauthorisation is still valid, then it will also be applied to the postauthorisation and send to the authorisation system.

If the DCC rate applied to the initial preauthorisation is expired, then the Gateway will request a new DCC rate on your behalf. This is a valid behavior as the cardholder has agreed during the initial preauthorisation that DCC will be applied to the entire preauthorisation chain.

You can also offer other options, e.g. if the cardholder is present during postauthorisation.

Please note that the majority of these options can only be used if you perform a balance inquiry before sending the postauthorisation. Otherwise, the terminal is not aware if DCC was applied to the initial preauthorisation and if the DCC rate is still valid.

The Gateway will include the DCC related info into the balance inquiry response.

Scenarios for DCC combined with preauthorisations

ScenarioExpected behavior during completion
Opt-out from valid DCC rateIf you want to offer opt-out from DCC while performing the postauthorisation, then you need to send `CcyConvsRslt element with AccptdByCrdhldr=false in AccptrCmpltnAdvc.
Apply DCC rate (pre-condition: DCC rate is still valid)If you want IPG to apply the DCC rate that was used on the initial preauthorisation, then you need to send CcyConvsRslt element with AccptdByCrdhldr=true in AccptrCmpltnAdvc.
Request a new DCC rate (DCC rate can be still valid or expired)If you want to offer a new DCC rate to the cardholder, then you need to send another AccptrCcyConvsReq to the Gateway. Afterwards, the DCC rate from the AccptrCcyConvsRspn can be included by sending CcyConvsRslt element with AccptdByCrdhldr=true in AccptrCmpltnAdvc.
Request a new DCC rate (DCC rate can be still valid or expired)If you want to offer a new DCC rate to the cardholder, then you need to send another AccptrCcyConvsReq to the Gateway. Afterwards, the DCC rate from the AccptrCcyConvsRspn can be included by sending CcyConvsRslt element with AccptdByCrdhldr=true in AccptrCmpltnAdvc.
DCC rate declined by cardholderIf you want to offer a new DCC rate to the cardholder, then you need to send another AccptrCcyConvsReq to the Gateway.
If cardholder doesn't accept the new DCC rate, then you need to send CcyConvsRslt element with AccptdByCrdhldr=false in AccptrCmpltnAdvc.
Opt-out in case DCC rate is expiredIf DCC is expired and no new DCC rate is required, then you need to send CcyConvsRslt element with AccptdByCrdhldr=false in AccptrCmpltnAdvc.
IPG/CAP requests new DCC rate on behalf of merchantIf DCC is expired and you expect the Gateway to request a new DCC rate on your behalf, then CcyConvsRslt element shouldn't be present in AccptrCmpltnAdvc at all.

Message Layout

AcceptorCurrencyConversionRequestV04 - caaa.016.001.04
TagDescriptionPresence
Hdr/MsgFctnIdentifies the type of transaction.
DCCQ - CurrencyConversionRequest
m
Hdr/RcptPty/RmotAccs/AccsCdOne-time code. Currently only used for BLIK paymentso
Envt/Mrchnt/LctnCtgyUse value 'NMDC' in case the address is a service location (as needed due to Mastercard mandate AN6022). Otherwise, use value 'FIXD' or don't send this element at allo
Envt/Mrchnt/LctnAndCtct/PstlAdr/....../AdrLine
street house-number,city,zip-code or
house-number,street,city,zip-code
Mapped to below values, if //AdrLine are not given.

or

.../StrtNm
.../BldgNb
.../TwnNm
.../PstCd
.../Ctry
.../AddtlCtctInf
o
Envt/POI/Cpblties/CardRdngCpbltiesFor terminals supporting contactless single-tap PIN requests, include one additional occurrence with value "OTHR". nexo does not support a dedicated value for this capability yet, but it is expected to be added to future releases.o
Envt/POI/Cpblties/CrdhldrVrfctnCpbltiesSee NEXO MDR
Envt/POI/Cpblties/OnLineCpbltiesSee NEXO MDRo
Envt/POI/Cmpnt/TpOnly components with type "TERM" and "DVCE" are evaluated.o
Envt/POI/Cmpnt/Id/SrlNbTerminal serial numbero
Envt/POI/Cmpnt/StdCmplc/IssrOnly standard compliance entries with Issr=GBIC are evaluated.o
Envt/POI/Cmpnt/StdCmplc/IdTerminal approval number
Used for GIRO-Card transactions.
o
Envt/Card/PrtctdCardData/CnttTpEVLPo
Envt/Card/PrtctdCardData/... EnvlpdData/Rcpt/KEKsee chapter 'Protected Card Data in NEXO message' - contains keys used for encryptiono
Envt/Card/PrtctdCardData/... EnvlpdData/NcrptdCnttsee chapter 'Protected Card Data in NEXO message' - contains encyrpted content of plain card datao
Envt/Card/IssrBINFirst 6/8 digits (depending on card number length) are needed to identify card in currency conversion solutionm
Envt/Card/CardCtryCdISO 3166 – 1, alphanumeric or numerico
Envt/Card/CardCcyCdISO 3166 – 1, alphanumeric or numerico
Envt/Card/CardBrndContains brand of the card with one of:
A-Amex
B-BCMC
C-Carte Bancaire (France)
CONECS - Conecs lunch card (France)
D-Diners
E-Maestro
F-EFTPOS (Australia)
G-Giro
J-JCB
K – BLIK (Poland)
L-ELV (Germany)
M-Mastercard
MOBILEPAY - MobilePay
N-VISA Electron
P-VPAY
SWISH - Swish
U-UPI
V-Visa
VIPPS - Vipps
X-Flexecash
m
Envt/Card/PmtAcctRefToken value. Only used when payment is initiated with Token number (manually read or received from ECR) instead of card data. Other Card subfields must not be present in this case.o
Envt/PmtTkn/TknRqstr/PrvdrIdIdentifies the provider of the token: IPG, IPGTA. Not required in request message.o
Cntxt/PmtCntxt/AttndncCntxtMerchant was (not) present.
If AttndncCntxt=UATT, then terminal needs to send as well.
o
Cntxt/PmtCntxt/CardDataNtryMdFor Payment with Token - CDFL.

For other payments, value indicates the entry mode of the card data (TAGC, PHYS, BRCD, MGST, CICC, DFLE, CTLS, ECTL)
m
Cntxt/PmtCntxt/FllbckIndIndicates a problem with the chip

FFLB - FallbackAfterFailure
SFLB - FallbackAfterSuccess
NFLB - NoFallback
o
Cntxt/PmtCntxt/TxChanlType of the communication channels used by the cardholder to the acceptor system. Only below values will be considered:

MAIL - Mail order
TLPH -Telephone order
o
Cntxt/SaleCntxt/SaleIDIdentification of the sale system. Should not be populated on stand-alone terminals, only on terminals integrated with sale systems.o
Cntxt/SaleCntxt/SaleRefNbTransaction identifier assigned by the sale system. Referred to as Merchant Reference 1. Maximum size 15.o
Cntxt/SaleCntxt/CshrIdIdentification of the cashier who initiated the transaction on the sale system. Should not be populated on stand-alone terminals, only on terminals integrated with sale systems.o
Tx/TxCaptrFALSEm
Tx/TxTpCRDP - Card payment
DEFR - Deferred Payment
RESA - Reservation
RFND - Refund
m
Tx/AddtlSvcDCCV - DCCo
Tx/MrchntCtgyCdMerchant category codem
Tx/SaleRefIdRequired in Pre-authorization messages (initial and update). IPG will ignore the value and generate its own pre-authorization ID which will be returned in the same tag and also in RcptTxId.o
Tx/TxId/TxRefReference-ID of transaction.
Used as trace-number, format 999999

Format: Max6Numeric

Other length:
e.g. for pre-authorizations done with an alternative payment method (APM): Max35Alpha-Numeric
or 12 digits with leading zeroes
m
Tx/TxId/TxDtTmDate & time of transactionm
Tx/InitrTxIdMerchant Reference 1.o
Tx/RcncltnIdReconciliation ID, this transaction belongs to.m
Tx/TxDtls/TtlAmtTotal amount in merchant currency.
DCC: Total amount in target currency (copied from dcc_response.Tx/CcyConvsRslt/ConvsDtls/RsltgAmt)
m
Tx/TxDtls/AmtQlfrINCR - Incremental amount for reservation
DECR - Decremental amount for reservation
RESD - total reserved amount
o
Tx/TxDtls/DtldAmt/ AmtGoodsAndSvcsAmount of purchased goods or services. Should only be included when it is different than the total amount.

For DCC: amount in target currency
o
Tx/TxDtls/DtldAmt/GrttyGratuity amount. Should only be included when gratuity (tip) is included in total amount.

For DCC: amount in target currency
o
Tx/TxDtls/DtldAmt/CshBckCashback amount.

For DCC: amount in target currency
o
Tx/TxDtls/VldtyDtReservation validity date. Will be present in initial and update reservation.o
Tx/TxDtls/AcctTpType of cardholder account used for the transaction.

Values: CHCK, CRDT, CDBT, SVNG etc. (more possible values)

In case of Default value, this tags will not be present.
o
Tx/TxDtls/ICCRltdDataEMV-data according to EMVCo speco
Tx/MrchntRefDataMerchant Reference 2o
SctyTrlr/AuthntcdDataMAC . May be disabled or set to optional by a parameter configured in our gateway. If set to optional, a message without MAC is accepted and the response will not contain a MAC.m
AcceptorCurrencyConversionResponseV04- caaa.017.001.04
TagDescriptionPresence
Hdr/MsgFctnIdentifies the type of transaction.m
Tx/TxId/TxRefCopied from requestm
Tx/TxId/TxDtTmCopied from requestm
Tx/SaleRefIdCopied from requesto
Tx/InitrTxIdCopied from requesto
Tx/RcncltnIdCopied from requesto
Tx/RcptTxIdID for this transaction generated by IPG. Will be used in subsequent related pre-authorization management transactions.
Format: Max35Text
For client (reseller) specific formatting: check with your client support contact
o
Tx/TxDtls/CcyCopied from requestm
Tx/TxDtls/TtlAmtCopied from requestm
Tx/TxDtls/VldtyDtReservation validity date. Will be present in initial reservation, update reservation and balance enquiryo
Tx/TxDtls/AcctTpType of cardholder account used for the transaction.
Values: CHCK, CRDT, CDBT, SVNG etc. (more possible values)
In case of Default value, this tags will not be present.
o
Tx/ICCRltdDataEMV data from authorization system.o
`CcyConvsRslt/RsltODCC - Allowed Dynamic currency conversion may be offered to the cardholder.
DCCA - Assumed Transaction authorised with dynamic currency conversion.
ICRD - InvalidCard The card is not valid for dynamic currency conversion.
IMER - InvalidMerchant The card acceptor has not been recognised.
IPRD - InvalidProduct Dynamic currency conversion service cannot be offered for this card product.
IRAT - NoRate Exchange rates are not available.
NDCC - NotAvailable Dynamic currency conversion is not available for other reason.
REST - Restriction Conversion accepted for the requested amount exclusively.
CATG - Catalogue Conversion accepted for a range of amounts.
m
CcyConvsRslt/ConvsDtls/... TrgtCcy/AlphaCdAlpha currency code (ISO 4217, 3 alphanumeric characters) of target (cardholder billing) currency.o
CcyConvsRslt/ConvsDtls/... TrgtCcy/NmrcCdNumeric currency code (ISO 4217, 3 numeric characters) of target (cardholder billing) currency.o
CcyConvsRslt/ConvsDtls/... TrgtCcy/DcmlMaximal number of digits after the decimal separator for the target (cardholder billing) currency.o
CcyConvsRslt/ConvsDtls/... RsltgAmtAmount converted in the target currency, including additional charges.o
CcyConvsRslt/ConvsDtls/... XchgRateExchange rate, expressed as a percentage, applied to convert the original amount into the
resulting amount.
o
CcyConvsRslt/ConvsDtls/... QtnDtQuotation date - Date and time at which the exchange rate has been quoted.o
CcyConvsRslt/ConvsDtls/... VldUntilValidity limit of the exchange rate.o
CcyConvsRslt/ConvsDtls/... SrcCcy/AlphaCdAlpha currency code (ISO 4217, 3 alphanumeric characters) of source (merchant) currency.o
CcyConvsRslt/ConvsDtls/... SrcCcy/NmrcCdNumeric currency code (ISO 4217, 3 numeric characters) of source (merchant) currency.o
CcyConvsRslt/ConvsDtls/... SrcCcy/DcmlMaximal number of digits after the decimal separator for the source (merchant) currency.o
CcyConvsRslt/ConvsDtls/... OrgnlAmt/ActlAmtAmount to be convertedo
CcyConvsRslt/ConvsDtls/... OrgnlAmt/ComssnDtls/AmtCommission expressed as an amount of money.o
CcyConvsRslt/ConvsDtls/... OrgnlAmt/MrkUpDtls/RateCommission expressed as a percentage.o
Tx/RspnAPPR - approved
DECL - declined
PART - partially approved
m
SctyTrlr/AuthntcdDataMAC . May be disabled or set to optional by a parameter. If set to optional, a message without MAC is accepted and the response will not contain a MAC.o

In case of an accepted DCC offer, the transaction must contain the following amounts/currencies:

This applies to sale/preauthorization transactions (AcceptorAuthorizationRequest) as well as to Completions (AcceptorCompletionAdvice)

TagDescriptionPresence
TxDtls/TtlAmtTotal amount of transaction in foreign/card currency (including all detailed amounts).m
TxDtls/DtldAmt/CshBckCashback amount in original/merchant currency.c
TxDtls/DtldAmt/GrttyTip amount in original/merchant currency.c
TxDtls/CcyConvsRslt/RsltgAmtThe complete amount of the transaction in foreign/card currency (equal to TtlAmt)

In case of preAuth completion, this is the amount which has to be transferred, not the reserved amount.
m
TxDtls/CcyConvsRslt/OrgnlAmt/ActlAmtThe complete amount of the transaction in the original/merchant currency.

In case of preAuth completion, this is the amount which has to be transferred, not the reserved amount.
m

Want a quick overview?