Skip to main content

SCA Functional Specification

Dynamic Currency Conversion (DCC)

Last updated: 23-Jan-2025

Dynamic Currency Conversion (DCC) allows a non-domestic cardholder, while travelling, to have a choice to pay in their home currency instead or the base currency used by the merchant. This may provide a better rate than their credit card provider, at times.

The PropertiesData.xml file contains all parameters necessary to configure the payment device with DCC. Refer to DCC Parameters for more details on DCC parameters.
HFEX.DAT configuration file contains different BINs for foreign or international cards. SCA does BIN look up in HFEX.DAT file before performing the card rate request. If matching BIN is not found, then SCA will skip DCC query to Fexco host. This file is present under /mnt/flash/userdata/usr1 location. During start up this file is read and stored in the memory to reduce the look up time during the transaction. If this file is not found in the user flash, then SCA application will assume that the file is not present in this solution and proceeds to Fexco integration without doing the BIN look up. The application will use the currency details that are sent by Fexco.

SCA application also approve DCC transactions offline if it meets the SAF eligibility criteria based on USD amount. The transaction will be processed online in DCC using the rate and currency selected by the cardholder at the time when transaction was stored offline. This scenario would be coming into play if device has got DCC rate through an acquirer, however, loses connectivity to the gateway while processing the DCC selection of cardholder. This feature can be controlled by ALLOWDCCTOSAF parameter. Disabling this parameter would result in approving the transactions in Local Currency.

Example DCC Screen

DCC selection screen is added as part of the transaction flow after card data validation for the user to select the home currency, if the transaction is eligible for DCC.

../_images/dcc_screen.png

DCC Controller

DCC Controller is added to handle initializing and DCC processing as part of the payment flow. This controller performs all required actions to check the DCC eligibility for the current transaction and update command object with the currency details. This controller provides the following two services:

Fields Description
initDCC This service is used to initialize and perform all actions, needed for DCC processing. For Fexco DCC Host, it checks for the presence of HFEX.DAT and loads them into memory. Bitmaps are used to load the data of HFEX.DAT data into memory.
DCCProcessing This service is used to check the DCC eligibility for the given transaction and prompts the user for currency selection. For Fexco DCC Host, it does BIN look up into HFEX.DAT file, if this is successful, then it does the card rate request with the Fexco host.

Following are the fields description which are sent in host request to PWC if transaction is eligible for DCC. These fields are added to CAPTURE and REFUND sections of HostMessages.xml file.

Field Name Rules Data Types Length Description
DCC_IND Required for DCC transaction Integer 1
DCC Indicator. Valid values:
1 - Transaction is DCC eligible and cardholder has accepted the option.
2 - Transaction is not eligible for DCC.
3 - Transaction is DCC eligible yet cardholder has not accepted the option.
DCC_TRAN_AMOUNT Conditional VARCHAR 16
The transaction amount provided by SCA that has been calculated in the currency requested by the Cardholder.
  • Device will be responsible for sending all amounts with or without decimals to PWC, based on the requirements of the currency code.
  • PWC will only be required to explicitly remove the decimal when sending transaction to FDRC.
  • If DCC_TRAN_AMOUNT is provided, FDRC Requires DCC_CURR_CODE and DCC_CONV_RATE to also be provided.
  • DCC_TRAN_AMOUNT required for DCC_IND = 1.
DCC_CONV_RATE Conditional Decimal 7
The DCC Conversion Rate provided by SCA that was used in calculating the DCC_TRAN_AMOUNT.
  • DCC_CONV_RATE is required for DCC_IND=1.
  • FDRC Requires DCC_CONV_RATE to be provided any time DCC_TRAN_AMOUNT is provided.
DCC_CURR_CODE Required for DCC transaction Integer 3 The DCC Currency Code used for DCC Calculations. This value will be standardized across all Countries. FDRC Requires DCC_CURR_CODE to be provided on all DCC Attempts including DCC_IND 1,2,3.
DCC_DATETIME Conditional DateTime 20 This indicates the date and time, when the DCC conversion took place. This is a PWC requirement as the DCC calculation will occur prior to the transaction being sent to PWC. This is used as an Audit Trail. This value will be provided by SCA/Merchants Integration.
DCC_TIMEZONE Conditional Integer 3
This is the time zone for the DCC_DATETIME that will be provided by SCA/Merchants Integration.
  • FDRC requires DCC_TIMEZONE field to be provided.
  • If DCC_TIMEZONE is provided, then this must be sent as +- and 2-digit hour offset from GMT.
  • If DCC_TIMEZONE is not provided by SCA, then PWC will default to the Merchants TimeZone as configured in PWC.
DCC_SOURCE Conditional Integer 1
The source of the DCC Rates will be provided as an Audit Trail for PWC:
0 - Merchant Supplied Values
1 - Device-FEXCO Direct
2 - PWC xxxx (Reserved for Future Use)
and so on.
DCC_CALCULATION Conditional Integer 1
The source of the calculation of DCC_TRAN_AMOUNT. This will be used in as an Audit Trail for PWC:
0 - Merchant Supplied Values
1 - PWC performs calculation based on DCC_CONV_RATE provided by Merchant
2 - Reserved for future use

Example DCC Receipt

../_images/dcc_receipt.png

Need help?

Do you have a question? If you didn’t find the answer you are looking for in our documentation, you can contact our Support teams for more information. If you have a technical issue or question, please contact us. We are happy to help.

Not yet a Verifone customer?

We’ll help you choose the right payment solution for your business, wherever you want to sell, in-person or online. Our team of experts will happily discuss your needs.

Verifone logo