The DCC errors your integration can receive, what to do about each, and what to test before you go live.
DCC errors come back with an HTTP status and an errors array, in the same format as other Direct API validation errors.
{
"errors": [
{
"errorCode": "expiredDccGlobalBlueId",
"message": "The DCC quote has expired or is no longer available. Please perform a fresh DCC rate lookup.",
"domain": "processing"
}
]
}Errors
| HTTP | errorCode | When | What to do |
|---|---|---|---|
| 422 | expiredDccGlobalBlueId | The quote is more than 20 minutes old, or unknown | Request a new quote and show the new amount |
| 422 | missingDccGlobalBlueId | A two-stage payment accepts DCC, but no lookup was made for the order | Make the rate lookup by order first |
| 422 | invalidDccGlobalBlueIdForOrder | The globalBlueId is not the one from this order's lookup | Send the ID from the latest lookup for the order, or request a new quote |
| 422 | invalidDccPayment | A single-stage payment accepts DCC without a lookup | Make the rate lookup by amount first |
| 422 | binExcluded | The card is on the list of cards not offered DCC | Show no offer. Take the payment in AED. |
| 422 | unsupportedCardScheme | The card is not Visa or Mastercard | Show no offer. Take the payment in AED. |
| 422 | unsupportedCurrency | The order is not in AED | Show no offer. Take the payment in AED. |
| 422 | dccPropServiceDisabled | DCC is not switched on for the outlet | Ask your relationship manager. Take the payment in AED meanwhile. |
| 400 | invalidCardNumber | The lookup had neither pan nor cardToken | Send one of them |
| 422 | invalidRefundAmount | A partial refund of a multi-currency pricing payment | Refund the full amount |
When DCC is not available for the card, take the payment without isDccSelected or globalBlueId. The customer should still be able to pay.
Retries
| What failed | Retry? |
|---|---|
| Rate lookup, with a 5xx error or a timeout | Yes. If it fails again, take the payment in AED without an offer. |
| Rate lookup, with a 4xx error | No. Correct the request, or go ahead without DCC. |
| Payment with an expired quote | Not with the same quote. Request a new one first. |
Test before you go live
- A quote by order and a quote by amount both return a
globalBlueIdand the converted amount. - The offer shows both amounts and the rate, formatted with
minorUnit. - An expired quote is replaced, not reused.
- Accepting and declining both work, in the flows you use, and the response shows
dccSelectedastrueorfalse. - On
AUTHorders, captures are sent in AED, and partial captures reachCAPTURED. - A card that is not offered DCC still pays in AED.
- If you also use multi-currency pricing, a payment with
currencyset never asks for a DCC quote.
You can download the N-Genius Postman collection for DCC here.

