---
title: "Finalize payment"
method: POST
path: "/payments/{payment_id}/finalize"
tags: ["Non-orchestration payments"]
---

# Finalize payment

`POST /payments/{payment_id}/finalize`

Marks a payment with finalized sub-states that reflect what is happening to the payment while it is in the <code>EXECUTED</code> state. The receiving institution can make this request multiple times to provide a log of each subsequent sub-state until it is ready to make the [Complete payment](#operation/completePayment) request.

## Path parameters

- `payment_id` string, uuid, required

## Request body

- PaymentFinalizeRequest — Use this JSON request object to mark a payment with finalized sub-states that reflect what is happening to the payment while it is in the `EXECUTED` state.
  - `sub_state` string, required — Free-form string that describes a sub-state of the payment while it is in the `EXECUTED` state, for example, `FORWARDED` or `AWAITING_COLLECTION`. Displays as a `label` value in the `labels` array. Also displays as the `key` value in the receiving node's `user_info.executed` array.
  - `memo` string, required — Free-form details that describe the `sub_state` of the payment, for example, `with courier heading to payout location`. Displays as the `value` value in the receiving node's `user_info.executed` array.

## Response `200`

Returns a payment with sub-states represented as labels.

- Payment — 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.
  - `payment_id` string, uuid, required — Unique identifier of a payment.
  - `contract_hash` string, required — Hash of all values in the Contract object used to ensure immutability. Once a payment transitions to the `LOCKED` state, the values in this object cannot change.
  - `payment_state` 'ACCEPTED' | 'AWAITING_COLLECTION' | 'COMPLETED' | 'EXECUTED' | 'FAILED' | 'FORWARDED' | 'LOCK_DECLINED' | 'LOCKED' | 'PREPARED' | 'RETURNED' | 'SETTLEMENT_DECLINED', required — State of the payment. For details about payment states, see **Payment States** in the _RippleNet Developer Guide_.
  - `modified_at` string, date-time, required — Date and time at which the payment was last modified, as an ISO-8601 timestamp in UTC.
  - `contract` PaymentContract, required — Represents all immutable parts of a payment agreed upon by all participants as a part of the [Lock payment](#operation/lockPayment) flow. Once a payment transitions to the `LOCKED` state, the values in this object cannot change.
    - `sender_end_to_end_id` string, required — ID that the sender can specify. Persisted on all RippleNet instances that participate in the payment.
    - `created_at` string, date-time, required — Date and time at which this payment contract was created, as an ISO-8601 timestamp in UTC.
    - `expires_at` string, date-time, required — Date and time after which this payment contract expires, as an ISO-8601 timestamp in UTC.
    - `quote` Quote, required — JSON response object that represents a quote for a proposed payment or return payment.
      - `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.
    - `fee_info` FeeInfo — Itemized list of fees charged by each node.
      - `nodes` object, required — Fees charged by each node participating in the payment.
      - `total_fees` TotalFees[], required — Total fees charged in the payment, separated by currency.
        - `total_fee` number, required — total value of fee
        - `fee_currency` string, required — currency of the fee charged
  - `ripplenet_info` RippleNetInfo[] — Application-provided data explaining actions taken by RippleNet applications.
    - `node_address` string, required — RippleNet address of the node from which the RippleNetInfo originated.
    - `settlement_declined` RippleNetInfoEntry[], required — If applicable, provides an array of RippleNetInfoEntry's explaining transitions into the `SETTLEMENT_DECLINED` state
      - `info` string — Information explaining the action taken by a RippleNet application. Could be a RippleNet error code, or a written explanation of the action taken
      - `created_at` string, date-time — The DateTime that this quote was created, as an ISO-8601 timestamp in UTC.
  - `execution_condition` string, required — 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.
  - `crypto_transaction_id` string, required — Unique identifier of the crypto transaction associated with this payment.
  - `validator` string, required — Address of the validator that validated the payment.
  - `payment_type` 'REGULAR' | 'RETURN', required — Payment type.
  - `returns_payment_with_id` string, uuid, required — If the `payment_type` is `RETURN`, provides the payment ID of the original payment that this payment returns. Otherwise, this field value is set to `null`.
  - `returned_by_payment_with_id` string, uuid, required — If the `payment_type` is `REGULAR` and the payment has an associated return payment, provides the payment ID of the return payment. Otherwise, this field value is set to `null`.
  - `execution_results` ExecutionResult[], required — 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_id` string, uuid, required — Unique identifier for this payment result.
    - `execution_timestamp` string, date-time, required — Date and time at which this portion of the payment was executed, as an ISO-8601 timestamp in UTC.
    - `execution_result_type` 'TRANSFER' | 'EXCHANGE' | 'EXCHANGE_TRADE' | 'CRYPTO_TRANSFER', required — 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>
    - `execution_result_order` integer, required — 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` 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.
    - `receiving_fee` number, required — Fees the receiver is charging.
    - `sending_currency_code` string — Currency code of the sending amount. Included in execution results with `execution_result_type` set to `EXCHANGE`.
    - `receiving_currency_code` string — Currency of the receiving amount. Included in execution results with `execution_result_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 of the transfer. Returned in execution results with `execute_result_type` set to `TRANSFER`.
    - `intermediary_delta` number — 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` string — 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` number — 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` string — Hash representing the unique identifier for the transfer of funds in the XRP ledger.
    - `venue_id` string — The id from an exchange associated with a transaction involving an exchange account.
    - `fiat_adjusted_value` number — Represents the delta between quoted and received executed amounts, for exchange trades.
    - `odl_payment_id` string — Payment ID in On-Demand Liquidity (ODL) for an executed ODL payment containing the transaction represented by this execution result.
  - `liquidation_execution_results` ExecutionResult[] — Represents the actual movement of funds in a payment as part of liquidation of a Wallet Receive payment.
    - `execution_result_id` string, uuid, required — Unique identifier for this payment result.
    - `execution_timestamp` string, date-time, required — Date and time at which this portion of the payment was executed, as an ISO-8601 timestamp in UTC.
    - `execution_result_type` 'TRANSFER' | 'EXCHANGE' | 'EXCHANGE_TRADE' | 'CRYPTO_TRANSFER', required — 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>
    - `execution_result_order` integer, required — 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` 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.
    - `receiving_fee` number, required — Fees the receiver is charging.
    - `sending_currency_code` string — Currency code of the sending amount. Included in execution results with `execution_result_type` set to `EXCHANGE`.
    - `receiving_currency_code` string — Currency of the receiving amount. Included in execution results with `execution_result_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 of the transfer. Returned in execution results with `execute_result_type` set to `TRANSFER`.
    - `intermediary_delta` number — 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` string — 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` number — 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` string — Hash representing the unique identifier for the transfer of funds in the XRP ledger.
    - `venue_id` string — The id from an exchange associated with a transaction involving an exchange account.
    - `fiat_adjusted_value` number — Represents the delta between quoted and received executed amounts, for exchange trades.
    - `odl_payment_id` string — Payment ID in On-Demand Liquidity (ODL) for an executed ODL payment containing the transaction represented by this execution result.
  - `liquidation_details` LiquidationDetails — Payment liquidation details
    - `id` string, uuid — Liquidation ID, unique to the liquidation process of this payment
    - `status` string — Liquidation status
    - `failure_reason` string — Reason behind failure of the liquidation, only applicable if the status is failure
    - `failure_count` integer — Number of times the liquidation failed. Irrelevant if status is successful.
  - `push_forward_execution_results` ExecutionResult[] — Represents the movement of funds after an On-Demand Liquidity payment fails at intermediary transfer or destination exchange.
    - `execution_result_id` string, uuid, required — Unique identifier for this payment result.
    - `execution_timestamp` string, date-time, required — Date and time at which this portion of the payment was executed, as an ISO-8601 timestamp in UTC.
    - `execution_result_type` 'TRANSFER' | 'EXCHANGE' | 'EXCHANGE_TRADE' | 'CRYPTO_TRANSFER', required — 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>
    - `execution_result_order` integer, required — 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` 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.
    - `receiving_fee` number, required — Fees the receiver is charging.
    - `sending_currency_code` string — Currency code of the sending amount. Included in execution results with `execution_result_type` set to `EXCHANGE`.
    - `receiving_currency_code` string — Currency of the receiving amount. Included in execution results with `execution_result_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 of the transfer. Returned in execution results with `execute_result_type` set to `TRANSFER`.
    - `intermediary_delta` number — 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` string — 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` number — 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` string — Hash representing the unique identifier for the transfer of funds in the XRP ledger.
    - `venue_id` string — The id from an exchange associated with a transaction involving an exchange account.
    - `fiat_adjusted_value` number — Represents the delta between quoted and received executed amounts, for exchange trades.
    - `odl_payment_id` string — Payment ID in On-Demand Liquidity (ODL) for an executed ODL payment containing the transaction represented by this execution result.
  - `accepted_at` string, date-time, required — Date and time at which the payment was last accepted, as an ISO-8601 timestamp in UTC.
  - `locked_at` string, date-time — Date and time at which the payment was last locked, as an ISO-8601 timestamp in UTC.
  - `executed_at` string, date-time — Date and time at which the payment was last executed, as an ISO-8601 timestamp in UTC.
  - `completed_at` string, date-time — Date and time at which the payment was last completed, as an ISO-8601 timestamp in UTC.
  - `returned_at` string, date-time — Date and time at which the payment was returned, as an ISO-8601 timestamp in UTC.
  - `internal_info` InternalInfo, required — 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_role` 'SENDING' | 'RECEIVING' | 'INTERMEDIARY' | 'INTERNAL', required — 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.
    - `labels` Label[], required — 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 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.
      - `label` string — Label to be attached
    - `internal_id` string, required — 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_info` UserInfo[], required — User-provided data with arbitrary key/value pairs.
    - `node_address` string, required — RippleNet address of the node that provided the user information.
    - `accepted` UserInfoEntry[], required — User information optionally provided when accepting the payment.
      - `json` object, required — User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.
      - `created_at` string, date-time, required — Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.
      - `subState` string — If provided, this parameter descibes payment state more granularly.
    - `locked` UserInfoEntry[], required — User information optionally provided when locking the payment. For more information, see [User Info Entry Object][user-info-entry].
      - `json` object, required — User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.
      - `created_at` string, date-time, required — Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.
      - `subState` string — If provided, this parameter descibes payment state more granularly.
    - `lock_declined` UserInfoEntry[], required — User information optionally provided when declining to lock the payment. For more information, see [User Info Entry Object][user-info-entry].
      - `json` object, required — User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.
      - `created_at` string, date-time, required — Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.
      - `subState` string — If provided, this parameter descibes payment state more granularly.
    - `retry_accept` UserInfoEntry[], required — User information optionally provided when retrying acceptance of the payment. For more information, see [User Info Entry Object][user-info-entry].
      - `json` object, required — User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.
      - `created_at` string, date-time, required — Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.
      - `subState` string — If provided, this parameter descibes payment state more granularly.
    - `retry_settlement` UserInfoEntry[], required — User information optionally provided when retrying settlement of the payment. For more information, see [User Info Entry Object][user-info-entry].
      - `json` object, required — User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.
      - `created_at` string, date-time, required — Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.
      - `subState` string — If provided, this parameter descibes payment state more granularly.
    - `settlement` UserInfoEntry[], required — User information optionally provided when settling the payment. For more information, see [User Info Entry Object][user-info-entry].
      - `json` object, required — User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.
      - `created_at` string, date-time, required — Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.
      - `subState` string — If provided, this parameter descibes payment state more granularly.
    - `settlement_declined` UserInfoEntry[], required — User information optionally provided when settlement for the payment is declined. For more information, see [User Info Entry Object][user-info-entry].
      - `json` object, required — User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.
      - `created_at` string, date-time, required — Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.
      - `subState` string — If provided, this parameter descibes payment state more granularly.
    - `failed` UserInfoEntry[], required — User information optionally provided when failing the payment. For more information, see [User Info Entry Object][user-info-entry].
      - `json` object, required — User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.
      - `created_at` string, date-time, required — Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.
      - `subState` string — If provided, this parameter descibes payment state more granularly.
    - `executed` UserInfoEntry[], required — 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].
      - `json` object, required — User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.
      - `created_at` string, date-time, required — Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.
      - `subState` string — If provided, this parameter descibes payment state more granularly.
    - `completed` UserInfoEntry[], required — User information optionally provided when completing the payment. For more information, see [User Info Entry Object][user-info-entry].
      - `json` object, required — User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.
      - `created_at` string, date-time, required — Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.
      - `subState` string — If provided, this parameter descibes payment state more granularly.
    - `forwarded` UserInfoEntry[], required — If applicable, user information optionally provided when forwarding the payment. For more information, see [User Info Entry Object][user-info-entry].
      - `json` object, required — User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.
      - `created_at` string, date-time, required — Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.
      - `subState` string — If provided, this parameter descibes payment state more granularly.
    - `returned` UserInfoEntry[], required — If applicable, information optionally provided using `return_reasons` when returning the payment. For more information, see [User Info Entry Object][user-info-entry].
      - `json` object, required — User information provided across the payment lifecycle stored as arbitrary JSON key/value pairs.
      - `created_at` string, date-time, required — Date and time at which the user information was added to the payment, as an ISO-8601 timestamp in UTC.
      - `subState` string — If provided, this parameter descibes payment state more granularly.

## Other responses

- `400` — Bad request.
- `404` — Payment not found.

---

[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/versions/7843f07ca150/schema)
