Exchange rates

The Pismo platform supports multi-currency exchange rates for international transactions. You must use the Create exchange rate endpoint to create an exchange rate for today or tomorrow for your organization (org) or a specific program.

Exchange rates for international transactions

You do not need to register exchange rates for international transactions daily. The last rate configured less than or equal to the rate date is used.

📘

What if no exchange rate is configured?

If no exchange rate is created for a specific date, the last rate configured earlier than or equal to the rate date is used.

If no exchange rate is created at all, an error is returned.

If you have a flex control that blocks international purchases, it's important to register them as you may have a flex control override for a specific account / customer_id / card_id.

Configured exchange rates are retained in the Pismo database and are not purged.

If you do not configure exchange rates for international purchases:

  • International authorizations will return the Rates API denial (RAD) denial code.
  • Network authorization validation results will return the following object:
{
  "name": "RATES_LOGICAL",
  "status": "REJECTED",
  "reason": "RATES_LOGICAL_ERROR",
  "description": "Denied by application while performing amounts calculation.",
  "additional_data": {}
}

Sample Create exchange rate endpoint request payload

{
   "program_id": 1985,
   "date": "2022-04-05",
   "exchange_rate": 4.8123,
   "spread": 1.1205,
   "origin_currency_id": "840",
   "destination_currency_id": "986"
}

The purchase is made in U.S. dollars, but the payment for it is in Brazilian reals, so the origin_currency_id is 840 and destination_currency_id is 986. These are ISO 4217 currency code values.

The exchange_rate in the example is 4.8123, which means that 1 U.S. dollar (origin currency) equals 4.8123 Brazilian reals (destination currency).

The spread value of 1.1205 is equivalent to 1.1205% , which represents the percentage rate multiplier on the day. The platform adds this percentage that the issuer wants to charge for the conversion to the value of exchange rates.

If this request is successful, the platform creates the exchange rate and applies it to the program, since the program_id is specified in the request.

Use the Get exchange rates endpoint to get exchange rates for your org or for a specific program.

Multi-currency setup (MCS) and same-currency pairs

Rates configuration is required for every pair used in MCS as well as same-currency pairs. Even when origin and destination currencies are the same (for example, USD → USD child account or EUR → EUR child account), the Rates API is still called for every non-zero transaction. You cannot skip the call to the Rates API. If there is no rate configuration for that pair, the Rates API call fails and the authorization is denied.

After MCS routing, the destination currency sent to the Rates API is already the child account's currency—this happens automatically. No additional configuration is needed on the authorization side to trigger that routing. The Pismo platform correctly identifies the child account and uses its currency as the destination.