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""Fexco"
Example: "Elavon"
securityLevelobject(SecurityLevel)required

Details about the security level of the transaction.

securityLevel.​primaryAccountNumberstringnon-emptyrequired

The primary account number.

Example: "{primaryAccountNumber}"
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
amounts.​cardHolderCurrencyCodestring(CurrencyCode)= 3 characters^[A-Z]{3}$

Currency code in ISO 4217 format.

Example: "USD"
curl -i -X POST \
  https://api-services.pxp.io/api/v1/dcc/rate \
  -H 'Content-Type: application/json' \
  -d '{
    "merchant": "MERCHANT-001",
    "site": "SITE-001",
    "exchangeRateProvider": "Elavon",
    "securityLevel": {
      "primaryAccountNumber": "{primaryAccountNumber}"
    },
    "transactionMethod": {
      "entryMode": "Instore",
      "intent": "Authorisation"
    },
    "pointOfInteraction": {
      "entryType": "ChipAndPin",
      "merchantPointOfSaleId": "POS-001"
    },
    "amounts": {
      "localTransaction": 100,
      "localCurrencyCode": "USD",
      "cardHolderCurrencyCode": "EUR"
    }
  }'

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.​localobjectrequired
amounts.​local.​transactionnumberrequired

The transaction amount in the local currency.

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

Currency code in ISO 4217 format.

Example: "USD"
amounts.​cardholderobjectrequired
amounts.​cardholder.​transactionnumberrequired

The transaction amount in the cardholder's currency.

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

Currency code in ISO 4217 format.

Example: "USD"
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 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: "TERM001"
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", "terminalId": "TERM001" } }