# Create quote collection

Creates a collection of quotes for a proposed payment, one for each payment rail available for the corridor. A payment rail Ripple can't price is left out. Each quote has its own quoteId, paymentRail, exchange rate, and fees, and all quotes in the collection have the same expiry time. To create the payment, use the quoteId of the quote you choose.

To request a quote for one payment rail only, include paymentRail. For valid values, see Payment rail reference.

How v3 differs from v2:
- payoutCategory and destinationBlockchainNetwork aren't part of the request. For a stablecoin payout, the blockchain network is the payment rail, and you omit destinationCountry.
- paymentRail is an optional request field.
- The payinCategory values FUNDED and T_PLUS_ONE are not accepted. Use PRE_FUNDING in place of FUNDED, and CREDIT_FUNDING in place of T_PLUS_ONE.

To decide which version to use, see Choose a quote version.

Endpoint: POST /v3/quotes/quote-collection
Version: 2026.03
Security: Bearer

## Request fields (application/json):

  - `quoteAmount` (number, required)
    The amount for which you wish to receive a collection of quotes.
    Example: 123.45

  - `quoteAmountType` (string, required)
    The type of amount for which you want to get a quote.
    Enum: "SOURCE_AMOUNT", "DESTINATION_AMOUNT"

  - `sourceCurrency` (string, required)
    The currency code of the currency that you are sending.
    Example: "USD"

  - `destinationCurrency` (string, required)
    The currency code of the currency in which your beneficiary will receive this payment.
    Example: "MXN"

  - `sourceCountry` (string)
    The country code of the country from where you are sending the funds. This is an ISO 3166-1 alpha-2 code.
    Example: "US"

  - `destinationCountry` (string)
    The country where the beneficiary is located specified in Alpha-2 Code format as defined in the ISO CountryCode ISO 3166-1 list. If the beneficiary is an individual, then this value is their country of residence. If the beneficiary is an institution, then this value is their country of incorporation.

Required for a fiat payout; omitting it returns USR_017. Omit it for a stablecoin payout, or the request fails.
    Example: "MX"

  - `payinCategory` (string, required)
    The name of the pay in category indicating how this payment will be funded.
    Example: "PRE_FUNDING"

  - `paymentRail` (string)
    The payment rail to quote. Include it to request a quote for this payment rail only. If you omit it, the collection contains a quote for each payment rail available for the corridor. For valid values, see [Payment rail reference](/products/payments-direct-2/api-docs/integration-resources/payment-rail-reference).
    Example: "SPEI"

## Response 201 fields (application/json):

  - `quoteCollectionId` (string, required)
    Unique ID that represents this quote collection.
    Example: "11111111-aaaa-2222-bbbb-222222222222"

  - `quotes` (array, required)
    List of quotes

  - `quotes.quoteId` (string, required)
    Unique ID that represents this quote.
    Example: "7ea3399c-1234-5678-8d8f-d320ea406630"

  - `quotes.quoteStatus` (string, required)
    Enum: "EXPIRED", "ACTIVE"

  - `quotes.quoteAmountType` (string)
    The type of amount for which you want to get a quote.
    Enum: same as `quoteAmountType` (2 values)

  - `quotes.sourceAmount` (number)
    Amount to be sent by the originator.
    Example: 123.45

  - `quotes.destinationAmount` (number)
    Amount to be received by destination
    Example: 2438.19

  - `quotes.sourceCurrency` (string, required)
    The currency code of the currency that you are sending.
    Example: "USD"

  - `quotes.destinationCurrency` (string, required)
    The currency code of the currency in which your beneficiary will receive this payment.
    Example: "MXN"

  - `quotes.sourceCountry` (string)
    The country where the payment originator is located or incorporated, specified in Alpha-2 Code format as defined in the ISO CountryCode ISO 3166-1 list.
    Example: "US"

  - `quotes.destinationCountry` (string)
    The country code to which you wish to send the funds. It follows ISO 3166-1 alpha-2 code
    Example: "MX"

  - `quotes.payinCategory` (string, required)
    The name of payin category specified in the quote request.
    Example: "PRE_FUNDING"

  - `quotes.adjustedExchangeRate` (object)
    Foreign Exchange (FX) rate used to calculate the quote.

  - `quotes.adjustedExchangeRate.adjustedRate` (number)
    Value of the Foreign Exchange (FX) rate.
    Example: 2

  - `quotes.fees` (array)
    A summary of fees included in this quote.

  - `quotes.fees.totalFee` (number)
    The value of the total fee included in this quote.
    Example: 12.23

  - `quotes.fees.feeCurrency` (string)
    The currency in which fees are charged.
    Example: "USD"

  - `quotes.fees.feeBreakdown` (array)
    An array of fees that provides a breakdown of how the total fees is calculated for this quote.

  - `quotes.fees.feeBreakdown.calculatedFee` (number)
    Value of the fee when the configured fee unit is applied against the value.
    Example: 2.43

  - `quotes.fees.feeBreakdown.feeName` (string)
    The name of the fee.
    Example: "Service fee"

  - `quotes.fees.feeBreakdown.feeDescription` (string)
    Description of the fee.
    Example: "The service fee charged for this transaction."

  - `quotes.fees.feeBreakdown.paymentRail` (string)
    The payment rail associated with this fee line item.
    Example: "SPEI"

  - `quotes.taxes` (array)
    A summary of taxes included in this quote.

  - `quotes.taxes.totalTaxes` (number)
    The value of the total taxes included in this quote.
    Example: 5.12

  - `quotes.taxes.taxCurrency` (string)
    The currency in which taxes are charged.
    Example: "USD"

  - `quotes.taxes.taxBreakdown` (array)
    An array of taxes with details such as tax description, rate, name and tax amount.

  - `quotes.taxes.taxBreakdown.taxAmount` (number)
    tax amount for this tax line item.
    Example: 2.43

  - `quotes.taxes.taxBreakdown.taxName` (string)
    The name of the tax.
    Example: "ISS/ VAT/ GST etc"

  - `quotes.taxes.taxBreakdown.taxDescription` (string)
    GST service fee tax .
    Example: "The service fee tax charged for this transaction."

  - `quotes.taxes.taxBreakdown.taxRate` (number)
    The tax rate applied to calculate the tax amount.
    Example: 5

  - `quotes.createdAt` (string)
    The time when this quote was created, specified in UTC.
    Example: "2023-11-02T18:26:00.000123Z"

  - `quotes.expiresAt` (string)
    The time when this quote expires, specified in UTC.
    Example: "2023-11-02T18:26:00.000123Z"

  - `quotes.paymentRail` (string)
    The payment rail used for this quote.
    Example: "SPEI"

## Response 400 fields (application/json):

  - `errors` (array, required)
    List of quote errors

  - `errors.code` (string, required)
    Unique identifier of an error
    Example: "SYS_100"

  - `errors.title` (string, required)
    Error message providing a brief summary of the error
    Example: "Unable to process the request due to an internal server error."

  - `errors.type` (string, required)
    Identifies the problem type
    Example: "USER_VALIDATION_ERROR"

  - `errors.description` (string, required)
    Provides more technical information
    Example: "Customer not found"

  - `errors.timestamp` (string, required)
    The time when this error occurred, specified in UTC.
    Example: "2023-11-02T18:26:00.000123Z"

  - `status` (integer, required)
    Response status code


