Get FX transfer rates, fees, and delivery estimates.
Use the Quotes endpoints to check FX rates, fees, and delivery estimates, enabling seamless money transfers with Wise Platform.
Generating a quote is an essential step in the send money flow, as the quote id is a required property in the create transfer request body.
A quote defines:
- How much to send or receive.
- Who is sending and receiving the money.
- The source and target currencies involved.
The response includes:
- The rate and any fees.
- Estimated delivery speed.
- Available methods to fund the transfer.
The Wise Platform Quotes service lets you create both authenticated and unauthenticated quote resources.
- Authenticated quotes are profile-specific exchange rate quotes that serve as the foundation for creating actual money transfers. You must create an authenticated quote if you want to use it to create a transfer request.
- Unauthenticated quotes let you fetch example exchange rates and fees without including an
Authorizationheader orprofileIdin the request and including only basic transfer details. These quotes show potential costs and exchange rates, making them ideal for previews or embedding in marketing pages and product displays without user sign-up.
| Feature | Authenticated | Unauthenticated |
|---|---|---|
| Authentication | Required (OAuth 2.0) | Optional |
| Profile ID | Required | Not applicable |
| Quote ID | Generated | Not generated |
| Can create transfer | ✅ Yes | ❌ No |
| Rate locking | Available | Not available |
| Use case | Real transactions | Display/marketing |
| Rate limits | More restrictive | More permissive |
The following steps can be involved in creating a quote, depending on whether you have specific partner pricing available and which send money flow you use.
Create a quote
Provide a profile ID (the account sending the money), the recipient ID (if known), the currencies, and either the amount to send or receive.
Update with recipient
(For quote-first flows) Update the quote to include the transfer recipient, ensuring accurate fees and delivery estimates.
Once you successfully create the authenticated quote, the mid‑market exchange rate is locked and the quote remains valid for 30 minutes, giving your customer time to complete their transfer.
The quote response includes fee and price objects for each payin option. They provide a summary and detailed views of the fees to be charged on the transfer.
- The
feeobject gives a summary of the fees. - The
transferwisefee includes any taxes or fees that Wise charges. - Additional fields, such as
payIn,discountandpartner, include any amounts as applicable. - The
totalfield sums all fees and discounts for that payment option. - The
priceobject further enumerates the fees and discounts as line items. This includes any discounts, fees, or taxes and gives the appropriate name for each.
Any transfer to or from BRL will always include an IOF Tax fee, which is collected during the transfer funding process. Show this to your customers as a distinct line item separate from all other fees.
For BRL, set paymentMetadata.transferNature on the quote. The IOF depends on the transfer nature and the sender and recipient details. Until these are all provided, the quote shows a default IOF.
- The sandbox provides realistic but not live rates, so the quote you receive when you test may differ from what is available in the production environment.
- In the sandbox, you cannot test a
rateTypeofFLOATING.
Speak with the Wise team if you have further questions about testing quotes in the sandbox.
Unauthenticated quotes:
- Cannot be used to create transfers.
- Are for display and estimation purposes only.
- Should not be stored long-term or relied upon for transactions.
- Expire and should be refreshed regularly.
To create a unauthenticated quote, send a POST request to the /quotes endpoint.
To include your partner pricing in an unauthenticated quote, include the Authorization header (as shown in the example requests). Without it, the quote shows standard Wise pricing.
The body of your request is where you specify all the information about the FX payment quote you want to create.
You must provide the currencies to exchange in ISO 4217 format:
| Parameter | Description | Example |
|---|---|---|
sourceCurrency | Currency you are sending from | "USD" |
targetCurrency | Currency to be received in | "EUR" |
Then EITHER sourceAmount OR targetAmount (never both):
| Parameter | Description | Example |
|---|---|---|
sourceAmount | Amount to send | 100.00 |
targetAmount | Amount recipient should receive | 85.00 |
Send this request when you know how much the user wants to send.
- Production Environmenthttps://api.wise.com/2026Q4/quotes
- Sandbox Environmenthttps://api.wise-sandbox.com/2026Q4/quotes
curl -i -X POST \
https://api.wise.com/2026Q4/quotes \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \
-d '{
"sourceCurrency": "GBP",
"targetCurrency": "USD",
"sourceAmount": null,
"targetAmount": 110,
"pricingConfiguration": {
"fee": {
"type": "OVERRIDE",
"variable": 0.011,
"fixed": 15.42
}
}
}'The examples in this table are general examples and not reflective of the example response above.
| Field | Description | Example use |
|---|---|---|
rate | Current exchange rate (targetCurrency per 1 sourceCurrency) | Display "1 USD = 0.9215 EUR" |
sourceAmount | Total amount user needs to send | Show "You send $100.00" |
targetAmount | Amount recipient receives after fees | Show "Recipient gets €92.15" |
createdTime | When this quote was created, in ISO 8601 format | Log for debugging |
rateExpirationTime | When this rate expires, in ISO 8601 format (Unauthenticated rates aren't locked. Create an authenticated quote to lock the rate.) | Show "Refresh the displayed rate after this time" |
paymentOptions.fee.total | Total fee charged | Show "Fee: $2.58" |
paymentOptions.formattedEstimatedDelivery | Human-readable delivery estimate | Show "Arrives by Tuesday" |