# Create a quote (unauthenticated)

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.
Unauthenticated quotes cannot be used to create transfers, they are meant for illustration purposes in partner interfaces only. Make sure to create an authenticated quote during the transfer creation flow.

Endpoint: POST /v3/quotes
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 that will 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 we use to deliver the transfer. Not usually of interest to the user.
    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 who 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)
    Time the locked rate will expire.
    Example: 2019-04-08T13:18:57Z

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

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

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

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

  - `pricingConfiguration` (object)
    Allows for pricing configurations to be overridden by partners on a transfer level.

  - `pricingConfiguration.fee` (object)

  - `pricingConfiguration.fee.type` (string)
    Identifies the type of fee that will 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 a user can pay for the transfer.

  - `paymentOptions.disabled` (boolean)
    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 string to display to users for the estimated delivery date.
    Example: by Apr 8

  - `paymentOptions.estimatedDeliveryDelays` (array)
    Array of objects for delivery delays to display to users.

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

  - `paymentOptions.fee` (object)
    Object containing fee information.

  - `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 for the user.
    Example: 2.27

  - `paymentOptions.fee.partner` (number)
    If you have agreed a custom price, it will be displayed here.
    Example: 0

  - `paymentOptions.fee.total` (number)
    The total fees to be paid - use this figure when displaying fees on your app.
    Example: 0.77

  - `paymentOptions.price` (object)
    Object containing the price information.

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

  - `paymentOptions.price.total` (object)
    The total fees to be paid - use this figure when displaying fees on your app.

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

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

  - `paymentOptions.price.total.value` (object)
    Object containing value elements.

  - `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)
    Text version of the price.
    Example: 0.77 GBP

  - `paymentOptions.price.total.explanation` (object)
    Object element giving more details about the price.

  - `paymentOptions.price.items` (array)
    Object containing the details of the different elements of the total price.

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

  - `paymentOptions.price.items.type` (string)
    Type of the pricing item. It could be `DISCOUNT` for example.
    Example: FEE

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

  - `paymentOptions.price.items.value` (object)
    Object containing value elements.

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

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

  - `paymentOptions.price.items.value.label` (string)
    Text field containing the price and its currency.
    Example: 0 GBP

  - `paymentOptions.price.items.explanation` (object)
    Additional information on a price breakdown item.

  - `paymentOptions.price.items.explanation.plainText` (string)
    Text element giving more details about the item.

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

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

  - `paymentOptions.price.deferredFee.amount` (number)
    The amount of fees that has been 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)
    sourceAmount when using this payment option.
    Example: 100

  - `paymentOptions.targetAmount` (number)
    targetAmount 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 allowed types of profile 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)
    Object present if a payment option is disabled.

  - `paymentOptions.disabledReason.code` (string)
    Code to denote 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 this quote.
    Enum: "PENDING", "ACCEPTED", "FUNDED", "EXPIRED"

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

  - `notices` (array)
    Array of 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 information to the message. May be `null` if there's no URL.
    Example: null

  - `notices.type` (string)
    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

