Skip to content

Payments Direct 1.0 API ( )

Use the Ripple Payments Direct 1.0 API to get quotes, create and manage payments, and manage originator and beneficiary identities.

API environments

The Ripple Payments Direct 1.0 API offers the following environments:

Environment
Base URL
Testhttps://{customer-name}.test.rnc.ripplenet.com/v4
Productionhttps://{customer-name}.rnc.ripplenet.com/v4

Base URL

The base URL for the Ripple Payments Direct 1.0 API follows the {domainprefix}.{domain} pattern. For the test environment, the {domainprefix} is {customername}.test. For the production environment, the {domainprefix} is {customername}.

Note: The following examples use aperture as the customer name, your customer name will be different.

URL format

This is the URL format for the Ripple Payments Direct 1.0 API.

https://{domainprefix}.{domain}/v4

Example base URL

This is an example base URL for the Ripple Payments Direct 1.0 API.

https://aperture.test.rnc.ripplenet.com/v4/{path}?{parameters}

Example fully-qualified URL

This connects to the test environment and requests a list of payments with 100 results per page.

https://aperture.test.rnc.ripplenet.com/v4/payments?page=0&size=100
Environment
Domain Prefix
DomainBase URL
Testaperture.test.rncripplenet.comhttps://aperture.test.rnc.ripplenet.com/v4
Productionaperture.rncripplenet.comhttps://aperture.rnc.ripplenet.com/v4

API authentication

All Ripple Payments Direct 1.0 API operations require a Bearer access token specific to the environment you're using. Ripple provides a secure model for authentication and authorization by providing access tokens scoped for a set of credentials.

Generate client ID and client secret

You will need your client ID and client secret to obtain an access token.

If you do not already have your client ID and client secret, do the following:

  1. Log into the Ripple Payments UI.
  2. In the left navigation menu, click Settings.
  3. Under Administration, click API Credentials.
  4. In the dropdown list next to the page title, select the access environment. For example, to provision credentials for the test environment, select Test from the dropdown list.
  5. In the upper right corner of the page, click New Credential.
  6. Click Save and Generate Key.

Caution: The client secret is displayed only once when you are creating new credentials. You cannot retrieve the secret after exiting this page. Copy and store the client secret securely and share it with authorized individuals in accordance with your organization's security policy.

You can now use the client ID and client secret to generate access tokens using the Request an access token operation.

Request an access token

To get an access token, use the Request an access token operation with your client_id and client_secret. The response contains a token in the access_token field.

We recommend rotating your API credentials at regular intervals according to your organization's security policy.

Note: Authentication tokens are not a fixed length and can vary, avoid validating tokens based on character length.

Languages
Servers
Mock server

https://docs.ripple.com/_mock/products/payments-direct/api-docs/payments-direct-api/reference/payments-direct-external/

Authentication

Use these API operations to manage your authentication tokens.

OperationMethodDescription
Request an access tokenPOSTRequest an access token for authentication with Ripple APIs.
Test access tokenGETTest if an access token can be used for authentication.

Identities

Use these API operations to manage your identities.

OperationMethodDescription
List identitiesGETGet a list of existing identities.
Create an identityPOSTCreate a new identity.
Get an identity by IDGETGet an identity by its unique ID.
Delete an identityDELETEDelete an identity.

Payments

Use these API operations to manage your payments.

OperationMethodDescription
Get paymentsGETGet a list of existing payments.
Get payment by payment IDGETGet a specific payment by payment ID.
Operations

Quotes

Use these API operations to manage your quotes.

OperationMethodDescription
Accept quotePOSTAccepts a quote ID to start the payment process.
Create quote collectionPOSTCreate a collection of quotes.
Operations

Accept quote

Request

Accepts a quote ID to start the payment process.

Tutorials

Security
Bearer
Bodyapplication/jsonrequired

The JSON object to include in your request to accept a quote that you want to advance as a payment.

quote_idstring(uuid)required

ID of the quote to accept and continue as a payment.

Example: "9bb53b3b-a774-43e2-9a1b-f18fbc3640f7"
sender_end_to_end_idstring<= 128 charactersrequired

Sender-specified ID.

internal_idstring<= 128 characters

Internal ID that the sender can specify. Only visible to the sender. Only the sending RippleNet instance stores this ID.

user_infoobjectrequired

Your receiver defines the required User info structure. Provide the structure as required by your use case.

curl -i -X POST \
  https://docs.ripple.com/_mock/products/payments-direct/api-docs/payments-direct-api/reference/payments-direct-external/payments/accept \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "quote_id": "9bb53b3b-a774-43e2-9a1b-f18fbc3640f7",
    "sender_end_to_end_id": "string",
    "internal_id": "string",
    "user_info": {}
  }'

Responses

Successfully accepted quote resulting in a payment object in ACCEPTED state.

Bodyapplication/json
payment_idstring(uuid)required

Unique identifier of a payment.

Example: "d485f100-2af7-4e48-9ab1-3c7e28775691"
contract_hashstringrequired

Hash of all values in the Contract object used to ensure immutability. The values in this object cannot change once a payment transitions into the PROCESSING_COMPLIANCE state.

Example: "ccb23bd87f13cc13b9d616a9723f76e112aeac8628b2082e0f8bf3b8c670b103"
payment_statestringrequired

State of the payment.

Enum ValueDescription
ACCEPTED

The sender has made a successful Accept quote request and a payment ID was created.

PROCESSING_COMPLIANCE

The payment request is going through Ripple's compliance process.

PREPARED

An automatic Settle payment request was made and the crypto-transaction created.

EXECUTED

The funds have been transferred to the receiver account.

COMPLETED

The funds have reached the end beneficiary.

FAILED

The payment has been actively stopped by a participating institution or the payment has failed automatically because it expired.

Example: "COMPLETED"
modified_atstring(date-time)required

Date and time at which the payment was last modified, as an ISO-8601 timestamp in UTC.

Example: "2019-10-01T18:25:47.347Z"
contractobjectrequired

Represents all immutable parts of a payment agreed upon by all participants as a part of the payment compliance processing flow. The values in this object cannot change once a payment transitions to the PROCESSING_COMPLIANCE state.

sender_end_to_end_idstring[ 1 .. 128 ] charactersrequired

ID that the sender can specify. Persisted on all RippleNet instances that participate in the payment.

created_atstring(date-time)required

Date and time at which this payment contract was created, as an ISO-8601 timestamp in UTC.

Example: "2024-03-22T15:24:19.587Z"
expires_atstring(date-time)required

Date and time after which this payment contract expires, as an ISO-8601 timestamp in UTC.

Default "300s/300000ms"
Example: "2024-05-21T15:13:31.275Z"
quoteobjectrequired

JSON response object that represents a quote for a proposed payment or return payment.

quote_idstring(uuid)required

Unique identifier for the quote.

Example: "2a547e56-4aac-4375-86a8-8b3e7014801d"
created_atstring(date-time)required

Date and time at which the quote was created, as an ISO-8601 timestamp in UTC.

Example: "2020-01-29T20:59:44.925Z"
expires_atstring(date-time)required

Date and time after which the quote and its pricing expire.

Default "300s/300000ms"
Example: "2020-01-29T21:29:44.925Z"
typestringrequired

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"
Example: "SENDER_AMOUNT"
price_guaranteestringrequired

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"
Example: "FIRM"
sender_addressstringrequired

RippleNet account name and address of the sender, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "sf@rn.us.ca.san_francisco"
receiver_addressstringrequired

RippleNet account name and address of the receiver, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "sf_gbp@rn.us.ca.san_francisco"
amountnumberrequired

Amount to be sent or received, depending on the type value.

Example: 1
currency_codestringrequired

Currency code for the amount value.

Example: "USD"
currency_code_filterstringrequired

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.

Example: "EUR"
service_typestringrequired

Returns null.

quote_elementsArray of objectsrequired

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_idstring(uuid)required

Unique identifier for the quote element.

Example: "259189e7-cb14-42e7-99ef-375f3285e356"
quote_element_typestringrequired

Type of quote element.

  • TRANSFER represents the movement of funds between two accounts.
  • EXCHANGE represents the exchange of currencies between two accounts.
  • EXCHANGE_TRADE represents the exchange of fiat to digital currency on a digital exchange.
  • CRYPTO_TRANSFER represents the movement of digital funds between two digital exchanges.

Enum"TRANSFER""EXCHANGE""EXCHANGE_TRADE""CRYPTO_TRANSFER"
Example: "EXCHANGE"
quote_element_orderintegerrequired

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.

Example: 1
sender_addressstringrequired

RippleNet account name and address of the sender, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "sf@rn.us.ca.san_francisco"
receiver_addressstringrequired

RippleNet account name and address of the receiver, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "sf_gbp@rn.us.ca.san_francisco"
sending_amountnumberrequired

Amount the sender is sending.

Example: 1
receiving_amountnumberrequired

Amount the receiver is receiving.

Example: 355
sending_feenumberrequired

Fees the sender is charging. When quote_element_type is set to EXCHANGE, this field value is always set to 0.

Example: 0
receiving_feenumberrequired

Fees the receiver is charging. When quote_element_type is set to EXCHANGE, this field value is always set to 0.

Example: 0
sending_currency_codestring

Currency code of the sending amount. Included in quote elements with quote_element_type set to EXCHANGE.

Example: "USD"
receiving_currency_codestring

Currency code of the receiving amount. Included in quote elements with quote_element_type set to EXCHANGE.

Example: "GBP"
fx_rateobject

The details of an FX Rate for a quote or payment.

transfer_currency_codestring

Currency code of the transfer. Included in quote elements with quote_element_type set to TRANSFER.

liquidity_warningstringrequired

Triggered when a quote causes an account to go below its minimum_allowed_balance. Otherwise, this field value is set to null.

payment_methodstring

Payout method for the quote.

Example: "LOCAL_RAILS"
payment_method_fieldsstring

JSON object containing payment method metadata.

Example: "{\"category_id\":\"bank\",\"required_originator_fields\":[{\"field_name\":\"sender_address\",\"field_label\":\"Sender address\"}]}"
payout_method_infoobject

Details about the payout method.

payout_method_namestring

Payout method for the quote.

Example: "Cash Payout"
payout_method_categorystring

Category of the payout method. 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"
Example: "BOOK_TRANSFER"
descriptionstring

User defined description of the payout method.

Example: "local rails"
estimated_time_to_creditstring

The estimated time to credit the beneficiary using this payout method.

Example: "3 days"
fee_infoobject

Itemized list of fees charged by each node.

nodesobjectrequired

Fees charged by each node participating in the payment.

property name*Array of objectsadditional property
total_feesArray of objectsrequired

Total fees charged in the payment, separated by currency.

total_feenumberrequired

Value of the total fee for the currency returned in fee_currency.

fee_currencystringrequired

ISO 4217 currency code of the currency the total fee applies to.

ripplenet_infoArray of objects

Application-provided data explaining actions taken by RippleNet applications.

node_addressstringrequired

RippleNet address of the node from which the RippleNetInfo originated.

Example: "rn.us.ny.new_york"
settlement_declinedArray of objectsrequired

If applicable, provides an array of RippleNetInfoEntry's explaining transitions into the SETTLEMENT_DECLINED state

infostring

Information explaining the action taken by a RippleNet application. Could be a RippleNet error code, or a written explanation of the action taken

Example: "L001"
created_atstring(date-time)

The DateTime that this quote was created, as an ISO-8601 timestamp in UTC.

Example: "2018-04-06T20:33:35Z"
execution_conditionstringrequired

A Base64-encoded execution condition for this payment, the fulfillment of which will be presented to the validator to complete this payment. This value must match the execution_condition in the associated crypto transaction.

Example: "PrefixSha256Condition{subtypes=[ED25519-SHA-256], type=PREFIX-SHA-256, fingerprint=sfGGHCrkyaMsLQNB62w_4zarlPChHKm47JkXVQbs1z0, cost=132360}"
crypto_transaction_idstringrequired

Unique identifier of the crypto transaction associated with this payment.

Example: "4e05da26-7872-4a1f-b9b7-db7604757c37"
validatorstringrequired

Address of the validator that validated the payment.

Example: "rn.us.ca.san_francisco"
payment_typestringrequired

Payment type.

Value"DIRECT"
Example: "DIRECT"
execution_resultsArray of objectsrequired

Represents the actual movement of funds in a payment. Each execution result corresponds to a quote element and represents its execution in a payment.

execution_result_idstring(uuid)required

Unique identifier for this payment result.

Example: "06f6d4e2-3523-4d17-92fd-53192a06207f"
execution_timestampstring(date-time)required

Date and time at which this portion of the payment was executed.

Example: "2019-10-01T18:24:29.867Z"
execution_result_typestringrequired

Type of payment execution result.

  • TRANSFER represents the movement of funds between two accounts.
  • EXCHANGE represents the exchange of currencies between two accounts.
  • EXCHANGE_TRADE represents the exchange of fiat to digital currency on a digital exchange.
  • CRYPTO_TRANSFER represents the movement of digital funds between two digital exchanges.

Enum"TRANSFER""EXCHANGE""EXCHANGE_TRADE""CRYPTO_TRANSFER"
Example: "TRANSFER"
execution_result_orderintegerrequired

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.

Example: 1
sender_addressstringrequired

RippleNet account name and address of the sender, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "trans_usd_sf@rn.us.ca.san_francisco"
receiver_addressstringrequired

RippleNet account name and address of the receiver, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "conct_usd_sf@rn.us.ca.san_francisco"
sending_amountnumberrequired

Amount the sender is sending.

Example: 498
receiving_amountnumberrequired

Amount the receiver is receiving.

Example: 498
sending_feenumberrequired

Fees the sender is charging.

Example: 2
receiving_feenumberrequired

Fees the receiver is charging.

Example: 0
sending_currency_codestring

Currency code of the sending amount. Included in execution results with execution_result_type set to EXCHANGE.

Example: "USD"
receiving_currency_codestring

Currency of the receiving amount. Included in execution results with execution_result_type set to EXCHANGE.

Example: "GBP"
fx_rateobject

The details of an FX Rate for a quote or payment.

ratenumberrequired

Exchange rate between a base and counter currency.

Example: 3.25
base_currency_codestringrequired

Currency code of the base currency.

counter_currency_codestringrequired

Currency code of the counter currency.

typestringrequired

Order type of the exchange rate. Valid values are buy or sell.

transfer_currency_codestring

Currency of the transfer. Returned in execution results with execute_result_type set to TRANSFER.

intermediary_deltanumber

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)

Example: 0.2
incentive_typestring

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.

Example: "firm"
incentive_valuenumber

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.

Example: 0.2
transaction_hashstring

Hash representing the unique identifier for the transfer of funds in the XRP ledger.

Example: 5.5467794184785867e+76
venue_idstring

The id from an exchange associated with a transaction involving an exchange account.

Example: "nz7RpAujYgnQtjEM"
fiat_adjusted_valuenumber

Represents the delta between quoted and received executed amounts, for exchange trades.

Example: 0.02
odl_payment_idstring

Payment ID in On-Demand Liquidity (ODL) for an executed ODL payment containing the transaction represented by this execution result.

liquidation_execution_resultsArray of objects

Represents the actual movement of funds in a payment as part of liquidation of a Wallet Receive payment.

execution_result_idstring(uuid)required

Unique identifier for this payment result.

Example: "06f6d4e2-3523-4d17-92fd-53192a06207f"
execution_timestampstring(date-time)required

Date and time at which this portion of the payment was executed.

Example: "2019-10-01T18:24:29.867Z"
execution_result_typestringrequired

Type of payment execution result.

  • TRANSFER represents the movement of funds between two accounts.
  • EXCHANGE represents the exchange of currencies between two accounts.
  • EXCHANGE_TRADE represents the exchange of fiat to digital currency on a digital exchange.
  • CRYPTO_TRANSFER represents the movement of digital funds between two digital exchanges.

Enum"TRANSFER""EXCHANGE""EXCHANGE_TRADE""CRYPTO_TRANSFER"
Example: "TRANSFER"
execution_result_orderintegerrequired

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.

Example: 1
sender_addressstringrequired

RippleNet account name and address of the sender, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "trans_usd_sf@rn.us.ca.san_francisco"
receiver_addressstringrequired

RippleNet account name and address of the receiver, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "conct_usd_sf@rn.us.ca.san_francisco"
sending_amountnumberrequired

Amount the sender is sending.

Example: 498
receiving_amountnumberrequired

Amount the receiver is receiving.

Example: 498
sending_feenumberrequired

Fees the sender is charging.

Example: 2
receiving_feenumberrequired

Fees the receiver is charging.

Example: 0
sending_currency_codestring

Currency code of the sending amount. Included in execution results with execution_result_type set to EXCHANGE.

Example: "USD"
receiving_currency_codestring

Currency of the receiving amount. Included in execution results with execution_result_type set to EXCHANGE.

Example: "GBP"
fx_rateobject

The details of an FX Rate for a quote or payment.

ratenumberrequired

Exchange rate between a base and counter currency.

Example: 3.25
base_currency_codestringrequired

Currency code of the base currency.

counter_currency_codestringrequired

Currency code of the counter currency.

typestringrequired

Order type of the exchange rate. Valid values are buy or sell.

transfer_currency_codestring

Currency of the transfer. Returned in execution results with execute_result_type set to TRANSFER.

intermediary_deltanumber

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)

Example: 0.2
incentive_typestring

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.

Example: "firm"
incentive_valuenumber

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.

Example: 0.2
transaction_hashstring

Hash representing the unique identifier for the transfer of funds in the XRP ledger.

Example: 5.5467794184785867e+76
venue_idstring

The id from an exchange associated with a transaction involving an exchange account.

Example: "nz7RpAujYgnQtjEM"
fiat_adjusted_valuenumber

Represents the delta between quoted and received executed amounts, for exchange trades.

Example: 0.02
odl_payment_idstring

Payment ID in On-Demand Liquidity (ODL) for an executed ODL payment containing the transaction represented by this execution result.

liquidation_detailsobject

Payment liquidation details

idstring(uuid)

Liquidation ID, unique to the liquidation process of this payment

statusstring

Liquidation status

failure_reasonstring

Reason behind failure of the liquidation, only applicable if the status is failure

failure_countinteger

Number of times the liquidation failed. Irrelevant if status is successful.

push_forward_execution_resultsArray of objects

Represents the movement of funds after an On-Demand Liquidity payment fails at intermediary transfer or destination exchange.

execution_result_idstring(uuid)required

Unique identifier for this payment result.

Example: "06f6d4e2-3523-4d17-92fd-53192a06207f"
execution_timestampstring(date-time)required

Date and time at which this portion of the payment was executed.

Example: "2019-10-01T18:24:29.867Z"
execution_result_typestringrequired

Type of payment execution result.

  • TRANSFER represents the movement of funds between two accounts.
  • EXCHANGE represents the exchange of currencies between two accounts.
  • EXCHANGE_TRADE represents the exchange of fiat to digital currency on a digital exchange.
  • CRYPTO_TRANSFER represents the movement of digital funds between two digital exchanges.

Enum"TRANSFER""EXCHANGE""EXCHANGE_TRADE""CRYPTO_TRANSFER"
Example: "TRANSFER"
execution_result_orderintegerrequired

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.

Example: 1
sender_addressstringrequired

RippleNet account name and address of the sender, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "trans_usd_sf@rn.us.ca.san_francisco"
receiver_addressstringrequired

RippleNet account name and address of the receiver, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "conct_usd_sf@rn.us.ca.san_francisco"
sending_amountnumberrequired

Amount the sender is sending.

Example: 498
receiving_amountnumberrequired

Amount the receiver is receiving.

Example: 498
sending_feenumberrequired

Fees the sender is charging.

Example: 2
receiving_feenumberrequired

Fees the receiver is charging.

Example: 0
sending_currency_codestring

Currency code of the sending amount. Included in execution results with execution_result_type set to EXCHANGE.

Example: "USD"
receiving_currency_codestring

Currency of the receiving amount. Included in execution results with execution_result_type set to EXCHANGE.

Example: "GBP"
fx_rateobject

The details of an FX Rate for a quote or payment.

ratenumberrequired

Exchange rate between a base and counter currency.

Example: 3.25
base_currency_codestringrequired

Currency code of the base currency.

counter_currency_codestringrequired

Currency code of the counter currency.

typestringrequired

Order type of the exchange rate. Valid values are buy or sell.

transfer_currency_codestring

Currency of the transfer. Returned in execution results with execute_result_type set to TRANSFER.

intermediary_deltanumber

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)

Example: 0.2
incentive_typestring

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.

Example: "firm"
incentive_valuenumber

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.

Example: 0.2
transaction_hashstring

Hash representing the unique identifier for the transfer of funds in the XRP ledger.

Example: 5.5467794184785867e+76
venue_idstring

The id from an exchange associated with a transaction involving an exchange account.

Example: "nz7RpAujYgnQtjEM"
fiat_adjusted_valuenumber

Represents the delta between quoted and received executed amounts, for exchange trades.

Example: 0.02
odl_payment_idstring

Payment ID in On-Demand Liquidity (ODL) for an executed ODL payment containing the transaction represented by this execution result.

accepted_atstring(date-time)required

Date and time at which the payment was last accepted, as an ISO-8601 timestamp in UTC.

Example: "2019-10-01T18:25:47.347Z"
executed_atstring(date-time)

Date and time at which the payment was last executed, as an ISO-8601 timestamp in UTC.

Example: "2019-10-01T18:25:47.347Z"
completed_atstring(date-time)

Date and time at which the payment was last completed, as an ISO-8601 timestamp in UTC.

Example: "2019-10-01T18:25:47.347Z"
internal_infoobjectrequired

JSON object containing information that only the RippleNet instance that set it can view. These values can be set by the sender when accepting a payment and by an intermediary or receiver when locking the payment.

connector_rolestringrequired

Role of the RippleNet node that sets one or more values in the Internal Info object.

Use as follows:

  • SENDING: Sending account in the payment resides on this RippleNet instance.
  • RECEIVING: Receiving account in the payment resides on this RippleNet instance.
  • INTERMEDIARY: Neither sending nor receiving accounts in the payment reside on this RippleNet instance.
  • INTERNAL: Both sending and receiving accounts in the payment (usually between RippleNet Cloud and RippleNet) reside on this RippleNet instance.
Enum"SENDING""RECEIVING""INTERMEDIARY""INTERNAL"
Example: "RECEIVING"
labelsArray of objectsrequired

Array of objects that provide label values that are set by including the sub_state field at any stage of the payment's lifecycle. Labels can be used as a filtering mechanism when searching for payments. Labels are visible only to the node that added them to this copy of a payment. If the values that populate this array are not set in the request or if the values set in the request are not viewable by your node, this array is empty.

labelstring

Label to be attached

internal_idstringrequired

ID that is viewable only to the node that set it. This value can be set by the sender when accepting a payment. This value can also be set by any intermediary and the receiver when locking the payment. If this value is not set in the request or if the value set in the request is not viewable by your node, this field value is set to null.

user_infoArray of objectsrequired

User-provided data with arbitrary key/value pairs.

node_addressstringrequired

RippleNet address of the node that provided the user information.

Example: "rn.us.ca.san_francisco"
acceptedArray of objectsrequired

User information optionally provided when accepting the payment.

jsonobjectrequired

User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.

created_atstring(date-time)required

Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.

subStatestring

If provided, this parameter descibes payment state more granularly.

Example: "EXECUTING"
lockedArray of objectsrequired

User information optionally provided when locking the payment. For more information, see [User Info Entry Object][user-info-entry].

jsonobjectrequired

User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.

created_atstring(date-time)required

Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.

subStatestring

If provided, this parameter descibes payment state more granularly.

Example: "EXECUTING"
lock_declinedArray of objectsrequired

User information optionally provided when declining to lock the payment. For more information, see [User Info Entry Object][user-info-entry].

jsonobjectrequired

User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.

created_atstring(date-time)required

Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.

subStatestring

If provided, this parameter descibes payment state more granularly.

Example: "EXECUTING"
retry_acceptArray of objectsrequired

User information optionally provided when retrying acceptance of the payment. For more information, see [User Info Entry Object][user-info-entry].

jsonobjectrequired

User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.

created_atstring(date-time)required

Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.

subStatestring

If provided, this parameter descibes payment state more granularly.

Example: "EXECUTING"
retry_settlementArray of objectsrequired

User information optionally provided when retrying settlement of the payment. For more information, see [User Info Entry Object][user-info-entry].

jsonobjectrequired

User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.

created_atstring(date-time)required

Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.

subStatestring

If provided, this parameter descibes payment state more granularly.

Example: "EXECUTING"
settlementArray of objectsrequired

User information optionally provided when settling the payment. For more information, see [User Info Entry Object][user-info-entry].

jsonobjectrequired

User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.

created_atstring(date-time)required

Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.

subStatestring

If provided, this parameter descibes payment state more granularly.

Example: "EXECUTING"
settlement_declinedArray of objectsrequired

User information optionally provided when settlement for the payment is declined. For more information, see [User Info Entry Object][user-info-entry].

jsonobjectrequired

User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.

created_atstring(date-time)required

Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.

subStatestring

If provided, this parameter descibes payment state more granularly.

Example: "EXECUTING"
failedArray of objectsrequired

User information optionally provided when failing the payment. For more information, see [User Info Entry Object][user-info-entry].

jsonobjectrequired

User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.

created_atstring(date-time)required

Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.

subStatestring

If provided, this parameter descibes payment state more granularly.

Example: "EXECUTING"
executedArray of objectsrequired

Payment sub-state information provided using sub_state and memo fields when finalizing the payment. For more information, see [User Info Entry Object][user-info-entry].

jsonobjectrequired

User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.

created_atstring(date-time)required

Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.

subStatestring

If provided, this parameter descibes payment state more granularly.

Example: "EXECUTING"
completedArray of objectsrequired

User information optionally provided when completing the payment. For more information, see [User Info Entry Object][user-info-entry].

jsonobjectrequired

User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.

created_atstring(date-time)required

Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.

subStatestring

If provided, this parameter descibes payment state more granularly.

Example: "EXECUTING"
forwardedArray of objectsrequired

If applicable, user information optionally provided when forwarding the payment. For more information, see [User Info Entry Object][user-info-entry].

jsonobjectrequired

User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.

created_atstring(date-time)required

Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.

subStatestring

If provided, this parameter descibes payment state more granularly.

Example: "EXECUTING"
returnedArray of objectsrequired

If applicable, information optionally provided using return_reasons when returning the payment. For more information, see [User Info Entry Object][user-info-entry].

jsonobjectrequired

User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.

created_atstring(date-time)required

Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.

subStatestring

If provided, this parameter descibes payment state more granularly.

Example: "EXECUTING"
Response
application/json
{ "payment_id": "d485f100-2af7-4e48-9ab1-3c7e28775691", "contract_hash": "ccb23bd87f13cc13b9d616a9723f76e112aeac8628b2082e0f8bf3b8c670b103", "payment_state": "COMPLETED", "modified_at": "2019-10-01T18:25:47.347Z", "contract": { "sender_end_to_end_id": "string", "created_at": "2024-03-22T15:24:19.587Z", "expires_at": "2024-05-21T15:13:31.275Z", "quote": {}, "fee_info": {} }, "ripplenet_info": [ {} ], "execution_condition": "PrefixSha256Condition{subtypes=[ED25519-SHA-256], type=PREFIX-SHA-256, fingerprint=sfGGHCrkyaMsLQNB62w_4zarlPChHKm47JkXVQbs1z0, cost=132360}", "crypto_transaction_id": "4e05da26-7872-4a1f-b9b7-db7604757c37", "validator": "rn.us.ca.san_francisco", "payment_type": "DIRECT", "execution_results": [ {} ], "liquidation_execution_results": [ {} ], "liquidation_details": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "string", "failure_reason": "string", "failure_count": 0 }, "push_forward_execution_results": [ {} ], "accepted_at": "2019-10-01T18:25:47.347Z", "executed_at": "2019-10-01T18:25:47.347Z", "completed_at": "2019-10-01T18:25:47.347Z", "internal_info": { "connector_role": "RECEIVING", "labels": [], "internal_id": "string" }, "user_info": [ {} ] }

Create quote collection

Request

Creates a collection of quotes for a proposed payment.

Prerequisite

Tutorials

Security
Bearer
Bodyapplication/jsonrequired
sending_addressstringrequired

RippleNet account name and address of the sender, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "sf@rn.us.ca.san_francisco"
receiving_addressstringrequired

Account name of the receiving institution.

Example: "rn.sgp.tranglo"
amountnumber[ 1 .. 100000000 ]required

Amount to be sent or received, depending on the quote_type.

Use this table to determine what amount to assign.

Example: 1

Quote typeAmount
SENDER_AMOUNTAmount to be sent by the payment originator
SENDER_INSTITUTION_AMOUNTSet to SENDER_INSTITUTION_AMOUNT to calculate the quote based on the amount to be sent, plus any fees collected by the sending institution
RECEIVER_AMOUNTAmount to be received by the payment beneficiary
RECEIVER_INSTITUTION_AMOUNTSet to RECEIVER_INSTITUTION_AMOUNT to calculate the quote based on the amount to be received, minus any fees collected by the receiving institution
Example: 1
currencystring= 3 charactersrequired

Currency code of the amount to be sent or received, depending on the quote_type value.

Use this table to determine what currency code to assign.

Example: USD

Quote typeCurrency code
SENDER_AMOUNTSending currency
SENDER_INSTITUTION_AMOUNTSending currency
RECEIVER_AMOUNTReceiving currency
RECEIVER_INSTITUTION_AMOUNTReceiving currency
Example: "USD"
quote_typestringrequired

Specifies how to calculate the quote.

Example: SENDER_AMOUNT

Enum ValueDescription
SENDER_AMOUNT

Quote based on the amount the payment originator or originating institution wants to send

RECEIVER_AMOUNT

Quote based on the amount the payment beneficiary or beneficiary institution should receive

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_INSTITUTION_AMOUNT

The amount (to credit the beneficiary) is amount minus any fees to be collected by the receiving institution

Example: "SENDER_AMOUNT"
sender_or_receiver_currencystring

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

Example: "USD"
payment_methodstring

Payout method for the quote.

Note: The value must match the value of payout_method field in the response from the Get payout method operation.

Caution: The existing quote parameter is named payment_method while elsewhere it is payout_method.

quote_limitinteger

Flag for truncating the total amount of quotes to a maximum amount after sorting and filters are applied. Optional.

quote_filter_typesArray of strings
Items Enum ValueDescription
LIQUIDITY_WARNINGS

Filter for liquidity warnings

QUOTE_ERRORS

Filter for quote errors

curl -i -X POST \
  https://docs.ripple.com/_mock/products/payments-direct/api-docs/payments-direct-api/reference/payments-direct-external/quote_collections \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "sending_address": "sf@rn.us.ca.san_francisco",
    "receiving_address": "rn.sgp.tranglo",
    "amount": 1,
    "currency": "USD",
    "quote_type": "SENDER_AMOUNT",
    "sender_or_receiver_currency": "USD",
    "payment_method": "string",
    "quote_limit": 0,
    "quote_filter_types": [
      "LIQUIDITY_WARNINGS"
    ]
  }'

Responses

Successfully returned quote collection.

Bodyapplication/json
quote_collection_idstring(uuid)required

Unique identifier of the quote collection.

Example: "4711728c-cd35-49ec-96a5-72732b4333ec"
quotesArray of objectsrequired
quote_idstring(uuid)required

Unique identifier for the quote.

Example: "2a547e56-4aac-4375-86a8-8b3e7014801d"
created_atstring(date-time)required

Date and time at which the quote was created, as an ISO-8601 timestamp in UTC.

Example: "2020-01-29T20:59:44.925Z"
expires_atstring(date-time)required

Date and time after which the quote and its pricing expire.

Default "300s/300000ms"
Example: "2020-01-29T21:29:44.925Z"
typestringrequired

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"
Example: "SENDER_AMOUNT"
price_guaranteestringrequired

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"
Example: "FIRM"
sender_addressstringrequired

RippleNet account name and address of the sender, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "sf@rn.us.ca.san_francisco"
receiver_addressstringrequired

RippleNet account name and address of the receiver, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "sf_gbp@rn.us.ca.san_francisco"
amountnumberrequired

Amount to be sent or received, depending on the type value.

Example: 1
currency_codestringrequired

Currency code for the amount value.

Example: "USD"
currency_code_filterstringrequired

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.

Example: "EUR"
service_typestringrequired

Returns null.

quote_elementsArray of objectsrequired

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_idstring(uuid)required

Unique identifier for the quote element.

Example: "259189e7-cb14-42e7-99ef-375f3285e356"
quote_element_typestringrequired

Type of quote element.

  • TRANSFER represents the movement of funds between two accounts.
  • EXCHANGE represents the exchange of currencies between two accounts.
  • EXCHANGE_TRADE represents the exchange of fiat to digital currency on a digital exchange.
  • CRYPTO_TRANSFER represents the movement of digital funds between two digital exchanges.

Enum"TRANSFER""EXCHANGE""EXCHANGE_TRADE""CRYPTO_TRANSFER"
Example: "EXCHANGE"
quote_element_orderintegerrequired

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.

Example: 1
sender_addressstringrequired

RippleNet account name and address of the sender, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "sf@rn.us.ca.san_francisco"
receiver_addressstringrequired

RippleNet account name and address of the receiver, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

Example: "sf_gbp@rn.us.ca.san_francisco"
sending_amountnumberrequired

Amount the sender is sending.

Example: 1
receiving_amountnumberrequired

Amount the receiver is receiving.

Example: 355
sending_feenumberrequired

Fees the sender is charging. When quote_element_type is set to EXCHANGE, this field value is always set to 0.

Example: 0
receiving_feenumberrequired

Fees the receiver is charging. When quote_element_type is set to EXCHANGE, this field value is always set to 0.

Example: 0
sending_currency_codestring

Currency code of the sending amount. Included in quote elements with quote_element_type set to EXCHANGE.

Example: "USD"
receiving_currency_codestring

Currency code of the receiving amount. Included in quote elements with quote_element_type set to EXCHANGE.

Example: "GBP"
fx_rateobject

The details of an FX Rate for a quote or payment.

ratenumberrequired

Exchange rate between a base and counter currency.

Example: 3.25
base_currency_codestringrequired

Currency code of the base currency.

counter_currency_codestringrequired

Currency code of the counter currency.

typestringrequired

Order type of the exchange rate. Valid values are buy or sell.

transfer_currency_codestring

Currency code of the transfer. Included in quote elements with quote_element_type set to TRANSFER.

liquidity_warningstringrequired

Triggered when a quote causes an account to go below its minimum_allowed_balance. Otherwise, this field value is set to null.

payment_methodstring

Payout method for the quote.

Example: "LOCAL_RAILS"
payment_method_fieldsstring

JSON object containing payment method metadata.

Example: "{\"category_id\":\"bank\",\"required_originator_fields\":[{\"field_name\":\"sender_address\",\"field_label\":\"Sender address\"}]}"
payout_method_infoobject

Details about the payout method.

payout_method_namestring

Payout method for the quote.

Example: "Cash Payout"
payout_method_categorystring

Category of the payout method. 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"
Example: "BOOK_TRANSFER"
descriptionstring

User defined description of the payout method.

Example: "local rails"
estimated_time_to_creditstring

The estimated time to credit the beneficiary using this payout method.

Example: "3 days"
quote_errorsArray of objects
failed_pathArray of objectsrequired

Quote path that failed.

sourcestringrequired

RippleNet account name and address of the source account, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

destinationstringrequired

RippleNet account name and address of the destination account, in the format accountname@ripplenetaddress. For example, new_york@rn.us.ny.new_york.

source_currencystringrequired

Currency associated with the source account.

destination_currencystringrequired

Currency associated with the destination account.

account_liquidity_relationship_idstring(uuid)

Unique identifier for an account liquidity relationship.

Example: "480e3a6f-3bcd-48cd-9ce9-9d940aa3c9c6"
peer_liquidity_relationship_idstring(uuid)

Unique identifier for a peer liquidity relationship.

Example: "480e3a6f-3bcd-48cd-9ce9-9d940aa3c9c6"
error_originstring

RippleNet address of where the error originated. For example, rn.us.ny.new_york.

error_messagestringrequired

Message that describes the error.

Response
application/json
{ "quote_collection_id": "4711728c-cd35-49ec-96a5-72732b4333ec", "quotes": [ {} ], "quote_errors": [ {} ] }

Routing

Use this API operation to look up a payout method.

OperationMethodDescription
Get payout methodGETLook up a payout method.
Operations

Data requirements

Use this API operation to get the data required for making a payout using a specific currency.

OperationMethodDescription
Get data requirementsGETRetrieve data requirements.

Balances

Use this API operation to get your account balance information.

OperationMethodDescription
Get spendable balanceGETRetrieve account balances.
Operations