Request a Global Blue rate for the customer's card, and show them the amount in their own currency.
Request a quote once the customer has entered their card details and the amount is final. N-Genius works out the card's currency from the card number and returns the converted amount and the rate, with a quote ID you send back with the payment.
There are two lookups. Use the one that matches your flow.
| Flow | Endpoint |
|---|---|
| Two-stage: the order already exists | POST /transactions/outlets/{outletId}/mcp-dcc/dcc-order-rate-lookup |
| Single-stage: no order yet | POST /transactions/outlets/{outletId}/mcp-dcc/dcc-amount-rate-lookup |
Headers
| Header | Value |
|---|---|
Authorization | Bearer <access_token> |
Content-Type | application/vnd.ni-payment.v2+json |
Accept | application/vnd.ni-payment.v2+json |
Request body
| Field | Lookup | Required | Description |
|---|---|---|---|
pan | Both | Either this or cardToken | The card number the customer entered |
cardToken | Both | Either this or pan | A saved-card token, when the customer pays with a saved card |
orderId | By order | Required | The order reference returned when you created the order |
amount.currencyCode | By amount | Required | The order currency. Must be AED. |
amount.value | By amount | Required | The amount in minor units, so 3000 is AED 30.00 |
Sample request: by order
curl --request POST \
'https://api-gateway.sandbox.ngenius-payments.com/transactions/outlets/<outlet_id>/mcp-dcc/dcc-order-rate-lookup' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/vnd.ni-payment.v2+json' \
--header 'Accept: application/vnd.ni-payment.v2+json' \
--data '{
"pan": "4111111111111111",
"orderId": "<order_reference>"
}'Sample request: by amount
{
"pan": "4111111111111111",
"amount": { "currencyCode": "AED", "value": 3000 }
}Sample response
Both lookups return the same shape, with HTTP 200.
{
"globalBlueId": "a3f8c2e1-7b4d-4f9a-9e2c-1d5b8a7f6e3c",
"transactionInfo": {
"currencyCodeFrom": "AED",
"currencyCodeTo": "USD",
"amount": 3000,
"convertedAmount": 817,
"conversionRate": 0.2723,
"minorUnit": 2,
"markup": "3.99",
"conversionDateTime": 1752969600000
}
}| Field | Description |
|---|---|
globalBlueId | The quote ID. Send it with the payment if the customer accepts. Valid for 20 minutes. |
transactionInfo.currencyCodeFrom | The order currency, AED |
transactionInfo.currencyCodeTo | The card's currency |
transactionInfo.amount | The order amount in minor units |
transactionInfo.convertedAmount | The amount in the card's currency, in minor units |
transactionInfo.conversionRate | The rate: one AED in the card's currency |
transactionInfo.minorUnit | How many decimal places the card's currency uses. Use it to format convertedAmount. |
transactionInfo.markup | The markup included in the rate, as a percentage |
transactionInfo.conversionDateTime | When the quote was made, in epoch milliseconds |
Show the offer
Give the customer two choices with their amounts, for example AED 30.00 or USD 8.17, and the rate, for example 1 AED = 0.2723 USD. Do not choose for them. The quote is valid for 20 minutes, so if the customer may take longer, tell them the amount can change.
If the lookup returns an error because the card, its scheme or the order currency is not eligible, show no offer and take the payment in AED. See Errors and testing.

