Visa provides daily FX rates for the 180+ global currencies that are used within VisaNet to authorize and settle transactions. The current list of supported currencies with their alphabetic and numeric ISO codes and their minor decimal places (for displaying amounts) can be found on the Request and Response Code Reference.
The Foreign Exchange Rates API is available for use by any developer in sandbox and production. However, Visa retains the right to review your project implementation of this API prior to production on-boarding to ensure appropriate use of its features.
The Enhanced FX API provides Visa rates for global currencies and its comparison with benchmark rates like ECB. Visa rates are made available for the past 365 days for currencies listed here. Benchmark rates are made available for the past 365 days for currencies listed here.
The following table lists the regional availability for Foreign Exchange Rates APIs. The benchmark rates for the Enhanced FX API are available for currency pairs listed here. To view availability of all products, refer to the Availability Matrix.
Available in entire region
Limited availability in region
Foreign Exchange Rates provide easy access to the Visa daily currency exchange rate for a given currency pair. With Foreign Exchange Rates, you can provide a better user experience for cross-border and/or multicurrency transactions.
The Foreign Exchange Rates API allows you to provide a source amount and a source and destination currency pair and get back the source amount converted into the destination currency using Visa's daily foreign exchange rates. This API can be very useful whenever you are building a project that requires working with multi-currency or cross-border transactions, such as cross-border remittances or person-to-person money transfers.
To use the Foreign Exchange Rates API, you must provide a source currency code (the “from” currency), a destination currency code (the “to” currency), and an amount to be converted (denominated in the source currency) in the request message.The API also has two ways to apply an optional currency conversion markup.You may provide a specific markup rate in each request that you want to have applied on top of Visa's daily rate. Alternatively, you may be able to arrange with Visa to have predefined markup rates configured within VisaNet. In that case, Visa willl apply an appropriate markup rate to the converted amount and the markup rate used by Visa will be returned in the response message.
The response message will contain Visa's current day base conversion rate for the currency pair, the foreign exchange markup rate that was added to the base conversion rate (if any), the total conversion rate, and the source amount in the destination currency.(The technical details can be found on the Documentation tab.)
If you will be using the Foreign Exchange Rates API in conjunction with calls to the Funds Transfer API, please include the following fields in the request message (Acquiring BIN, Acquirer Country Code, and the Card Acceptor fields) using the corresponding values that you plan to use in your Funds Transfer API calls. If not, you can exclude all of those fields from your request. If you are using the option to have Visa apply a previously configured markup rate to the request, you must include your Acquiring BIN in the request.
The Enhanced FX Rates API provides access to benchmark rates like ECB in addition to the Visa daily currency exchange rates for the past 365 days. Benchmarks can be used to provide transparency to customers on exchange rates and how they compare to benchmark rates. The current list of benchmark currencies supported is here.
This API can be used to get Visa treasury rates (supported by both Get Foreign Exchange Rates and Get Markup Foreign Exchange rates APIs) and/or corresponding Benchmark rates (currently ECB benchmark is supported; only applicable to Get Markup Foreign Exchange rates API) for a given currency pair as of a certain date.
The API accepts a" from" currency and amount (transaction currency and amount), "to" currency and amount (cardholder billing currency), bank specific fee and asOfDate. The API returns the "to" amount with Visa rates and benchmark rates (if applicable to the currency pair) as well as markup between the Visa and benchmark rates. Last available rates that were effective on the asOfDate are returned. If asOfDate is not provided, API returns that last effective benchmark and Visa rates.
The API returns rates for all days including weekends and holidays based on the “asOfDate” passed in. For example if an “asOfDate” of 29th December 2019 (Sunday) is passed in when both Visa and Benchmark system (ECB) do not publish rates, the API will return the last refreshed rates as of 27th December 2019 (Friday) which was the last time rates from Benchmark system (ECB) and Visa were published. The “lastUpdatedVisaRate” element can be used by calling parties to find the date when the Visa rates they are receiving were last refreshed. Calling parties can use the “lastUpdatedBenchmarkRate” element to determine when the rates returned to them from a benchmark system like ECB, were last refreshed in the Visa systems. This methodology ensures that calling parties will always receive a rate back from the system but the staleness of the data can be determined by using the above two dates.
If the “asOfDate” is not provided by calling parties in the API request, the API will return the most recent rates available in the system for Visa and Benchmark system (ECB) rates.
For rates loaded before Feb 10th, 2020 to provide calling parties with 365 days back lookup, the “lastUpdatedVisaRate” and “lastUpdatedBenchmarkRate” will reflect a date before production launch but should not be used for check on data staleness since they are part of a one time load.
To get a quick overview of how to connect to the Visa Enhanced FX Rate API using Postman, refer to this video tutorial.