Affiliates Integration Guide

API access

Once you become our affiliate partner, please get in touch with our team at partnerwise@wise.com. We will review your request and send over instructions on how to get the API access credentials.

There are two endpoints Exchange Rates.List and Get Temporary Quote which you can call with this authentication method.

Postman Collection

Please visit our Postman collection for more details and examples of how to use our API, including how to get comparison, rates as well as pricing and speed data.

TEST and LIVE environments

Get current exchange rates

Example Request (Basic authentication):

curl -X GET "https://api.sandbox.transferwise.tech/v1/rates?source=EUR&target=USD" \
     --user <your api client_id>:<your api client_secret> 

Example Response:

[
    {
        "rate": 1.166,
        "source": "EUR",
        "target": "USD",
        "time": "2018-08-31T10:43:31+0000"
    }
]

GET https://api.sandbox.transferwise.tech/v1/rates?source=EUR&target=USD

Wise updates exchange rates in nearly real-time – at least once per minute. This allows you to track and see the current mid-market exchange rate for any currency route.

See more at Exchange Rates.List

Get exchange rate history

Example Request (Basic authentication):

curl -X GET "https://api.sandbox.transferwise.tech/v1/rates?source=EUR&target=USD&from=2018-08-15T00:00:00&to=2018-08-30T23:59:59&group=day" \
     --user <your api client_id>:<your api client_secret> 

Example Response:

[
    {
        "rate": 1.166,
        "source": "EUR",
        "target": "USD",
        "time": "2018-08-15T00:00:00+0000"
    },
    {
        "rate": 1.168,
        "source": "EUR",
        "target": "USD",
        "time": "2018-06-30T00:00:00+0000"
    }
    ...
]

GET https://api.sandbox.transferwise.tech/v1/rates?source=EUR&target=USD&from=2018-08-15T00:00:00&to=2018-08-30T23:59:59&group=day

We expose up to 30 days exchange rate history via our API. This helps you to build an analysis page to show trends and implement an alerting system for your users.

See more at Exchange Rates.List

Get pricing and speed

Example Request (Basic authentication):

curl -X GET https://api.sandbox.transferwise.tech/v2/quotes?source=EUR&target=GBP&rateType=FIXED&targetAmount=600 \
     --user <your api client_id>:<your api client_secret> 

Example Response:

{
    "source": "EUR",
    "target": "GBP",
    "sourceAmount": 663.84,
    "targetAmount": 600.00,
    "type": "REGULAR",
    "rate": 0.9073,
    "createdTime": "2018-08-27T14:35:44.553Z",
    "createdByUserId": 0,
    "rateType": "FIXED",
    "deliveryEstimate": "2018-08-27T14:35:44.496Z",
    "fee": 2.34,
    "allowedProfileTypes": [
        "PERSONAL",
        "BUSINESS"
    ],
    "guaranteedTargetAmount": false,
    "ofSourceAmount": true
}

GET https://api.sandbox.transferwise.tech/v2/quotes?source=EUR&target=GBP&rateType=FIXED&targetAmount=600

Is currency route supported?

If we don't support a route then this endpoint will respond with an error code "error.route.not.supported".

How much does a transfer cost?

The Wise fee is included in the response.

How long does my transfer take?

Estimated delivery time is included in the response. This can vary quite a lot for different currency routes. For example transfers often only take a few hours from EUR to GBP, while sending money from USD can take 1-2 business days. This endpoint allows you to find out the estimated delivery time for each currency route.

See more at Get Temporary Quote









Exchange Rates

List

Example Request (Bearer token):

curl -X GET "https://api.sandbox.transferwise.tech/v1/rates?source=EUR&target=USD" \
     -H "Authorization: Bearer <your api token>"

Example Request (Basic authentication):

curl -X GET "https://api.sandbox.transferwise.tech/v1/rates?source=EUR&target=USD" \
     --user <your api client_id>:<your api client_secret> 

Example Response:

[
    {
        "rate": 1.166,
        "source": "EUR",
        "target": "USD",
        "time": "2018-08-31T10:43:31+0000"
    }
]

GET https://api.sandbox.transferwise.tech/v1/rates

Fetch latest exchange rates of all currencies.

GET https://api.sandbox.transferwise.tech/v1/rates?source=EUR&target=USD

Fetch latest exchange rate of one currency pair.

GET https://api.sandbox.transferwise.tech/v1/rates?source=EUR&target=USD&time=2019-02-13T14:53:01

Fetch exchange rate of specific historical timestamp.

GET https://api.sandbox.transferwise.tech/v1/rates?source=EUR&target=USD&from=2019-02-13T14:53:01&to=2019-03-13T14:53:01&group=day

Fetch exchange rate history over period of time with daily interval.

GET https://api.sandbox.transferwise.tech/v1/rates?source=EUR&target=USD&from=2019-02-13T14:53:01&to=2019-03-13T14:53:01&group=hour

Fetch exchange rate history over period of time with hourly interval.

GET https://api.sandbox.transferwise.tech/v1/rates?source=EUR&target=USD&from=2019-02-13T14:53:01&to=2019-03-13T14:53:01&group=minute

Fetch exchange rate history over period of time with 1 minute interval.

Request

Note that this endpoint supports two types of authentication: Bearer token and Basic authentication (client_id/client_secret).

Field Description Format
source Source(send) currency code. Text
target Target(receive) currency code. Text
time Timestamp to get historic exchange rate. Timestamp
from Period start date/time to get exchange rate history. Timestamp or Date
to Period end date/time to get exchange rate history. Timestamp or Date
group Interval: day hour minute Text

Response

List of exchange rate values which meet your query criteria.

Field Description Format
rate Exchange rate value. Decimal
source Source(send) currency code Text
target Target(receive) currency code Text
time Timestamp for exchange rate. Timestamp

Additional notes about date/time formatting used above

The request/response field(s) below support both Timestamp (combined date and time) and Date (date only) formats:

Field Sample
from 2019-03-13T14:53:01 or 2019-03-13
to 2019-03-13T14:53:01+0100 or 2019-03-13+0100

The request/response field(s) below support only Timestamp (combined date and time):

Field Sample
time 2019-03-13T14:53:01 or 2019-03-13T14:53:01+0100

Timezone offset is supported but optional.

Quotes

Create

Example Request:

curl -X POST https://api.sandbox.transferwise.tech/v3/profiles/101/quotes \
     -H "Authorization: Bearer <your api token>" \
     -H "Content-Type: application/json" \
     -d '{
          "sourceCurrency": "GBP",
          "targetCurrency": "USD",
          "sourceAmount": 100,
          "targetAmount": null,
          "payOut": null,
          "preferredPayIn": null
        }'

Example Response:

{
  "id": "11144c35-9fe8-4c32-b7fd-d05c2a7734bf",
  "sourceCurrency": "GBP",
  "targetCurrency": "USD",
  "sourceAmount": 100,
  "payOut": "BANK_TRANSFER",
  "preferredPayIn": "BANK_TRANSFER",
  "rate": 1.30445,
  "createdTime": "2019-04-05T13:18:58Z",
  "user": 55,
  "profile": 101,
  "rateType": "FIXED",
  "rateExpirationTime": "2019-04-08T13:18:57Z",
  "guaranteedTargetAmountAllowed": true,
  "targetAmountAllowed": true,
  "guaranteedTargetAmount": false,
  "providedAmountType": "SOURCE",
  "paymentOptions": [
        {
            "disabled": false,
            "estimatedDelivery": "2019-04-08T12:30:00Z",
            "formattedEstimatedDelivery": "by Apr 8",
            "estimatedDeliveryDelays": [],
            "fee": {
                "transferwise": 3.04,
                "payIn": 0,
                "discount": 2.27,
                "partner": 0,
                "total": 0.77
            },
            "price": {
              "priceSetId": 238,
              "total": {
                "type": "TOTAL",
                "label": "Total fees",
                "value": {
                  "amount": 0.77,
                  "currency": "GBP",
                  "label:": "0.77 GBP"
                }
              },
              "items": [
                {
                  "type": "FEE",
                  "label": "fee",
                  "value": {
                    "amount": 0,
                    "currency": "GBP",
                    "label": "0 GBP"
                  }
                },
                {
                  "type": "TRANSFERWISE",
                  "label": "Our fee",
                  "value": {
                    "amount": 3.04,
                    "currency": "GBP",
                    "label": "3.04 GBP"
                  }
                },
                {
                  "id": 123,
                  "type": "DISCOUNT",
                  "value": {
                    "amount": -2.27,
                    "currency": "GBP",
                    "label": "2.27 GBP"
                  },
                  "label": "Discount applied",
                  "explanation": {
                    "plainText": "You can have a discount for a number of reasons..."
                  }
                }
              ]
            },
            "sourceAmount": 100,
            "targetAmount": 129.24,
            "sourceCurrency": "GBP",
            "targetCurrency": "USD",
            "payIn": "BANK_TRANSFER",
            "payOut": "BANK_TRANSFER",
            "allowedProfileTypes": [
                "PERSONAL",
                "BUSINESS"
            ],
            "payInProduct": "CHEAP",
            "feePercentage": 0.0092
        },
        {
            "disabled": true,
            "estimatedDelivery": null,
            "formattedEstimatedDelivery": null,
            "estimatedDeliveryDelays": [],
            "fee": {
                "transferwise": 3.04,
                "payIn": 0,
                "discount": 0,
                "partner": 0,
                "total": 3.04
            },
            "price": {
              "priceSetId": 238,
              "total": {
                "type": "TOTAL",
                "label": "Total fees",
                "value": {
                  "amount": 3.04,
                  "currency": "GBP",
                  "label:": "3.04 GBP"
                }
              },
              "items": [
                {
                  "type": "FEE",
                  "label": "fee",
                  "value": {
                    "amount": 0,
                    "currency": "GBP",
                    "label": "0 GBP"
                  }
                },
                {
                  "type": "TRANSFERWISE",
                  "label": "Our fee",
                  "value": {
                    "amount": 3.04,
                    "currency": "GBP",
                    "label": "3.04 GBP"
                  }
                }
              ]
            },
            "sourceAmount": 100,
            "targetAmount": 129,
            "sourceCurrency": "GBP",
            "targetCurrency": "USD",
            "payIn": "BALANCE",
            "payOut": "BANK_TRANSFER",
            "allowedProfileTypes": [
                "PERSONAL",
                "BUSINESS"
            ],
            "disabledReason": {
                "code": "error.payInmethod.disabled",
                "message": "Open a multi-currency account and add funds to instantly pay for your transfers."
            },
            "payInProduct": "BALANCE",
            "feePercentage": 0.0111
        }
    ],
  "status": "PENDING",
  "expirationTime": "2019-04-05T13:48:58Z",
  "notices": [
    {
      "text": "You can have a maximum of 3 open transfers with a guaranteed rate. After that, they'll be transferred using the live rate. Complete or cancel your other transfers to regain the use of guaranteed rate.",
      "link": null,
      "type": "WARNING"
    }
  ]
}

The quote resource defines the basic information required for a Wise transfer - the currencies to send between, the amount to send and the profile who is sending the money. The profile must be included when creating a quote.

Quote is one of the required resources to create a transfer, along with the recipient who is to receive the funds.

The quote response contains other information such as the exchange rate, the estimated delivery time and the methods the user can pay for the transfer. Not all of this information may apply to your use case.

Upon creating a quote the current mid-market exchange rate is locked and will be used for the transfer that is created from the quote. The rate will be locked for 30 minutes to give a user time to complete the transfer creation flow.

Request

POST https://api.sandbox.transferwise.tech/v3/profiles/{profileId}/quotes

Field Description Format
profileId Personal or business profile id of the sender - required. Integer
sourceCurrency Source (sending) currency code. Text
targetCurrency Target (receiving) currency code. Text
targetAmount Amount in target currency. Decimal
sourceAmount Amount in source currency.
Either sourceAmount or targetAmount is required, never both.
Decimal
targetAccount Optional. If provided can be used as an alternative to updating the quote. Integer
payOut Optional. Preferred payout method. Default value is BANK_TRANSFER. Other possible values are BALANCE, SWIFT, SWIFT_OUR and INTERAC. Text
preferredPayIn Optional. Preferred payin method. Use BANK_TRANSFER to return this method at the top of the response's results. Text

Note - When SWIFT_OUR is set as payOut value, it enables payment protection for swift recipients for global currency transfers. By using this payOut method, you can guarantee your customers that the fee will be charged to the sender and can ensure that the recipient gets the complete target amount.

Response

The following describes the fields of the quote response that may be useful when building your integration.

The payOut field is used to select the correct entry in the paymentOptions array in order to know which fees to display to your customer. Find the paymentOption that matches the payOut field shown at the top level of the quote resource and payIn based on the settlement model the bank is using. By default this is BANK_TRANSFER, unless you are using a prefunded or bulk settlement model. The payOut field will change based on the type of recipient you add to the quote in the PATCH /quote call, for example to-USD swift_code or to-CAD interac have different fees.

For example sending USD to a country other than the United States is supported but with different fees to domestic USD transfers. Please see the later section on Global Currencies to learn more about how to offer this useful feature.

For each paymentOption there is a price field. It gives a full breakdown of all the taxes, fees and discounts. It is preferable to refer to this structure to show breakdowns and totals, rather than the fee structre, found as well in each paymentOption element, that only gives a summary and is not able to surface important specifics such as taxes.

When showing the price of a transfer always show the 'price.total.value.amount' of a payment option.

Disabled Payment Options

Each payment option is either enabled or disabled based on the disabled value. Disabled payment options should be shown to the user in a disabled state in most cases. This ensures users are given the options that they are familiar with regardless of their availability, as well as with options that can be beneficial to their accounts.

The option.disabledReason contains both the code and message, with the message being the user-friendly text to surface to the user if necessary.

Field Description Format
id ID of this quote (GUID format). Text
sourceCurrency Source (sending) currency code. Text
targetCurrency Target (receive) currency code. Text
sourceAmount Amount in source currency to send. Decimal
targetAmount Amount in target currency to be received by the recipient. Decimal
payOut Mechanism we use to deliver the transfer. Not usually of interest to the user. Text
rate Exchange rate value used for the conversion. Decimal
createdTime Quote created timestamp. Timestamp
user User ID who created the quote. Integer
profile Personal or business profile id. Integer
rateExpirationTime Time the locked rate will expire. Timestamp
providedAmountType Whether the quote was created as "SOURCE" or "TARGET". Text
paymentOptions List of the methods a user can pay for the transfer. See above for help on choosing the correct one to display. [PaymentOption]
option.disabled Whether this option is enabled or not for this quote. Boolean
option.estimatedDelivery The estimated delivery time for this combination of payIn and payOut methods, assuming payIn is performed now. Timestamp
option.formattedEstimatedDelivery A string to display to users for the estimated delivery date. Text
option.estimatedDeliveryDelays Array of strings for delivery delays to display to users. [Text]
option.fee Object containing fee information. Fee
option.fee.transferwise The fee to be paid by the sender based on the current state of the quote. Decimal
option.fee.payIn The fee for this payment option, based on the product type of the payment option. Decimal
option.fee.discount Any discounts that have been applied to this quote for the user. Decimal
option.fee.partner If you have agreed a custom price, it will be displayed here. Decimal
option.fee.total The total fees to be paid - use this figure when displaying fees on your app. Decimal
option.price Object containing the price information. Price
option.price.priceSetId Id if the price structure. Integer
option.price.total The total fees to be paid - use this figure when displaying fees on your app. Total
option.price.total.id ID of this structure. Integer
option.price.total.type Type of the pricing element - "TOTAL" in this case. Text
option.price.total.label Short text describing the price structure this field is nested in. Text
option.price.total.value Object containing value elements. Value
option.price.total.value.amount Amount to be paid. Decimal
option.price.total.value.currency Currency of the amount to be paid. Text
option.price.total.value.label Text version of the price. Text
option.price.total.explanation Text element giving more details about the price. Text
option.price.items Object containing the detals of the different elements of the total price. List
option.price.items.id Id of this item. Integer
option.price.items.type Type of the pricing item. It could be "DISCOUNT" for example. Text
option.price.items.label Short text describing the pricing element. Text
option.price.items.value Object containing value elements. Value
option.price.items.value.amount Amount associated to this pricing element. Can be negative for discounts. Decimal
option.price.items.value.currency Currency on the pricing element. Text
option.price.items.value.label Text feild containing the price and its currency. Text
option.price.items.explanation Text element giving more details about the item. Text
option.sourceAmount sourceAmount when using this payment option. Decimal
option.targetAmount targetAmount when using this payment option. Decimal
option.payIn Type of pay in method for this payment option. Text
option.payOut Type of pay out method for this payment option. Text
option.allowedProfileTypes Array of the allowed types of profile to use this payment option for this quote "PERSONAL", "BUSINESS" or both. [Text]
option.disabledReason Object present if a payment option is disabled. Disabled Reason
option.disabledReason.code Code to denote the reason a payment method is unavailable. Text
option.disabledReason.message User friendly message to display when a method is unavailable. Text
status Current status of this quote, one of: "PENDING", "ACCEPTED", "FUNDED" or "EXPIRED". Text
expirationTime The time the quote expires. Timestamp
notices Array of messages to display to the user in case of useful information based on their selections. May be empty ([]) if there are no messages. [QuoteNotice]
notice.text The message to display. Text
notice.link URL that provides more information to the message. May be null if there's no URL. Text
notice.type Type of message, WARNING or INFO or BLOCKED. If it is BLOCKED, don't allow the quote to be used to create the transfer. Text

Update Quote

Example Request:

curl -X PATCH \
  https://api.sandbox.transferwise.tech/v3/profiles/101/quotes/11144c35-9fe8-4c32-b7fd-d05c2a7734bf \
  -H 'Authorization: Bearer <your api token>' \
  -H 'Content-Type: application/merge-patch+json' \
  -d '{ 
        "targetAccount": 12345,
        "payOut": "SWIFT_OUR"
      }'
Field Description Format
targetAccount ID of transfer recipient, found in response from POST v1/accounts (recipient creation) Integer
payOut Optional. Preferred payout method. Default value is BANK_TRANSFER. Other possible values are BALANCE, SWIFT, SWIFT_OUR and INTERAC. Text

Example Response:

{
    "id": "11144c35-9fe8-4c32-b7fd-d05c2a7734bf",
    "sourceCurrency": "GBP",
    "targetCurrency": "USD",
    "sourceAmount": 100,
    "payOut": "BANK_TRANSFER",
    "rate": 1.30445,
    "createdTime": "2019-04-05T13:18:58Z",
    "user": 55,
    "profile": 101,
    "rateType": "FIXED",
    "rateExpirationTime": "2019-04-08T13:18:57Z",
    "guaranteedTargetAmountAllowed": true,
    "targetAmountAllowed": true,
    "guaranteedTargetAmount": false,
    "providedAmountType": "SOURCE",
    "targetAccount": 12345,
    "paymentOptions": [
        {
            "disabled": false,
            "estimatedDelivery": "2019-04-08T12:30:00Z",
            "formattedEstimatedDelivery": "by Apr 8",
            "estimatedDeliveryDelays": [],
            "fee": {
                "transferwise": 3.04,
                "payIn": 0,
                "discount": 2.27,
                "partner": 0,
                "total": 0.77
            },
            "price": {
              "priceSetId": 238,
              "total": {
                "type": "TOTAL",
                "label": "Total fees",
                "value": {
                  "amount": 0.77,
                  "currency": "GBP",
                  "label:": "0.77 GBP"
                }
              },
              "items": [
                {
                  "type": "FEE",
                  "label": "fee",
                  "value": {
                    "amount": 0,
                    "currency": "GBP",
                    "label": "0 GBP"
                  }
                },
                {
                  "type": "TRANSFERWISE",
                  "label": "Our fee",
                  "value": {
                    "amount": 3.04,
                    "currency": "GBP",
                    "label": "3.04 GBP"
                  }
                },
                {
                  "type": "DISCOUNT",
                  "value": {
                    "amount": -2.27,
                    "currency": "GBP",
                    "label": "2.27 GBP"
                  },
                  "label": "Discount applied",
                  "explanation": {
                    "plainText": "You can have a discount for a number of reasons..."
                  }
                }
              ]
            },
            "sourceAmount": 100,
            "targetAmount": 129.24,
            "sourceCurrency": "GBP",
            "targetCurrency": "USD",
            "payIn": "BANK_TRANSFER",
            "payOut": "BANK_TRANSFER",
            "allowedProfileTypes": [
                "PERSONAL",
                "BUSINESS"
            ],
            "payInProduct": "CHEAP",
            "feePercentage": 0.0092
        },
        {
            "disabled": true,
            "estimatedDelivery": null,
            "formattedEstimatedDelivery": null,
            "estimatedDeliveryDelays": [],
            "fee": {
                "transferwise": 3.04,
                "payIn": 0,
                "discount": 0,
                "partner": 0,
                "total": 3.04
            },
      	    "price": {
              "priceSetId": 238,
              "total": {
                "type": "TOTAL",
                "label": "Total fees",
                "value": {
                  "amount": 3.04,
                  "currency": "GBP",
                  "label:": "3.04 GBP"
                }
              },
              "items": [
                {
                  "type": "FEE",
                  "label": "fee",
                  "value": {
                    "amount": 0,
                    "currency": "GBP",
                    "label": "0 GBP"
                  }
                },
                {
                  "type": "TRANSFERWISE",
                  "label": "Our fee",
                  "value": {
                    "amount": 3.04,
                    "currency": "GBP",
                    "label": "3.04 GBP"
                  }
                }
              ]
            },
            "sourceAmount": 100,
            "targetAmount": 129,
            "sourceCurrency": "GBP",
            "targetCurrency": "USD",
            "payIn": "BALANCE",
            "payOut": "BANK_TRANSFER",
            "allowedProfileTypes": [
                "PERSONAL",
                "BUSINESS"
            ],
            "disabledReason": {
                "code": "error.payInmethod.disabled",
                "message": "Open a multi-currency account and add funds to instantly pay for your transfers."
            },
            "payInProduct": "BALANCE",
            "feePercentage": 0.0111
        }
    ],
    "status": "PENDING",
    "expirationTime": "2019-04-05T13:48:58Z",
    "notices": []
}

You should update a quote using a PATCH call to add a recipient. This will update the saved quote's data based on who and where the money will be sent to.

Updating the quote with a recipient may cause the available payment options, prices and estimated delivery times to change from the original quoted amounts. This is due to the fact that sending some currencies to some destinations costs a different amount based on the payment networks we use, for example sending USD to a country outside the USA uses international rather than domestic payment networks and as such costs more, or sending CAD over the Interac network is a more expensive operation.

When updating a quote the payOut field may change to denote the payment option you should select when sending to this recipient. For example sending USD to a swift_code recipient or CAD to an interac recipient with change payOut to SWIFT or INTERAC respectively. This field defaults to BANK_TRANSFER so it can be used in all cases to help select the correct paymentOption and hence show the correct pricing to users.

If you want to provide more transparency in terms of fees charged when your customers create quote with swift recipient for global currencies, you might consider to set payOut field with SWIFT_OUR value. This will ensure that the recipient receives complete target amount.

In this case, where pricing changes after a user selects recipient, you should show a message to your customer before confirming the transfer. Please see the section on Global Currencies to learn more how and why this works and the messaging you need to display.

Request

PATCH https://api.sandbox.transferwise.tech/v3/profiles/{profileId}/quotes/{quoteId}

Get By Id

Example Request:

curl -X GET https://api.sandbox.transferwise.tech/v3/profiles/{profileId}/quotes/{quoteId} \
     -H "Authorization: Bearer <your api token>" 

Example Response:

{
    "id": "11144c35-9fe8-4c32-b7fd-d05c2a7734bf",
    "sourceCurrency": "GBP",
    "targetCurrency": "USD",
    "sourceAmount": 100,
    "payOut": "BANK_TRANSFER",
    "rate": 1.30445,
    "createdTime": "2019-04-05T13:18:58Z",
    "user": 55,
    "profile": 101,
    "rateType": "FIXED",
    "rateExpirationTime": "2019-04-08T13:18:57Z",
    "guaranteedTargetAmountAllowed": true,
    "targetAmountAllowed": true,
    "guaranteedTargetAmount": false,
    "providedAmountType": "SOURCE",
    "paymentOptions": [
        {
            "disabled": false,
            "estimatedDelivery": "2019-04-08T12:30:00Z",
            "formattedEstimatedDelivery": "by Apr 8",
            "estimatedDeliveryDelays": [],
            "fee": {
                "transferwise": 3.04,
                "payIn": 0,
                "discount": 2.27,
                "partner": 0,
                "total": 0.77
            },
            "price": {
              "priceSetId": 238,
              "total": {
                "type": "TOTAL",
                "label": "Total fees",
                "value": {
                  "amount": 0.77,
                  "currency": "GBP",
                  "label:": "0.77 GBP"
                }
              },
              "items": [
                {
                  "type": "FEE",
                  "label": "fee",
                  "value": {
                    "amount": 0,
                    "currency": "GBP",
                    "label": "0 GBP"
                  }
                },
                {
                  "type": "TRANSFERWISE",
                  "label": "Our fee",
                  "value": {
                    "amount": 3.04,
                    "currency": "GBP",
                    "label": "3.04 GBP"
                  }
                },
                {
                  "type": "DISCOUNT",
                  "value": {
                    "amount": -2.27,
                    "currency": "GBP",
                    "label": "2.27 GBP"
                  },
                  "label": "Discount applied",
                  "explanation": {
                    "plainText": "You can have a discount for a number of reasons..."
                  }
                }
              ]
            },
            "sourceAmount": 100,
            "targetAmount": 129.24,
            "sourceCurrency": "GBP",
            "targetCurrency": "USD",
            "payIn": "BANK_TRANSFER",
            "payOut": "BANK_TRANSFER",
            "allowedProfileTypes": [
                "PERSONAL",
                "BUSINESS"
            ],
            "payInProduct": "CHEAP",
            "feePercentage": 0.0092
        },
        {
            "disabled": true,
            "estimatedDelivery": null,
            "formattedEstimatedDelivery": null,
            "estimatedDeliveryDelays": [],
            "fee": {
                "transferwise": 3.04,
                "payIn": 0,
                "discount": 0,
                "partner": 0,
                "total": 3.04
            },
            "price": {
              "priceSetId": 238,
              "total": {
                "type": "TOTAL",
                "label": "Total fees",
                "value": {
                  "amount": 3.04,
                  "currency": "GBP",
                  "label:": "3.04 GBP"
                }
              },
              "items": [
                {
                  "type": "FEE",
                  "label": "fee",
                  "value": {
                    "amount": 0,
                    "currency": "GBP",
                    "label": "0 GBP"
                  }
                },
                {
                  "type": "TRANSFERWISE",
                  "label": "Our fee",
                  "value": {
                    "amount": 3.04,
                    "currency": "GBP",
                    "label": "3.04 GBP"
                  }
                }
              ]
            },
            "sourceAmount": 100,
            "targetAmount": 129,
            "sourceCurrency": "GBP",
            "targetCurrency": "USD",
            "payIn": "BALANCE",
            "payOut": "BANK_TRANSFER",
            "allowedProfileTypes": [
                "PERSONAL",
                "BUSINESS"
            ],
            "disabledReason": {
                "code": "error.payInmethod.disabled",
                "message": "Open a multi-currency account and add funds to instantly pay for your transfers."
            },
            "payInProduct": "BALANCE",
            "feePercentage": 0.0111
        }
    ],
    "status": "PENDING",
    "expirationTime": "2019-04-05T13:48:58Z",
    "notices": [{
        "text": "You can have a maximum of 3 open transfers with a guaranteed rate. After that, they'll be transferred using the live rate. Complete or cancel your other transfers to regain the use of guaranteed rate.",
        "link": null,
        "type": "WARNING"
    }]
}

Get quote info by id.

Request

GET https://api.sandbox.transferwise.tech/v3/profiles/{profileId}/quotes/{quoteId}

Get Temporary Quote

Use this endpoint to get example quotes for people to see the exchange rate and fees Wise offers before a user has created or linked an account. This can drive a version of the quote screen that shows the user what Wise offers before they sign up. Note that this endpoint does not require a token to create the resource, however, since it is just an example, the returned quote has no ID so can't be used later to create a transfer.

In order to get an accurate partner fee, we require a client credentials token to be provided. If you are a partner and would like your fee to be included in the quote returned, you must provide your auth token. If not, you do not require the Authorization header.

Example Request:

curl -X POST \
  https://api.transferwise.com/v3/quotes/ \
  -H "Authorization: Bearer <your client credentials token>"
  -H 'Content-type: application/json' \
  -d '{
    "sourceCurrency": "GBP",
    "targetCurrency": "USD",
    "sourceAmount": null,
    "targetAmount": 110
}'

Example Response:

{
    "sourceCurrency": "GBP",
    "targetCurrency": "USD",
    "targetAmount": 110,
    "payOut": "BANK_TRANSFER",
    "rate": 1.30745,
    "createdTime": "2019-04-09T11:46:38Z",
    "rateType": "FIXED",
    "guaranteedTargetAmountAllowed": true,
    "targetAmountAllowed": true,
    "guaranteedTargetAmount": false,
    "providedAmountType": "TARGET",
    "paymentOptions": [
        {
            "disabled": false,
            "estimatedDelivery": "2019-04-08T12:30:00Z",
            "formattedEstimatedDelivery": "by Apr 8",
            "estimatedDeliveryDelays": [],
            "fee": {
                "transferwise": 3.04,
                "payIn": 0,
                "discount": 2.27,
                "partner": 0,
                "total": 0.77
            },
            "price": {
              "priceSetId": 238,
              "total": {
                "type": "TOTAL",
                "label": "Total fees",
                "value": {
                  "amount": 0.77,
                  "currency": "GBP",
                  "label:": "0.77 GBP"
                }
              },
              "items": [
                {
                  "type": "FEE",
                  "label": "fee",
                  "value": {
                    "amount": 0,
                    "currency": "GBP",
                    "label": "0 GBP"
                  }
                },
                {
                  "type": "TRANSFERWISE",
                  "label": "Our fee",
                  "value": {
                    "amount": 3.04,
                    "currency": "GBP",
                    "label": "3.04 GBP"
                  }
                },
                {
                  "type": "DISCOUNT",
                  "value": {
                    "amount": -2.27,
                    "currency": "GBP",
                    "label": "2.27 GBP"
                  },
                  "label": "Discount applied",
                  "explanation": {
                    "plainText": "You can have a discount for a number of reasons..."
                  }
                }
              ]
            },
            "sourceAmount": 100,
            "targetAmount": 129.24,
            "sourceCurrency": "GBP",
            "targetCurrency": "USD",
            "payIn": "BANK_TRANSFER",
            "payOut": "BANK_TRANSFER",
            "allowedProfileTypes": [
                "PERSONAL",
                "BUSINESS"
            ],
            "payInProduct": "CHEAP",
            "feePercentage": 0.0092
        },
        {
            "disabled": true,
            "estimatedDelivery": null,
            "formattedEstimatedDelivery": null,
            "estimatedDeliveryDelays": [],
            "fee": {
                "transferwise": 3.04,
                "payIn": 0,
                "discount": 0,
                "partner": 0,
                "total": 3.04
            },
            "price": {
              "priceSetId": 238,
              "total": {
                "type": "TOTAL",
                "label": "Total fees",
                "value": {
                  "amount": 3.04,
                  "currency": "GBP",
                  "label:": "3.04 GBP"
                }
              },
              "items": [
                {
                  "type": "FEE",
                  "label": "fee",
                  "value": {
                    "amount": 0,
                    "currency": "GBP",
                    "label": "0 GBP"
                  }
                },
                {
                  "type": "TRANSFERWISE",
                  "label": "Our fee",
                  "value": {
                    "amount": 3.04,
                    "currency": "GBP",
                    "label": "3.04 GBP"
                  }
                }
              ]
            },
            "sourceAmount": 85.28,
            "targetAmount": 110,
            "sourceCurrency": "GBP",
            "targetCurrency": "USD",
            "payIn": "BALANCE",
            "payOut": "BANK_TRANSFER",
            "allowedProfileTypes": [
                "PERSONAL",
                "BUSINESS"
            ],
            "disabledReason": {
                "code": "error.payInmethod.disabled",
                "message": "Open a multi-currency account and add funds to instantly pay for your transfers."
            },
            "payInProduct": "BALANCE",
            "feePercentage": 0.0135
        }
    ],
    "notices": []
}

Request

POST https://api.sandbox.transferwise.tech/v3/quotes/

Field Description Format
sourceCurrency Source (sending) currency code Text
targetCurrency Target (receiving) currency code Text
sourceAmount Amount in source currency.
Either sourceAmount or targetAmount is required, never both.
Decimal
targetAmount Amount in target currency Decimal

Response

See Create quote's response field information.