# Building a v2 payment request body

When you call the `POST /v2/payments` [operation](/products/payments-direct-2/v2025.11/api-docs/payments-direct-api/payments-direct-2-api/payments/createpayment) to create a payment, you must include a request body containing required payment information, such as the beneficiary identity and the purpose of the payment.

The following sections walk you through building an example payment request body.

## The payment request body

The payment request body accepts key-value pairs in the JSON format.

To successfully create a payment, you must include all required properties depending on the type of payment you want to make:

* Always specify the `quoteId` and `beneficiaryIdentityId` properties.
* If you're making a payment on behalf of a business, include the `originatorIdentityId` property.
* Optionally, you can include the `internalId`, `purposeCode`, `sourceOfCash`, `paymentMemo`, and `paymentLabels` properties.


The following tabs show sample payment request body for each type of payment:


```json
{
  "quoteId": "7ea3399c-1234-5678-8d8f-d320ea406630",
  "beneficiaryIdentityId": "11111111-abcd-2222-efgh-333333333333",
  "sourceOfCash": "SVGS",
  "purposeCode": "OTHR",
  "paymentMemo": "ORDER 2025-09-001 PAYMENT"
}
```


```json
{
  "quoteId": "7ea3399c-1234-5678-8d8f-d320ea406630",
  "originatorIdentityId": "12345678-abcd-1234-abcd-123456789123",
  "beneficiaryIdentityId": "11111111-abcd-2222-efgh-333333333333",
  "sourceOfCash": "SVGS",
  "purposeCode": "OTHR",
  "paymentMemo": "ORDER 2025-09-001 PAYMENT"
}
```

The following sections provide more details about each property.

### quoteId

This property identifies the quote that you previously fetched and want to execute to send the payment.

The response from the `POST /v2/quotes/quote-collection` operation contains a quote object that's uniquely identified by its `quoteId` value. This is the value you must specify in the request body of your `POST /v2/payments` call.

### beneficiaryIdentityId

This property identifies the beneficiary of this payment. The value of this property is the `identityId` of an existing beneficiary.

To get a beneficiary's identity ID, call the `GET /v2/identities` [operation](/products/payments-direct-2/v2025.11/api-docs/payments-direct-api/payments-direct-2-api/identitiesv2/getidentitiesv2) with the query parameter `identityType` set to `BENEFICIARY`. You can get the beneficiary's `identityId` from the response.

### originatorIdentityId

This property identifies the party that originates the payment. The value of this property is the `identityId` of an existing originator.

Note
You only need to provide the `originatorIdentityId` if you are originating a payment on behalf of another business. For example, if you're paying a business or an individual on behalf of your customer, then provide the `originatorIdentityId` that contains identifying information about your customer. You don't need to include this property if you are the payment originator.

To get an existing originator's `identityId`, call the `GET /v2/identities` [operation](/products/payments-direct-2/v2025.11/api-docs/payments-direct-api/payments-direct-2-api/identitiesv2/getidentitiesv2) with the query parameter `identityType` set to `ORIGINATOR`. You can get the originator's `identityId` from the response.

### sourceOfCash

This property indicates the source of funds for this payment. This value must be equal to one of the known values in the table below.

details
summary
Expand to see the list of known values for sourceOfCash
Known values for `sourceOfCash`

| Value | Description |
|  --- | --- |
| `ALMY` | Alimony |
| `CASH` | Cash Proceeds |
| `COMP` | Compensation |
| `EMIN` | Employee Income |
| `GIFT` | Gift |
| `INHE` | Inheritance |
| `INLQ` | Insurance Premium Liquidation |
| `PACA` | Paid Up Capital |
| `REDM` | Redemption |
| `REPY` | Retirement Policy |
| `REST` | Real Estate Sale |
| `SALE` | Sale Of Goods |
| `SEAQ` | Sale Aquisition Corporation |
| `SELF` | Self Employment Income |
| `SVGS` | Savings |
| `WINS` | Winnings |


### internalId

An optional, sender-defined identifier for the payment (for example, an invoice number or internal reference). Maximum length is 36 characters. Use this value to correlate payments with your own records and to filter results when searching payments.

### purposeCode

This property indicates the purpose of the payment.

Note
Reach out to your Ripple liaison to get the value for your transaction.

### paymentMemo

An optional, transaction-specific memo forwarded with the payment for beneficiary reconciliation. Key behaviors:

- Validation rules (allowed characters, maximum length) vary by corridor. Consult the data requirements for your payout corridor.
- If omitted, Ripple may generate a memo automatically.
- The memo is not stored as PII but is persisted on the payment object and forwarded to compliance and payout partners.
- Where possible, the memo is delivered to the beneficiary's credit record, but delivery is not guaranteed for all corridors and payout partners.


### paymentLabels

An optional array of application-defined strings for grouping and categorizing payments, for example, campaign IDs, workflow tags, or batch identifiers. Maximum of 10 labels, each up to 100 characters.

Labels are mutable over the payment's lifetime and can be added or removed using `PATCH /v2/payments/{paymentId}/labels`.