Skip to content

DCC rate service API (1.0.0)

This is an API reference for the DCC (Dynamic Currency Conversion) rate service.

Download OpenAPI description
Languages
Servers
Production environment

https://api-services.pxp.io/api/v1/

Sandbox environment

https://api-services.test.pxp.io/api/v1/

Get DCC rate

Request

Retrieve the Dynamic Currency Conversion (DCC) rate for a transaction from various providers.

Bodyapplication/jsonrequired
merchantstring<= 20 charactersrequired

Your unique merchant identifier, as assigned by PXP.

Example: "MERCHANT-1"
sitestring<= 20 charactersrequired

Your unique site identifier, as assigned by PXP.

Example: "SITE-1"
exchangeRateProviderstringrequired

The exchange rate provider to use for the DCC rate calculation.

Enum"Elavon""GlobalBlue""Fexco"
Example: "Elavon"
cardholderCurrencyCodestring(CurrencyCode)= 3 characters^[A-Z]{3}$required

Currency code in ISO 4217 format.

Example: "USD"
securityLevelP2PE card data (object) or Non-P2PE card data (object)(SecurityLevel)required

Details about the security level of the transaction. This object contains either an encrypted payload for P2PE or primary account number for non-P2PE.

One of:

Details about the security level of the transaction. This object contains either an encrypted payload for P2PE or primary account number for non-P2PE.

securityLevel.​encryptedPayloadstringnon-emptyrequired

The encrypted payload, for P2PE transactions.

Example: "48BCFZFUklGT05F348CBFA0MDDfjwMLMjc1LTA0MC0zNzHfjwYBAN+PBwQbTVL4348ECv//AAAQACXgAA/fjwUIPmP5MQz/poffjwhoreYH9Y6M47xapI7MALlOG7zWO97lD7rVPK5pUVdHUotneMaiaBwE/2EMliZV3ZIiWPi4Xaa3A3wcnEFjAT9SqwwEEVI6XmDQXAbplogQzMQsOsDFmIGXaTPb9sVdTumSsyFAmZwRE="
transactionMethodobject(TransactionMethod)required

Details about the transaction method.

transactionMethod.​entryModestringrequired

The entry mode of the transaction.

Enum"Instore""Ecom"
transactionMethod.​intentstringrequired

The intent of the transaction.

Enum"Purchase""Authorisation""EstimatedAuthorisation""Capture""FinalCapture""Refund""Reversal"
pointOfInteractionobject(PointOfInteraction)

Details about the point of interaction. This object is optional for Ecom transactions.

amountsobject(RequestAmounts)required
amounts.​localCurrencyCodestring(CurrencyCode)= 3 characters^[A-Z]{3}$required

Currency code in ISO 4217 format.

Example: "USD"
amounts.​localTransactionnumber>= 0.01required

The transaction amount in the local currency.

Example: 100
curl -i -X POST \
  https://api-services.pxp.io/api/v1/dcc/rate \
  -H 'Content-Type: application/json' \
  -d '{
    "merchant": "MERCHANT-1",
    "site": "SITE-1",
    "exchangeRateProvider": "Elavon",
    "cardholderCurrencyCode": "EUR",
    "securityLevel": {
      "encryptedPayload": "48BCFZFUklGT05F348CBFA0MDDfjwMLMjc1LTA0MC0zNzHfjwYBAN+PBwQbTVL4348ECv//AAAQACXgAA/fjwUIPmP5MQz/poffjwhoreYH9Y6M47xapI7MALlOG7zWO97lD7rVPK5pUVdHUotneMaiaBwE/2EMliZV3ZIiWPi4Xaa3A3wcnEFjAT9SqwwEEVI6XmDQXAbplogQzMQsOsDFmIGXaTPb9sVdTumSsyFAmZwRE="
    },
    "transactionMethod": {
      "entryMode": "Instore",
      "intent": "Authorisation"
    },
    "pointOfInteraction": {
      "entryType": "ChipAndPin",
      "merchantPointOfSaleId": "POS-1"
    },
    "amounts": {
      "localTransaction": 100,
      "localCurrencyCode": "USD"
    }
  }'

Responses

Success

Bodyapplication/json
statestringrequired

The state of the DCC rate request.

Enum"Available""NotAvailable""CardEligible""CardNotEligible""Error"
amountsobject(ResponseAmounts)required

Details about the amounts.

amounts.​localCurrencyCodestring(CurrencyCode)= 3 characters^[A-Z]{3}$required

Currency code in ISO 4217 format.

Example: "USD"
amounts.​localTransactionnumber>= 0.01required

The transaction amount in the local currency.

Example: 100
amounts.​cardholderCurrencyCodestring(CurrencyCode)= 3 characters^[A-Z]{3}$required

Currency code in ISO 4217 format.

Example: "USD"
amounts.​cardholderTransactionnumber>= 0.01required

The transaction amount in the cardholder's currency.

Example: 85.5
exchangeRateobject(ExchangeRate)required

Details about the exchange rate.

exchangeRate.​ratenumberrequired

The foreign exchange rate.

Example: 0.855
exchangeRate.​exponentintegerrequired

The exponent of the foreign exchange rate.

Example: 3
exchangeRate.​markUpPercentagenumberrequired

The markup percentage.

Example: 3
exchangeRate.​commissionRatenumberrequired

The commission rate applied.

Example: 0.025
exchangeRate.​marginnumberrequired

The margin applied.

Example: 2.1
messagingobject(Messaging)required

Details about the messaging of the DCC rate request.

messaging.​markUpMessagestringrequired

Message about the markup.

Example: "Competitive exchange rate with 3.5% markup"
messaging.​disclaimerstringrequired

Disclaimer text about the rate.

Example: "Exchange rate includes markup and may vary."
providerResponseElavonProviderResponse (object) or GlobalBlueProviderResponse (object) or FexcoProviderResponse (object)required
One of:

Details about the Elavon provider response.

providerResponse.​providerstringrequired

The name of the provider.

Example: "Elavon"
providerResponse.​referenceIdstringrequired

The Elavon reference ID.

Example: "REF123456789"
providerResponse.​terminalIdstringrequired

The terminal ID provided by Elavon.

Example: "TERM-001"
Response
application/json

Example response from Elavon provider

{ "state": "Available", "amounts": { "local": {}, "cardholder": {} }, "exchangeRate": { "rate": 0.855, "exponent": 3, "markUpPercentage": 3.5, "commissionRate": 0.025, "margin": 2.1 }, "messaging": { "markUpMessage": "Competitive exchange rate with 3.5% markup", "disclaimer": "Exchange rate includes markup and may vary." }, "providerResponse": { "provider": "Elavon", "referenceId": "REF123456789", "merchantId": "MERCH-001", "terminalId": "TERM-001" } }