Skip to main content
The Rate Service Classic API lets you request a DCC rate offer for a specific transaction at the moment of payment. You send a GET request with the card Bank Identification Number (BIN), the transaction amount, and the merchant or ATM identifier. DHS (Dynamic Host Server) checks whether the card is eligible for DCC and returns the converted amount, exchange rate, and margin. This guide covers the primary DCC use case: requesting a rate offer for a single transaction using a BIN and base amount. For retrieving exchange rates in bulk for multi-currency pricing (MCP), see Request MCP exchange rates.

Before you start

You need the following to request a DCC offer using Rate Service Classic:
  • A DHS host URL provided by your Fexco project manager. See Environments for the full list of base URLs and certificate endpoints.
  • An acquirer ID (three-letter alphabetic code assigned by Fexco).
  • At least one boarded merchant with a merchant ID (MID). In Fexco’s systems, the MID corresponds to the Merchant Originator Tag.

Request a rate offer

The following steps walk through a single-card DCC offer request for a merchant. For ATM integrations, use the ATM variant of the endpoint (/acquirers/{acquirerId}/atms/{atmId}/dccoffers). For the full list of parameters and response fields, see Request a DCC offer in the API reference.
1

Send the request

Send a GET request to the Request a DCC offer endpoint with the following parameters:
  1. In the URL path, replace TST with your acquirer ID and 11111111 with your merchant ID.
  2. Set bin to the first 11 digits of the card number.
  3. Set baseamount to the transaction amount in the merchant’s base currency, including the decimal point (for example, 123.45).
  4. Set posentrymode to the terminal’s POS entry mode.
The posentrymode value is a three-character code defined by ISO 8583. The first two digits indicate how the card number was captured (for example, 07 for contactless ICC EMV), and the third digit indicates PIN entry capability (for example, 1 for PIN capable). In the example below, 071 means contactless ICC EMV with PIN entry capability.
Fexco recommends sending 11 digits in the bin field for optimal accuracy in card currency recognition. If your integration captures fewer than 11 digits, you can send the first 6 digits in bin and the remaining digits (up to 6 more) in the optional cid (Currency ID) parameter. See the API reference for details.
A response with foreignAmount and exchangeRate means the card is eligible for DCC. Proceed to step 2. If the response body is empty ({}), the card is not eligible. Charge in the merchant’s local currency instead. See Handle domestic and unsupported cards.
2

Read the response fields

When the card is eligible for DCC, the response contains the exchange rate and converted amount you need to present the cardholder with their payment options. The table below describes the key fields in the response:For the complete field reference, see Request a DCC offer in the API reference.
3

Present the offer to the cardholder

Display the DCC offer to the cardholder so they can choose to pay in their home currency or the merchant’s local currency. The offer must include the following information for regulatory compliance:
  • The transaction amount in the merchant’s base currency (baseAmount).
  • The converted amount in the cardholder’s currency (foreignAmount).
  • The exchange rate (exchangeRate.rate).
  • The margin percentage (exchangeRate.marginPercentage).
  • The rate source and timestamp (exchangeRate.source, exchangeRate.sourceTimestamp).
The cardholder must accept or decline before the expiry timestamp. If the offer expires before the cardholder responds, discard it and request a new one. See Handle rate expiry.

Next steps