---
title: "Create orchestration payment"
method: POST
path: "/v4/orchestration/payment"
tags: ["Orchestration payments"]
---

# Create orchestration payment

`POST /v4/orchestration/payment`

Creates an orchestration payment.

## Request body

- OrchestrationPaymentRequest — JSON request object that represents an orchestration payment.
  - `sender_end_to_end_id` string, required — Unique ID that the sender can specify. Persisted on all instances that participate in the payment.
  - `internal_id` string — **[Sender only]** Internal ID that the sender can optionally specify. Only visible to the sender. Only the sending RippleNet instance stores this ID.
  - `orchestration_template` string — Parameter for the orchestration template name. If you don't specify a template name, a default template will be picked.
  - `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. **Example**: `USD`
  - `custom_fee` number — Custom fee for the sending account. Setting this field overrides all fees configured on the sender's RippleNet instance.
  - `custom_rate` PaymentCustomRateRequest — Custom rate that the return payment quotes must use.
    - `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` string, required — Order type for the exchange rate. Valid values are `sell` or `buy`.
  - `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 — Use this field, when using ODL, to indicate the type of fees to apply. When testing, set `"payment_method": "none"` to ensure funds remain at the destination exchange and are **_not_** paid out to a local rail.
  - `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.
  - `user_info` object, required — Provide one or more arbitrary key/value pairs.
  - `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.
  - `quote_filter_types` string[] — Filter on a type of quote.

## Response `201`

Successfully created orchestration payment.

- OrchestrationPaymentSubmitResponse — JSON response object that represents an orchestration payment query ID.
  - `sender_end_to_end_id` string — Sender end-to-end ID.

---

[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)
