Get a Dynamic Currency Conversion (DCC) rate for a transaction.
This API allows you to retrieve real-time DCC exchange rates for informational and integration purposes. Use it to obtain exchange rates for your own systems, test and validate your DCC configuration, or verify rate provider connectivity.
This API is for obtaining DCC rates only. We don't currently support processing DCC transactions through e-commerce or other non-POS channels.
To use this API, your organisation must be a merchant of Elavon or AIB. Currently, only Fexco and Elavon are supported as exchange rate providers.
Use the following requests to get a DCC rate.
{
"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"
}
}| Parameter | Description |
|---|---|
merchantstring (≤ 20 characters) required | Your unique merchant identifier, as assigned by PXP. |
sitestring (≤ 20 characters) required | Your unique site identifier, as assigned by PXP. |
exchangeRateProviderstring (enum) required | The exchange rate provider to use for the DCC rate calculation. Possible values:
|
securityLevelobject required | Details about the security level of the transaction. |
securityLevel.primaryAccountNumberstring (≥ 1 character) required | The primary account number. |
securityLevel.encryptedPayloadstring (≥ 1 character) | The encrypted payload for P2PE transactions. This is a future enhancement and not currently supported. |
transactionMethodobject required | Details about the transaction method. |
transactionMethod.entryModestring (enum) required | The entry mode of the transaction. Possible values:
|
transactionMethod.intentstring (enum) required | The intent of the transaction. Possible values:
|
pointOfInteraction object | Details about the point of interaction. This object is optional for Ecom transactions. |
pointOfInteraction.entryType string (enum, ≥ 1 character) | The type of entry used to capture the card details. Possible values:
|
pointOfInteraction.merchantPointOfSaleIdstring (≥ 1 character) | The unique identifier for the merchant point of sale. |
amountsobject required | Details about the transaction amount. |
amounts.localCurrencyCodestring (3 characters) required | The local currency code, in ISO 4217 format. |
amounts.localTransactionnumber (≥ 0.01) required | The transaction amount in the local currency. |
amounts.cardHolderCurrencyCodestring (3 characters) | The cardholder's currency, in ISO 4217 format. |
If your request is successful, you'll receive a 200 response.
{
"state": "Available",
"amounts": {
"local": {
"transaction": 100,
"currencyCode": "USD"
},
"cardholder": {
"transaction": 85.5,
"currencyCode": "EUR"
}
},
"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"
}
}