# Create a quote (unauthenticated)

Use this endpoint to get example quotes for illustrative purposes. This allows you to show the exchange rate and fees Wise offers before a user has created or linked an account. Often used to display a quote screen showing your customers 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 and can't be used to create a transfer.
To get quotes with an accurate partner fee, include the Authorization header in the request with your client credentials token. Otherwise, you do not need to include the Authorization header.
Unauthenticated quotes cannot be used to create transfers. They are meant for illustration purposes in partner interfaces only.
When creating a transfer, be sure to use an authenticated quote.

Endpoint: POST /quotes
Version: 2026Q4
Security: ClientCredentialsToken

## Security:

  - `ClientCredentialsToken` (unknown)
    http bearer JWT

## Header parameters:

  - `X-External-Correlation-Id` (string)
    Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. [Learn more](/guides/developer/headers/correlation-id).

## Request fields (application/json):

  - `sourceCurrency` (string, required)
    Source (sending) currency code.
    Example: GBP

  - `targetCurrency` (string, required)
    Target (receiving) currency code.
    Example: USD

  - `sourceAmount` (number | null)
    Amount in source currency. Either `sourceAmount` or `targetAmount` is required, never both.
    Example: null

  - `targetAmount` (number | null)
    Amount in target currency.
    Example: 110

  - `pricingConfiguration` (object)
    Required when configured for your client ID. Includes a `pricingConfiguration` to be used for pricing calculations with the quote.

  - `pricingConfiguration.fee` (object)

  - `pricingConfiguration.fee.type` (string)
    Identifies the type of fee to be configured. Options include only `OVERRIDE`."
    Example: OVERRIDE

  - `pricingConfiguration.fee.variable` (number)
    The selected variable percentage, in decimal format, that should be used in the `pricingConfiguration`.
    Example: 0.011

  - `pricingConfiguration.fee.fixed` (number)
    The selected fixed fee that should be used in the `pricingConfiguration`. Always considered in source currency.
    Example: 15.42

## Response 200:

  - `200` (unknown)
    Returns a quote object.

## Response 200 fields (application/json):

  - `id` (string)
    ID of this quote (GUID format).
    Example: 11144c35-9fe8-4c32-b7fd-d05c2a7734bf

  - `sourceCurrency` (string)
    Source (sending) currency code.
    Example: GBP

  - `targetCurrency` (string)
    Target (receive) currency code.
    Example: USD

  - `sourceAmount` (number)
    Amount in source currency to send.
    Example: 100

  - `targetAmount` (number)
    Amount in target currency to be received by the recipient.
    Example: 129.24

  - `payOut` (string)
    Mechanism Wise uses to deliver the transfer. Provided for information purposes.
    Example: BANK_TRANSFER

  - `preferredPayIn` (string)
    Preferred pay-in method.
    Example: BANK_TRANSFER

  - `rate` (number)
    Exchange rate value used for the conversion.
    Example: 1.30445

  - `createdTime` (string)
    Quote created timestamp.
    Example: 2019-04-05T13:18:58Z

  - `user` (integer)
    User ID that created the quote.
    Example: 55

  - `profile` (integer)
    Personal or business profile ID.
    Example: 101

  - `rateType` (string)
    Whether the rate is fixed or floating.
    Enum: "FIXED", "FLOATING"

  - `rateExpirationTime` (string)
    Date and time the locked rate expires.
    Example: 2019-04-08T13:18:57Z

  - `guaranteedTargetAmountAllowed` (boolean)
    Indicates whether guaranteed target amount is allowed.
    Example: true

  - `targetAmountAllowed` (boolean)
    Indicates whether target amount is allowed.
    Example: true

  - `guaranteedTargetAmount` (boolean)
    Indicates whether the target amount is guaranteed.
    Example: false

  - `providedAmountType` (string)
    Indicates whether the quote was created as source or target.
    Enum: "SOURCE", "TARGET"

  - `pricingConfiguration` (object)
    Allows partners to override pricing configurations on a transfer level.

  - `pricingConfiguration.fee` (object)

  - `pricingConfiguration.fee.type` (string)
    Identifies the type of fee to be configured. Options include only `OVERRIDE`.
    Example: OVERRIDE

  - `pricingConfiguration.fee.variable` (number)
    The selected variable percentage, in decimal format, that should be used in the `pricingConfiguration`.
    Example: 0.011

  - `pricingConfiguration.fee.fixed` (number)
    The selected fixed fee, in source currency, that should be used in the `pricingConfiguration`.
    Example: 15.42

  - `paymentOptions` (array)
    List of the methods available to pay for the transfer.

  - `paymentOptions.disabled` (boolean)
    Indicates whether this option is enabled or not for this quote.
    Example: false

  - `paymentOptions.estimatedDelivery` (string)
    The estimated delivery time for this combination of `payIn` and `payOut` methods (assuming `payIn` is performed now).
    Example: 2019-04-08T12:30:00Z

  - `paymentOptions.formattedEstimatedDelivery` (string)
    A customer-friendly string for the estimated delivery date, which you can pass through to your front-end.
    Example: by Apr 8

  - `paymentOptions.estimatedDeliveryDelays` (array)
    Array of objects for delivery delays you can display to your customers.

  - `paymentOptions.estimatedDeliveryDelays.reason` (string)
    Reason for the delivery delay.
    Example: sample reason

  - `paymentOptions.fee` (object)
    Fee details for the quote.

  - `paymentOptions.fee.transferwise` (number)
    The fee to be paid *by the sender* based on the current state of the quote.
    Example: 3.04

  - `paymentOptions.fee.payIn` (number)
    The fee for this payment option, based on the product type of the payment option.
    Example: 0

  - `paymentOptions.fee.discount` (number)
    Any discounts that have been applied to this quote.
    Example: 2.27

  - `paymentOptions.fee.partner` (number)
    Agreed-upon custom pricing, if applicable.
    Example: 0

  - `paymentOptions.fee.total` (number)
    The total fees to be paid. Use this value when displaying fees in your app.
    Example: 0.77

  - `paymentOptions.price` (object)
    Price details for the quote.

  - `paymentOptions.price.priceSetId` (integer)
    ID of the price structure.
    Example: 238

  - `paymentOptions.price.total` (object)
    The total fees to be paid. Use this value when displaying fees in your app.

  - `paymentOptions.price.total.type` (string)
    The type of the pricing element.
    Example: TOTAL

  - `paymentOptions.price.total.label` (string)
    Plain text describing the price structure.
    Example: Total fees

  - `paymentOptions.price.total.value` (object)
    Value details for the `price.total` object.

  - `paymentOptions.price.total.value.amount` (number)
    Amount to be paid.
    Example: 0.77

  - `paymentOptions.price.total.value.currency` (string)
    Currency of the amount to be paid.
    Example: GBP

  - `paymentOptions.price.total.value.label` (string)
    Plain text version of the price.
    Example: 0.77 GBP

  - `paymentOptions.price.total.explanation` (object)
    Provides more details about the price.

  - `paymentOptions.price.items` (array)
    Details the different elements contained in the total price.

  - `paymentOptions.price.items.id` (string)
    ID of the item.

  - `paymentOptions.price.items.type` (string)
    The type of the price item (for example, `FEE` or `DISCOUNT`).
    Example: FEE

  - `paymentOptions.price.items.label` (string)
    Plain text describing the price element.
    Example: fee

  - `paymentOptions.price.items.value` (object)
    Value details for the `price.items` object.

  - `paymentOptions.price.items.value.amount` (number)
    Amount associated with this price. Can be negative for discounts.
    Example: 0

  - `paymentOptions.price.items.value.currency` (string)
    Currency of the price.
    Example: GBP

  - `paymentOptions.price.items.value.label` (string)
    Plain text description of the price and currency.
    Example: 0 GBP

  - `paymentOptions.price.items.explanation` (object)
    Additional deails for a price breakdown item.

  - `paymentOptions.price.items.explanation.plainText` (string)
    Plain text details about the item.

  - `paymentOptions.price.items.explanation.markdown` (string)
    Formatted textual information about the item.

  - `paymentOptions.price.deferredFee` (object)
    Deferred fee information from a `pricingConfiguration` override.

  - `paymentOptions.price.deferredFee.amount` (number)
    The amount of fees deferred by a `pricingConfiguration` override.
    Example: 14.79

  - `paymentOptions.price.deferredFee.currency` (string)
    The currency of the deferred fee amount.
    Example: BRL

  - `paymentOptions.price.calculatedOn` (object)

  - `paymentOptions.price.calculatedOn.unroundedAmountToConvert` (object)
    The amount, unrounded, that fees were calculated on and built up from.

  - `paymentOptions.price.calculatedOn.unroundedAmountToConvert.amount` (number)
    Example: 179.97342

  - `paymentOptions.price.calculatedOn.unroundedAmountToConvert.currency` (string)
    Example: BRL

  - `paymentOptions.sourceAmount` (number)
    Source amount when using this payment option.
    Example: 100

  - `paymentOptions.targetAmount` (number)
    Target amount when using this payment option.
    Example: 129.24

  - `paymentOptions.sourceCurrency` (string)
    Source currency for this payment option.
    Example: GBP

  - `paymentOptions.targetCurrency` (string)
    Target currency for this payment option.
    Example: USD

  - `paymentOptions.payIn` (string)
    Type of pay in method for this payment option.
    Example: BANK_TRANSFER

  - `paymentOptions.payOut` (string)
    Type of pay out method for this payment option.
    Example: BANK_TRANSFER

  - `paymentOptions.allowedProfileTypes` (array)
    Array of the profile types allowed to use this payment option.
    Example: ["PERSONAL","BUSINESS"]

  - `paymentOptions.payInProduct` (string)
    Pay-in product type.
    Example: CHEAP

  - `paymentOptions.feePercentage` (number)
    Fee percentage for this payment option.
    Example: 0.0092

  - `paymentOptions.disabledReason` (object)
    Present only if a payment option is disabled.

  - `paymentOptions.disabledReason.code` (string)
    Denotes the reason a payment method is unavailable.

  - `paymentOptions.disabledReason.message` (string)
    User-friendly message to display when a method is unavailable.

  - `status` (string)
    Current status of the quote.
    Enum: "PENDING", "ACCEPTED", "FUNDED", "EXPIRED"

  - `expirationTime` (string)
    The date and time the quote expires.
    Example: 2019-04-05T13:48:58Z

  - `notices` (array)
    Messages to display to the user. May be empty (`[]`) if there are no messages.

  - `notices.text` (string)
    The message to display.
    Example: 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.

  - `notices.link` (string | null)
    URL that provides more details about the message. May be `null` if there's no URL.
    Example: null

  - `notices.type` (string)
    The type of message. If it is `BLOCKED`, don't allow the quote to be used to create the transfer.
    Enum: "WARNING", "INFO", "BLOCKED"

## Response 200 headers (application/json):

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 429:

  - `429` (unknown)
    Rate limit exceeded. Retry after the number of seconds specified in the `Retry-After` header.

## Response 429 headers (application/json):

  - `Retry-After` (integer)
    Number of seconds to wait before retrying the request.
    Example: 5

  - `X-Rate-Limited-By` (string)
    Identifies the rate limiter that triggered the 429 response.
    Example: wise-public-api

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

