Comparison

The comparison API can be used to request price and speed information about various money transfer providers. This includes not only Wise but other providers in the market.

Price Estimation

The quotes (price / speed) provided by this API are based off of real quotes collected from 3rd party websites. We collect both the advertised exchange rate and fee for each provider for various amounts. When a comparison is requested we calculate the markup % on the collected exchange rate on the mid-market rate at the time of collection, we then apply this markup % on the current mid-market rate to provide a realistic estimate of what each provider offers. We collect data for all providers ~ once per hour to ensure we provide as accurate and up to date information as possible.

Note: Today, we only provide estimations for FX transactions with a Bank Transfer pay-in / pay-out option. This is important to stress as many providers offer significantly different fees / exchange rates when used debit / credit card, cash etc.

For more details on the data collection process please see the following page:

https://wise.com/gb/compare/disclaimer

If you have questions or suspect any data to be inaccurate or incomplete please contact us at:

comparison@wise.com

Delivery Estimation

Similar to price, we collect speed data for most (if not all) providers which we have price information for. Many providers display speed estimates to their customers in a number of different ways.

Some examples:

  • "The transfer should be complete within 2-5 days"
  • "The money should arrive in your account within 48 hours"
  • "Should arrive by 26th Aug"
  • "Could take up to 4 working days"

The below API intends to model these in a consistent format by providing a min / max range for all delivery estimations. An estimate that states "up to X" will have "max" set to a duration but "min" as null, a "from X" will have "min" set to a duration and "max" as null. Finally for those providers who offer a specific, point in time estimation (like Wise), the API will surface a duration where min/max are equal.

Quotes structure

In order to provide the most flexible and accurate data for clients, we surface a denormalised list of quotes per provider where each quote represents a unique collection of comparison "dimensions".

A single given provider may expose multiple quotes for the same currency route. The most common example is where a provider offers different pricing for one country vs another country which uses the same currency. e.g:

Provider X:

  • GBP EUR 1000 [GB -> ES] fee: 10, rate: 1.5
  • GBP EUR 1000 [GB -> DE] fee: 8, rate: 1.5
  • GBP EUR 1000 [GB -> FR] fee: 10, rate: 1.35

The same principle applies for speed. I.e a provider may have different speed estimates for different target countries and hence we expose these as discrete quotes - where a quote is a unique combination of route / country / speed / price factors.

A client may choose to reduce this set of quotes down to a single or several quotes in order to display a relevant quote to a given user. An example where we take the cheapest quote for a given currency route (and also surface the target country) can be seen at the below link:

https://wise.com/gb/compare/?sourceCurrency=GBP&targetCurrency=EUR&sendAmount=1000

Fields
idinteger

Provider ID

aliastext

Provider alias (lowercase slug name)

nametext

Provider name (presentational / formal name)

logotext

URL pointing to provider logo (default svg format)

typetext

Provider type

partnerboolean

Whether a partner of Wise or not

quotesarray

An array of estimated quotes per provider

quotes.ratetimestamp

The live estimated exchange for the provider for this quote

quotes.feeinteger

The estimated fee for the provider for this quote

quotes.receivedAmountinteger

The total estimated receive amount for the provider for this quote

quotes.dateCollectedtext

The date of collection for the original quote

quotes.sourceCountrytimestamp

Source country (ISO 3166-1 Alpha-2 code)

quotes.targetCountrydecimal

Target country (ISO 3166-1 Alpha-2 code)

quotes.deliveryEstimationobject

Delivery estimation details - i.e a speed estimate

quotes.deliveryEstimation.durationobject

Duration range

quotes.deliveryEstimation.duration.miniso 8601 duration format

Minimum quoted time for transaction delivery

quotes.deliveryEstimation.duration.maxiso 8601 duration format

Maximum quoted time for transaction delivery

quotes.deliveryEstimation.providerGivesEstimateboolean

Whether a provider publicly surfaces / exposes a speed estimate

Comparison Object
{
"sourceCurrency": "GBP",
"targetCurrency": "EUR",
"sourceCountry": null,
"targetCountry": null,
"providerCountry": null,
"providerType": null,
"sendAmount": 10000.0,
"providers": [
{
"id": 39,
"alias": "transferwise",
"name": "Wise",
"logo": "https://dq8dwmysp7hk1.cloudfront.net/logos/transferwise.svg",
"type": "moneyTransferProvider",
"partner": false,
"quotes": [
{
"rate": 1.15989,
"fee": 37.12,
"receivedAmount": 11555.84,
"dateCollected": "2019-10-22T14:36:43Z",
"sourceCountry": null,
"targetCountry": null,
"markup": 0.0,
"deliveryEstimation": {
"duration": {
"min": "PT20H8M16.305111S",
"max": "PT20H8M16.305111S"
},
"providerGivesEstimate": true
}
}
]
},
{
"id": 1,
"alias": "barclays",
"name": "Barclays",
"logo": "https://dq8dwmysp7hk1.cloudfront.net/logos/barclays.svg",
"type": "bank",
"partner": false,
"quotes": [
{
"rate": 1.12792426,
"fee": 0.0,
"receivedAmount": 11279.24,
"dateCollected": "2019-10-22T14:00:04Z",
"sourceCountry": "GB",
"targetCountry": "ES",
"markup": 2.75592858,
"deliveryEstimation": {
"duration": {
"min": "PT24H",
"max": "PT24H"
},
"providerGivesEstimate": true
}
},
...
{
"rate": 1.12792426,
"fee": 0.0,
"receivedAmount": 11279.24,
"dateCollected": "2019-10-22T14:00:04Z",
"sourceCountry": "GB",
"targetCountry": "FI",
"markup": 2.75592858,
"deliveryEstimation": {
"duration": {
"min": "PT24H",
"max": "PT24H"
},
"providerGivesEstimate": true
},
...
}
...
]
}
]
}

GET /v3/comparisons/?sourceCurrency=GBP&targetCurrency=EUR&sendAmount=10000

Request
sourceCurrencytext

ISO 4217 source currency code

targetCurrencytext

ISO 4217 target currency code

sendAmountdecimal

Amount in source currency

sourceCountrytext

(Optional) Filter by source country (ISO 3166-1 Alpha-2 code)

targetCountrytext

(Optional) Filter by target country (ISO 3166-1 Alpha-2 code)

providerTypeone of "bank","moneytransferprovider"

(Optional) Filter by provider type

Response

Returns a comparison object.

Example Request
curl -X GET https://api.transferwise.com/v3/comparisons/?sourceCurrency=GBP&targetCurrency=EUR&sendAmount=10000 \
-H 'Authorization: Bearer <your api token>'