Skip to main content
Not every card presented at the point of sale is eligible for DCC. Domestic cards, unrecognized BINs, unsupported card schemes, and pre-paid cards all result in a “no offer” response from the rate service. Your integration must detect these responses and process the transaction in the merchant’s local currency without presenting a DCC offer to the cardholder. This page explains why a card may not be eligible, how each rate API signals a no-offer result, and what your integration needs to do in each case.

Why a card may not be eligible

The rate service evaluates the card BIN, scheme, and currency against the merchant’s DCC configuration. If any check fails, no DCC offer is returned. The following accordion describes the most common scenarios where DCC cannot be offered, and explains why each one occurs.
This is a domestic card. DCC only applies when the cardholder’s currency differs from the merchant’s base currency. When the two match, there is nothing to convert.
The BIN is not in Fexco’s card range tables, so the card issuer or currency cannot be determined. DCC cannot be offered without knowing the cardholder’s currency.
The card belongs to a scheme that has not been configured for DCC on the merchant’s template. Contact your Fexco project manager to check which schemes are enabled for your acquirer.
Visa and Mastercard identify certain cards and account ranges as ineligible for currency conversion at the point of interaction. No offer is returned for these cards, regardless of the card’s currency. This includes:
  • Cards or accounts identified in the Mastercard Parameter Extract (MPE) as ineligible for point of interaction (POI) currency conversion.
  • Visa account ranges enabled with the Visa Multi-Currency Solution.
  • Travel prepaid cards, including Visa TravelMoney.
Fexco maintains these exclusions in its card range tables, so no additional checks are required in your integration.
The card is a recognized foreign card, but Fexco does not currently have an exchange rate for that currency pair. This can happen if the currency is not supported or if rates are temporarily unavailable.
The amount is at or below the contactless Transaction Lower Limit (TLL). The TLL is an optional per-merchant or per-ATM threshold configured by Fexco as part of your acquirer setup. When a TLL is configured, DCC is not offered for contactless transactions where the amount is equal to or less than the threshold. Contact your Fexco project manager to check whether a TLL is configured for your merchants.

Filter domestic cards before the rate request (optional)

For card-present transactions, filtering domestic cards at the terminal using EMV data is recommended before sending a rate request. This avoids unnecessary rate requests for cards that will not receive a DCC offer. To filter domestic cards, compare EMV tag 5F28 (Issuer Country Code) with EMV tag 9F1A (Terminal Country Code):
EMV filtering is not practical for card-not-present (CNP) transactions, as EMV tags are not available. For CNP transactions, send the rate request and let the rate service identify domestic cards.
The following diagram shows the order of the checks and how each API signals a failed check.

How Rate Service Classic and Rate Service Connect signal no eligibility

Rate Service Classic and Rate Service Connect handle ineligible cards differently. Your integration logic depends on which API you use.

Rate Service Classic

Rate Service Classic returns an HTTP 200 with an empty response body ({}) when the card is not eligible for DCC. This applies to all no-offer scenarios, whether the card is domestic, unrecognized, pre-paid, or belongs to an unsupported scheme.
An empty response body with a 200 status code means DCC is not available for this card. Process the transaction in the merchant’s local currency. Check whether the response body is empty before attempting to parse rate offer fields.
Rate Service Classic does not return an error code or message for ineligible cards. The empty body is the only signal.

Rate Service Connect

Rate Service Connect returns an HTTP 400 with a JSON error body that includes a specific error code and message. The error code tells you exactly why the card is not eligible. The following table lists the eligibility-related error codes. A Rate Service Connect error response for an ineligible card looks like this:

Handle a no-offer response

When the rate service indicates that a card is not eligible for DCC, your integration must handle the response as described below.
  1. Detect the no-offer response Check the response from the rate service before presenting a DCC offer.
    • Rate Service Classic: Check whether the response body is empty ({}). If it is, no DCC offer is available.
    • Rate Service Connect: Check whether the HTTP status is 400 and the error code is one of the eligibility codes listed above (22, 5, 99, 97, or 8).
  2. Process in the local currency: When no DCC offer is available, process the transaction in the merchant’s base currency. Do not present a currency choice to the cardholder.
  3. Do not retry the same card: A no-offer result for a given BIN and merchant is deterministic. The same card at the same merchant will produce the same result. Do not retry the rate request for the same transaction.
Never present a DCC offer screen to the cardholder when the rate service returns a no-offer response. Processing must continue in the merchant’s local currency.

Distinguishing no-offer from errors

Not every non-success response means the card is ineligible. The following table helps you distinguish between a genuine no-offer result and a request or server error that needs a different response. For request errors, check your request parameters. For server errors, retry with exponential backoff or contact Fexco support. For no-offer results, process in the local currency without retry. For the full error reference, see Error handling.

Next steps