openapi: 3.0.0
info:
title: Palisade Addresses Quotes API
description: The Palisade API enables programmatic interaction with the various features of the Palisade platform
version: '2.0'
servers:
- url: https://api.sandbox.palisade.co
description: Sandbox server (uses TESTNET data, private keys and accounts)
- url: https://api.palisade.co
description: Palisade server (uses MAINNET data, private keys and accounts)
security:
- TokenAuth: []
tags:
- name: Quotes
description: '
Use these operations to manage your quotes.
| Operation | Method | Description |
| -- | -- | -- |
| [Accept quote](/products/payments-odl/api-docs/ripplenet/reference/openapi/quotes/acceptquote) | POST | Accepts a quote ID to start the payment process. |
| [Get quotes](/products/payments-odl/api-docs/ripplenet/reference/openapi/quotes/getquotes) | GET | Gets a list of quotes. |
| [Get quote by quote ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/quotes/getquotebyquoteid) | GET | Gets a quote by ID. |
| [Create quote collection](/products/payments-odl/api-docs/ripplenet/reference/openapi/quotes/createquotecollection) | POST | Creates a collection of quotes for a proposed payment. |
| [Get quote collection by ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/quotes/getquotecollectionbyid) | GET | Gets a quote collection that was created for a proposed payment. |
'
paths:
/payments/accept:
post:
tags:
- Quotes
summary: Accept quote
description: Accepts a quote ID to start the payment process.
operationId: acceptQuote
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentAcceptRequest'
description: The JSON object to include in your request to accept a quote that you want to advance as a payment.
required: true
responses:
'200':
description: Successfully accepted quote resulting in a payment object in `ACCEPTED` state.
content:
application/json:
schema:
$ref: '#/components/schemas/Payment'
'412':
description: Quote expiry has passed.
content:
application/json:
schema:
$ref: '#/components/schemas/RippleNetProblem'
security:
- Bearer: []
/quotes:
get:
tags:
- Quotes
summary: Get quotes
description: Gets a list of quotes.
operationId: getQuotes
parameters:
- name: page
in: query
description: 'The page number for [paginated results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/). The value is zero-based, where `0` represents the first page.<br/>
Set it to `0` to get the first page of results.
'
required: false
schema:
type: integer
default: 0
- name: size
in: query
description: Number of objects to return per page.
required: false
schema:
type: integer
minimum: 1
maximum: 100
default: 20
responses:
'200':
description: Successfully returned array of quotes.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Quote'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/RippleNetProblem'
security:
- Bearer: []
/quotes/{quote_id}:
get:
tags:
- Quotes
summary: Get quote by quote ID
description: Gets a quote by ID.
operationId: getQuoteByQuoteId
parameters:
- name: quote_id
in: path
description: Unique identifier of the quote you want to retrieve.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Successfully retrieved quote.
content:
application/json:
schema:
$ref: '#/components/schemas/Quote'
'400':
description: Bad request. Quote ID is either invalid or not found.
content:
application/json:
schema:
$ref: '#/components/schemas/RippleNetProblem'
security:
- Bearer: []
/quote_collections:
post:
tags:
- Quotes
summary: Create quote collection
description: Creates a collection of quotes for a proposed payment.
operationId: createQuoteCollection
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentQuoteRequest'
required: true
responses:
'200':
description: Successfully returned quote collection.
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteCollection'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/RippleNetProblem'
security:
- Bearer: []
/quote_collections/{quote_collection_id}:
get:
tags:
- Quotes
summary: Get quote collection by ID
description: Gets a quote collection that was created for a proposed payment.
operationId: getQuoteCollectionById
parameters:
- name: quote_collection_id
in: path
description: The ID of the quote collection you want returned.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Successfully returned a quote collection.
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteCollection'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/RippleNetProblem'
security:
- Bearer: []
components:
schemas:
PaymentQuoteRequest:
type: object
required:
- amount
- currency
- quote_type
- receiving_address
- sending_address
properties:
sending_address:
type: string
example: sf@rn.us.ca.san_francisco
description: 'RippleNet account name and address of the sender.
**Format**: `accountname@ripplenetaddress`
**Example**: `new_york@rn.us.ny.new_york`
'
receiving_address:
type: string
example: sf_gbp@rn.us.ca.san_francisco
description: 'RippleNet account name and address of the receiver.
**Format**: `accountname@ripplenetaddress`
**Example**: `new_york@rn.us.ny.new_york`
'
amount:
type: string
minimum: 1
example: '1'
description: '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:
type: string
example: USD
description: '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:
type: string
example: SENDER_AMOUNT
description: 'Specifies how to calculate the quote.
**Example**: `SENDER_AMOUNT`
'
enum:
- SENDER_AMOUNT
- RECEIVER_AMOUNT
- SENDER_INSTITUTION_AMOUNT
- RECEIVER_INSTITUTION_AMOUNT
x-enumDescriptions:
SENDER_AMOUNT: Quote based on the amount the payment originator or originating institution wants to send
SENDER_INSTITUTION_AMOUNT: Quote based on the amount (to debit the originator) is `amount` plus any fees to be collected by the sending institution
RECEIVER_AMOUNT: Quote based on the amount the payment beneficiary or beneficiary institution should receive
RECEIVER_INSTITUTION_AMOUNT: The amount (to credit the beneficiary) is `amount` minus any fees to be collected by the receiving institution
sender_or_receiver_currency:
type: string
description: 'Currency code of the sender or receiver based on `quote_type`.
If provided, you can use this to filter the options for quotes.
'
example: USD
custom_fee:
type: number
description: 'Custom fee for the sending account.
Setting this field overrides all fees configured on the sender''s RippleNet instance.
'
custom_rate:
$ref: '#/components/schemas/PaymentQuoteCustomRateRequest'
quote_route:
type: array
example:
- rn.us.ca.san_francisco
- rn.us.tx.austin
- rn.us.ny.new_york
description: '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`
'
items:
type: string
payment_method:
type: string
description: '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:
type: boolean
example: true
description: Enable this flag to generate quotes using payout methods configured by the receiver.
digital_asset_origination:
type: boolean
description: '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.
'
example: false
force_path_finding_and_liquidity_path_finding:
type: boolean
description: '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.
'
example: false
default: false
payout_method_category:
type: string
example: BOOK_TRANSFER
description: Category the payout method will be associated with. Defaults to `OTHER` if not specified.
enum:
- REAL_TIME_GROSS_SETTLEMENT_SYSTEM
- REAL_TIME_NET_SETTLEMENT_SYSTEM
- MASS_NET_PAYMENT_SYSTEM
- BOOK_TRANSFER
- CASH_PAYOUT
- WALLET_PAYMENT
- OTHER
x-enumDescriptions:
REAL_TIME_GROSS_SETTLEMENT_SYSTEM: Real-time gross settlement system
REAL_TIME_NET_SETTLEMENT_SYSTEM: Real-time net settlement system
MASS_NET_PAYMENT_SYSTEM: Mass net payment system
BOOK_TRANSFER: Book transfer
CASH_PAYOUT: Cash payout
WALLET_PAYMENT: Wallet payment
OTHER: Other
sender_segregated_account:
type: string
maxLength: 254
example: conct_php_receiver_coins_sender@receiver
description: '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:
type: integer
description: Flag for truncating the total amount of quotes to a maximum amount after sorting and filters are applied. Optional.
quote_filter_types:
type: array
description: Filter on a type of quote.
items:
type: string
enum:
- LIQUIDITY_WARNINGS
- QUOTE_ERRORS
x-enumDescriptions:
LIQUIDITY_WARNINGS: Filter for liquidity warnings
QUOTE_ERRORS: Filter for quote errors
description: JSON request object to generate a quote collection.
QuoteElement:
type: object
required:
- quote_element_id
- quote_element_order
- quote_element_type
- receiver_address
- receiving_amount
- receiving_fee
- sender_address
- sending_amount
- sending_fee
properties:
quote_element_id:
type: string
format: uuid
example: 259189e7-cb14-42e7-99ef-375f3285e356
description: Unique identifier for the quote element.
quote_element_type:
type: string
example: EXCHANGE
description: 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>
enum:
- TRANSFER
- EXCHANGE
- EXCHANGE_TRADE
- CRYPTO_TRANSFER
quote_element_order:
type: string
example: '1'
description: 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:
type: string
example: sf@rn.us.ca.san_francisco
description: RippleNet account name and address of the sender, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
receiver_address:
type: string
example: sf_gbp@rn.us.ca.san_francisco
description: RippleNet account name and address of the receiver, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
sending_amount:
type: number
example: 1
description: Amount the sender is sending.
receiving_amount:
type: number
example: 355
description: Amount the receiver is receiving.
sending_fee:
type: number
example: 0
description: Fees the sender is charging. When `quote_element_type` is set to `EXCHANGE`, this field value is always set to `0`.
receiving_fee:
type: number
example: 0
description: Fees the receiver is charging. When `quote_element_type` is set to `EXCHANGE`, this field value is always set to `0`.
sending_currency_code:
type: string
example: USD
description: Currency code of the sending amount. Included in quote elements with `quote_element_type` set to `EXCHANGE`.
receiving_currency_code:
type: string
example: GBP
description: Currency code of the receiving amount. Included in quote elements with `quote_element_type` set to `EXCHANGE`.
fx_rate:
$ref: '#/components/schemas/FXRate'
transfer_currency_code:
type: string
description: Currency code of the transfer. Included in quote elements with `quote_element_type` set to `TRANSFER`.
description: JSON object that provides transfer and exchange elements used to provide the quote. A transfer element represents the transfer of currency between two accounts. An exchange element represents the exchange of currencies between two accounts.
TotalFees:
type: object
required:
- total_fee
- fee_currency
properties:
total_fee:
type: number
description: total value of fee
fee_currency:
type: string
description: currency of the fee charged
RippleNetProblem:
type: object
description: Represents a request to create and update a payout method record.
properties:
type:
type: string
example: https://errors.ripplenet.ripple.com/error/json-processing-error
description: URL to the error documentation.
title:
type: string
example: Invalid Request Object
description: Summary of the returned problem.
detail:
type: string
example: The request parameter [account_id] is not in the correct format.
description: Description of the returned problem.
status:
type: number
example: 400
description: HTTP error code.
ripplenet_error_code:
type: string
example: E0104
description: RippleNet specific error code.
finality:
type: string
example: PERMANENT
description: Specifies if the request can be retried for a successful response.
Quote:
type: object
required:
- amount
- created_at
- currency_code
- currency_code_filter
- expires_at
- liquidity_warning
- price_guarantee
- quote_elements
- quote_id
- receiver_address
- sender_address
- service_type
- type
properties:
quote_id:
type: string
format: uuid
example: 2a547e56-4aac-4375-86a8-8b3e7014801d
description: Unique identifier for the quote.
created_at:
type: string
format: date-time
example: '2020-01-29T20:59:44.925Z'
description: Date and time at which the quote was created, as an ISO-8601 timestamp in UTC.
expires_at:
type: string
format: date-time
example: '2020-01-29T21:29:44.925Z'
description: Date and time after which the quote and its pricing expire, as an ISO-8601 timestamp in UTC.
default: 300s/300000ms
type:
type: string
example: SENDER_AMOUNT
description: Indicates how the amount field should be treated for calculating quote values.
enum:
- SENDER_AMOUNT
- RECEIVER_AMOUNT
- SENDER_INSTITUTION_AMOUNT
- RECEIVER_INSTITUTION_AMOUNT
- REVERSAL_AMOUNT
price_guarantee:
type: string
example: FIRM
description: 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.
default: FIRM
sender_address:
type: string
example: sf@rn.us.ca.san_francisco
description: RippleNet account name and address of the sender, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
receiver_address:
type: string
example: sf_gbp@rn.us.ca.san_francisco
description: RippleNet account name and address of the receiver, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
amount:
type: string
example: '1'
description: Amount to be sent or received, depending on the `type` value.
currency_code:
type: string
example: USD
description: Currency code for the `amount` value.
currency_code_filter:
type: string
example: EUR
description: 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:
type: string
description: Returns `null`.
quote_elements:
type: array
description: 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.
items:
$ref: '#/components/schemas/QuoteElement'
liquidity_warning:
type: string
description: Triggered when a quote causes an account to go below its `minimum_allowed_balance`. Otherwise, this field value is set to `null`.
payment_method:
type: string
example: LOCAL_RAILS
description: Payout method for the quote.
payment_method_fields:
type: string
example: '{"category_id":"bank","required_originator_fields":[{"field_name":"sender_address","field_label":"Sender address"}]}'
description: JSON object containing payment method metadata.
payout_method_info:
type: object
description: Details about the payout method.
properties:
payout_method_name:
type: string
example: Cash Payout
description: Payout method for the quote.
payout_method_category:
type: string
example: BOOK_TRANSFER
description: Category of the payout method. Defaults to <code>OTHER</code> if not specified.
enum:
- REAL_TIME_GROSS_SETTLEMENT_SYSTEM
- REAL_TIME_NET_SETTLEMENT_SYSTEM
- MASS_NET_PAYMENT_SYSTEM
- BOOK_TRANSFER
- CASH_PAYOUT
- WALLET_PAYMENT
- OTHER
description:
type: string
example: local rails
description: User defined description of the payout method.
estimated_time_to_credit:
type: string
example: 3 days
description: The estimated time to credit the beneficiary using this payout method.
description: JSON response object that represents a quote for a proposed payment or return payment.
QuotePathRos:
type: object
required:
- source
- destination
- source_currency
- destination_currency
properties:
source:
type: string
description: RippleNet account name and address of the source account, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
destination:
type: string
description: 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:
type: string
description: Currency associated with the source account.
destination_currency:
type: string
description: Currency associated with the destination account.
account_liquidity_relationship_id:
type: string
format: uuid
example: 480e3a6f-3bcd-48cd-9ce9-9d940aa3c9c6
description: Unique identifier for an account liquidity relationship.
peer_liquidity_relationship_id:
type: string
format: uuid
example: 480e3a6f-3bcd-48cd-9ce9-9d940aa3c9c6
description: Unique identifier for a peer liquidity relationship.
description: Object that describes a liquidity path used to generate a quote.
x-docs-model-object:
object-name: Quote Path Object
ExecutionResult:
type: object
required:
- execution_result_id
- execution_result_order
- execution_result_type
- execution_timestamp
- receiver_address
- receiving_amount
- receiving_fee
- sender_address
- sending_amount
- sending_fee
properties:
execution_result_id:
type: string
format: uuid
example: 06f6d4e2-3523-4d17-92fd-53192a06207f
description: Unique identifier for this payment result.
execution_timestamp:
type: string
format: date-time
example: '2019-10-01T18:24:29.867Z'
description: Date and time at which this portion of the payment was executed, as an ISO-8601 timestamp in UTC.
execution_result_type:
type: string
example: TRANSFER
description: Type of payment execution result.<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>
enum:
- TRANSFER
- EXCHANGE
- EXCHANGE_TRADE
- CRYPTO_TRANSFER
execution_result_order:
type: integer
example: 1
description: Order in which the payment execution action was taken along the liquidity path. For example, a payment may include five execution results along the liquidity path. Each execution result has an order number that indicates the order in which the execution result was achieved to make the payment.
sender_address:
type: string
example: trans_usd_sf@rn.us.ca.san_francisco
description: RippleNet account name and address of the sender, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
receiver_address:
type: string
example: conct_usd_sf@rn.us.ca.san_francisco
description: RippleNet account name and address of the receiver, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
sending_amount:
type: number
example: 498
description: Amount the sender is sending.
receiving_amount:
type: number
example: 498
description: Amount the receiver is receiving.
sending_fee:
type: number
example: 2
description: Fees the sender is charging.
receiving_fee:
type: number
example: 0
description: Fees the receiver is charging.
sending_currency_code:
type: string
example: USD
description: Currency code of the sending amount. Included in execution results with `execution_result_type` set to `EXCHANGE`.
receiving_currency_code:
type: string
example: GBP
description: Currency of the receiving amount. Included in execution results with `execution_result_type` set to `EXCHANGE`.
fx_rate:
$ref: '#/components/schemas/FXRate'
transfer_currency_code:
type: string
description: Currency of the transfer. Returned in execution results with `execute_result_type` set to `TRANSFER`.
intermediary_delta:
type: number
example: 0.2
description: Amount of XRP representing the difference in FX rate between the moment of quoting and the moment of execution. A positive value is the amount taken out of the incentive pool. A negative value is the amount returned to the incentive pool. (Soon to be deprecated)
incentive_type:
type: string
example: firm
description: Configuration of the incentive pool on the xRapid side. Two values are supported, `firm` and `fx`. For `firm`, xRapid guarantees that the FX rate at the moment of execution is the same as at the moment of quoting. For `fx`, xRapid guaratees a predefined FX rate.
incentive_value:
type: number
example: 0.2
description: Amount of XRP representing the difference in FX rate between the moment of quoting and the moment of execution. A positive value is the amount taken out of the incentive pool. A negative value is the amount returned to the incentive pool.
transaction_hash:
type: string
example: 5.5467794184785867e+76
description: Hash representing the unique identifier for the transfer of funds in the XRP ledger.
venue_id:
type: string
example: nz7RpAujYgnQtjEM
description: The id from an exchange associated with a transaction involving an exchange account.
fiat_adjusted_value:
type: number
example: 0.02
description: Represents the delta between quoted and received executed amounts, for exchange trades.
odl_payment_id:
type: string
description: Payment ID in On-Demand Liquidity (ODL) for an executed ODL payment containing the transaction represented by this execution result.
description: Represents the actual movement of funds in a payment. Each execution result corresponds to a quote element and represents its execution in a payment. Included once the payment is in `EXECUTED` state.
RippleNetInfo:
type: object
required:
- node_address
- settlement_declined
properties:
node_address:
type: string
example: rn.us.ny.new_york
description: RippleNet address of the node from which the RippleNetInfo originated.
settlement_declined:
type: array
description: If applicable, provides an array of RippleNetInfoEntry's explaining transitions into the `SETTLEMENT_DECLINED` state
items:
$ref: '#/components/schemas/RippleNetInfoEntry'
description: Application-generated information explaining actions taken by RippleNet applications.
Payment:
description: JSON response object that represents a payment. A payment is the movement of value across accounts on potentially different RippleNet instances involving one or more currencies.
required:
- user_info
- internal_info
- accepted_at
allOf:
- $ref: '#/components/schemas/BasePayment'
- type: object
properties:
accepted_at:
type: string
format: date-time
example: '2019-10-01T18:25:47.347Z'
description: Date and time at which the payment was last accepted, as an ISO-8601 timestamp in UTC.
locked_at:
type: string
format: date-time
example: '2019-10-01T18:25:47.347Z'
description: Date and time at which the payment was last locked, as an ISO-8601 timestamp in UTC.
# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ripple-labs/refs/heads/main/openapi/ripple-labs-quotes-api-openapi.yml