---
title: "Create quote collection"
method: POST
path: "/quote_collections"
tags: ["Quotes"]
---

# Create quote collection

`POST /quote_collections`

Creates a collection of quotes for a proposed payment.

## Request body

- PaymentQuoteRequest — JSON request object to generate a quote collection.
  - `sending_address` string, required — RippleNet account name and address of the sender. **Format**: `accountname@ripplenetaddress` **Example**: `new_york@rn.us.ny.new_york`
  - `receiving_address` string, required — RippleNet account name and address of the receiver. **Format**: `accountname@ripplenetaddress` **Example**: `new_york@rn.us.ny.new_york`
  - `amount` string, required — Amount to be sent or received, depending on the `quote_type`. Use this table to determine what `amount` to assign. **Example**: `"1"` | Quote type | Amount | | --- | --- | | SENDER_AMOUNT | Amount to be sent by the payment originator | | SENDER_INSTITUTION_AMOUNT | Set to `SENDER_INSTITUTION_AMOUNT` to calculate the quote based on the amount to be sent, plus any fees collected by the sending institution | | RECEIVER_AMOUNT | Amount to be received by the payment beneficiary | | RECEIVER_INSTITUTION_AMOUNT | Set to `RECEIVER_INSTITUTION_AMOUNT` to calculate the quote based on the amount to be received, minus any fees collected by the receiving institution |
  - `currency` string, required — Currency code of the amount to be sent or received, depending on the `quote_type`. Use this table to determine what `currency` code to assign. **Example**: `USD` | Quote type | Currency code description | | --- | --- | | SENDER_AMOUNT | Specify the currency code for the sending currency, for example `USD` | | SENDER_INSTITUTION_AMOUNT | Specify the currency code for the sending currency, for example `USD` | | RECEIVER_AMOUNT | Specify the currency code for the receiving currency, for example `USD` | | RECEIVER_INSTITUTION_AMOUNT | Specify the currency code for the receiving currency, for example `USD` |
  - `quote_type` 'SENDER_AMOUNT' | 'RECEIVER_AMOUNT' | 'SENDER_INSTITUTION_AMOUNT' | 'RECEIVER_INSTITUTION_AMOUNT', required — Specifies how to calculate the quote. **Example**: `SENDER_AMOUNT`
  - `sender_or_receiver_currency` string — Currency code of the sender or receiver based on `quote_type`. If provided, you can use this to filter the options for quotes.
  - `custom_fee` number — Custom fee for the sending account. Setting this field overrides all fees configured on the sender's RippleNet instance.
  - `custom_rate` PaymentQuoteCustomRateRequest — JSON request object to specify a custom exchange rate during quote collection generation.
    - `rate` number, required — Exchange rate for a base and counter currency.
    - `base_currency` string, required — Base currency of the exchange rate.
    - `counter_currency` string, required — Counter currency of the exchange rate.
    - `rate_type` 'buy' | 'sell', required — Order type for the exchange rate. Valid values are `sell` or `buy`. <p><ul><li>When rate_type = buy, `base_currency` is source ccy and `counter_currency` is destination ccy.</li> <li>When rate_type = sell, `base_currency` is destination ccy and `counter_currency` is source ccy.</li> </ul></p>
  - `quote_route` string[] — Custom route that quote must follow. Provide an array of RippleNet address strings that convey the route the quote must follow. **Example**: `g.us.ca.san_francisco`
  - `payment_method` string — Payout method for the quote. Senders can use this field to define the payout method that the receiver should use to deliver the payment to end customer. On-Demand Liquidity (ODL) receivers should set `payment_method` to the `outlet_id` or the string `none` (not an empty value) to keep funds at the destination exchange when paying out to a local rail. **Caution**: The existing quote parameter is named `payment_method` while elsewhere it is `payout_method`.
  - `enable_quote_per_payout_method` boolean — Enable this flag to generate quotes using payout methods configured by the receiver.
  - `digital_asset_origination` boolean — When true, this flag tells RippleNet to provide a full quote as if the payment originates in the specified source fiat currency. The quote for the source exchange excludes trading fees. On execution, the source exchange trade is skipped, and XRP is withdrawn from the source exchange as the first step.
  - `force_path_finding_and_liquidity_path_finding` boolean — When true, this flag tells RippleNet to ignore cached value for path finding and liquidity path finding. Force performing new path finding and liquidity path finding.
  - `payout_method_category` 'REAL_TIME_GROSS_SETTLEMENT_SYSTEM' | 'REAL_TIME_NET_SETTLEMENT_SYSTEM' | 'MASS_NET_PAYMENT_SYSTEM' | 'BOOK_TRANSFER' | 'CASH_PAYOUT' | 'WALLET_PAYMENT' | 'OTHER' — Category the payout method will be associated with. Defaults to `OTHER` if not specified.
  - `sender_segregated_account` string — RippleNet account name and address of the sender owned account at receiver to be used for failure conversion (in case of payment failure). **Format**: `accountname@ripplenetaddress` **Example**: `new_york@rn.us.ny.new_york`
  - `quote_limit` integer — Flag for truncating the total amount of quotes to a maximum amount after sorting and filters are applied. Optional.
  - `quote_filter_types` string[] — Filter on a type of quote.

## Response `200`

Successfully returned quote collection.

- QuoteCollection — When provided as a response to the [Create quote collection](#operation/createQuoteCollection) request, provides a JSON object representing quotes for a proposed payment. <p>When provided as a response to the [Create quote to return payment](#operation/createQuoteToReturnPayment) request, provides a JSON object representing quotes for a proposed return payment.</p> <p>When provided as a response to the [Reverse Payment](#operation/createQuoteToReversePayment) request, provides a JSON object representing a quote for a proposed reverse payment.</p> <p>When provided as a response to the [Get quote collection by ID](#operation/createQuoteCollection) request, provides the requested quote collection.</p>
  - `quote_collection_id` string, uuid, required — Unique identifier of the quote collection.
  - `quotes` Quote[], required — For more information on quote elements, see [Create quote collections](/products/payments-odl/api-docs/ripplenet/tutorials/configure-fees#create-quote-collections).
    - `quote_id` string, uuid, required — Unique identifier for the quote.
    - `created_at` string, date-time, required — Date and time at which the quote was created, as an ISO-8601 timestamp in UTC.
    - `expires_at` string, date-time, required — Date and time after which the quote and its pricing expire, as an ISO-8601 timestamp in UTC.
    - `type` 'SENDER_AMOUNT' | 'RECEIVER_AMOUNT' | 'SENDER_INSTITUTION_AMOUNT' | 'RECEIVER_INSTITUTION_AMOUNT' | 'REVERSAL_AMOUNT', required — Indicates how the amount field should be treated for calculating quote values.
    - `price_guarantee` string, required — Indicates whether a quote's pricing is `INDICATIVE` or `FIRM`. An `INDICATIVE` quote allows for price movements between quote issuance and payment execution, such that the quoted amount and delivered amount may differ. A `FIRM` quote ensures that the quoted and delivered payment amounts are equal.
    - `sender_address` string, required — RippleNet account name and address of the sender, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
    - `receiver_address` string, required — RippleNet account name and address of the receiver, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
    - `amount` string, required — Amount to be sent or received, depending on the `type` value.
    - `currency_code` string, required — Currency code for the `amount` value.
    - `currency_code_filter` string, required — Currency code that can be used to filter quotes at the opposite end of the quote request. For example, you can filter by this currency code to find the receiving currency for a quote with a `SENDER_AMOUNT` quote_type. If not sent in the request, this field value is set to `null`.
    - `service_type` string, required — Returns `null`.
    - `quote_elements` QuoteElement[], required — Transfer and exchange elements. A transfer element represents a movement of funds between two accounts. An exchange element represents the exchange of currencies between two accounts.
      - `quote_element_id` string, uuid, required — Unique identifier for the quote element.
      - `quote_element_type` 'TRANSFER' | 'EXCHANGE' | 'EXCHANGE_TRADE' | 'CRYPTO_TRANSFER', required — Type of quote element.<p><ul> <li>`TRANSFER` represents the movement of funds between two accounts.</li> <li>`EXCHANGE` represents the exchange of currencies between two accounts.</li> <li>`EXCHANGE_TRADE` represents the exchange of fiat to digital currency on a digital exchange.</li> <li>`CRYPTO_TRANSFER` represents the movement of digital funds between two digital exchanges.</li> </ul></p>
      - `quote_element_order` string, required — Order of each quote element along the liquidity path. If a quote includes five quote elements, each one is enacted according to its quote_element_order number to make the proposed payment.
      - `sender_address` string, required — RippleNet account name and address of the sender, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
      - `receiver_address` string, required — RippleNet account name and address of the receiver, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
      - `sending_amount` number, required — Amount the sender is sending.
      - `receiving_amount` number, required — Amount the receiver is receiving.
      - `sending_fee` number, required — Fees the sender is charging. When `quote_element_type` is set to `EXCHANGE`, this field value is always set to `0`.
      - `receiving_fee` number, required — Fees the receiver is charging. When `quote_element_type` is set to `EXCHANGE`, this field value is always set to `0`.
      - `sending_currency_code` string — Currency code of the sending amount. Included in quote elements with `quote_element_type` set to `EXCHANGE`.
      - `receiving_currency_code` string — Currency code of the receiving amount. Included in quote elements with `quote_element_type` set to `EXCHANGE`.
      - `fx_rate` FXRate — The details of an FX Rate for a quote or payment.
        - `rate` number, required — Exchange rate between a base and counter currency.
        - `base_currency_code` string, required — Currency code of the base currency.
        - `counter_currency_code` string, required — Currency code of the counter currency.
        - `type` string, required — Order type of the exchange rate. Valid values are `buy` or `sell`.
      - `transfer_currency_code` string — Currency code of the transfer. Included in quote elements with `quote_element_type` set to `TRANSFER`.
    - `liquidity_warning` string, required — Triggered when a quote causes an account to go below its `minimum_allowed_balance`. Otherwise, this field value is set to `null`.
    - `payment_method` string — Payout method for the quote.
    - `payment_method_fields` string — JSON object containing payment method metadata.
    - `payout_method_info` object — Details about the payout method.
      - `payout_method_name` string — Payout method for the quote.
      - `payout_method_category` 'REAL_TIME_GROSS_SETTLEMENT_SYSTEM' | 'REAL_TIME_NET_SETTLEMENT_SYSTEM' | 'MASS_NET_PAYMENT_SYSTEM' | 'BOOK_TRANSFER' | 'CASH_PAYOUT' | 'WALLET_PAYMENT' | 'OTHER' — Category of the payout method. Defaults to <code>OTHER</code> if not specified.
      - `description` string — User defined description of the payout method.
      - `estimated_time_to_credit` string — The estimated time to credit the beneficiary using this payout method.
  - `quote_errors` QuoteError[]
    - `failed_path` QuotePathRos[], required — Quote path that failed.
      - `source` string, required — RippleNet account name and address of the source account, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
      - `destination` string, required — RippleNet account name and address of the destination account, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
      - `source_currency` string, required — Currency associated with the source account.
      - `destination_currency` string, required — Currency associated with the destination account.
      - `account_liquidity_relationship_id` string, uuid — Unique identifier for an account liquidity relationship.
      - `peer_liquidity_relationship_id` string, uuid — Unique identifier for a peer liquidity relationship.
    - `error_origin` string — RippleNet address of where the error originated. For example, `rn.us.ny.new_york`.
    - `error_message` string, required — Message that describes the error.

## Other responses

- `400` — Bad request.

---

[API](https://skmtc.net/ripple/apis/ripplenet-server-api.md) · [All operations](https://skmtc.net/ripple/apis/ripplenet-server-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ripple/ripplenet-server-api/revisions/7843f07ca150/schema)
