openapi: 3.0.0
info:
  description: >-
    The {% $env.PUBLIC_VAR_RNSERVER %} API provides you the ability to develop
    custom applications to manage or interact with your RippleNet instance.


    Check out the [best practices](../../ripplenet/best-practices/) and
    [tutorials](../../ripplenet/tutorials/).


    ### Authentication


    All API operations require a bearer access token for your target
    environment.<br>Learn how to [request the access
    token](../best-practices/authentication/#request-the-access-token).


    ### API environments


    The RippleNet Server API creates a dynamic `[domainPrefix]` that consists of
    `{tenant}.{environment}`.


    **Note**: This example uses `aperture` as the tenant. Your tenant ID is
    different.


    | Environment  | Domaing Prefix | Domain | Base URL |

    | --- | --- | --- | --- |

    | Test | `aperture.test` | `ripplexcurrent.com`|
    `https://aperture.test.ripplexcurrent.com` |

    | UAT | `aperture.uat` | `ripplexcurrent.com`|
    `https://aperture.uat.ripplexcurrent.com` |

    | Production | `aperture.prod` | `ripplexcurrent.com`|
    `https://aperture.prod.ripplexcurrent.com` |
  version: 4.0.0
  title: RippleNet Server API
security:
  - Bearer: []
tags:
  - name: Auditing
    description: >

      Use these operations to audit your accounts.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Get
      audits](/products/payments-odl/api-docs/ripplenet/reference/openapi/auditing/getaudits)
      | GET   | Gets an audit trail of user actions and configuration changes
      (to accounts, fees, and rates) on a RippleNet instance. |

      | [Get event trail for
      payment](/products/payments-odl/api-docs/ripplenet/reference/openapi/auditing/geteventtrailforpayment) 
      | GET   | Gets an audit trail of a payment's state changes on a local
      RippleNet instance. |
  - name: Balances and statements
    description: >

      Use these operations to view balances and statements for a ledger.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Get
      balances](/products/payments-odl/api-docs/ripplenet/reference/openapi/balances-and-statements/getbalances) 
      | GET   | Get balances for local and remote accounts owned by a RippleNet
      address. |

      | [Get ledger
      balances](/products/payments-odl/api-docs/ripplenet/reference/openapi/balances-and-statements/getledgerbalances) 
      | GET   | Get balances for ledger owned by a RippleNet address. |

      | [Get
      statement](/products/payments-odl/api-docs/ripplenet/reference/openapi/balances-and-statements/getstatement) 
      | GET   | Gets a statement for an account that lists payments and
      transfers that impacted the account's balance during a specified date-time
      range. |

      | [Get statement by external account
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/balances-and-statements/getstatementbyexternalaccountid)  
      | GET   | Gets a statement for an account that lists payments and
      transfers that impacted the account's balance during a specified date-time
      range. |

      | [Get ledger account
      statement](/products/payments-odl/api-docs/ripplenet/reference/openapi/balances-and-statements/getledgeraccountstatement) 
      | GET   | Get statement for a specified Ledger Account |
  - name: Beneficiary confirmation
    description: >

      Use these operations to perform beneficiary confirmations.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Get account lookup by
      status](/products/payments-odl/api-docs/ripplenet/reference/openapi/beneficiary-confirmation/getaccountlookupbystatus) 
      | GET    | Get Account Lookup entities by status and other filters. |

      | [Initiate account
      lookup](/products/payments-odl/api-docs/ripplenet/reference/openapi/beneficiary-confirmation/initiateaccountlookup)
      | POST   | Creates an Account Lookup request to validate a beneficiary's
      account details before sending a payment. |

      | [Complete account
      lookup](/products/payments-odl/api-docs/ripplenet/reference/openapi/beneficiary-confirmation/completeaccountlookup)
      | POST   | Posts an Account Lookup response to validate a beneficiary's
      account details before payment. |

      | [Get account lookup by
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/beneficiary-confirmation/getaccountlookupbyid)
      | GET    | Gets an Account Lookup entity for its `account_lookup_id`
      value. |
  - name: Diagnostics
    description: >

      Use these operations to view RippleNet Server health.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Check
      health](/products/payments-odl/api-docs/ripplenet/reference/openapi/diagnostics/checkhealth)      
      | GET | Gets the health status of the xCurrent server. |

      | [Check
      heartbeat](/products/payments-odl/api-docs/ripplenet/reference/openapi/diagnostics/checkheartbeat)
      | GET | Gets the health status of the xCurrent server's peers.  |
  - name: Exchange transfers
    description: >

      Use these operations to manage exchange transfers.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Get exchange
      transfers](/products/payments-odl/api-docs/ripplenet/reference/openapi/exchange-transfers/getexchangetransfers) 
      | GET   | List all exchange transfers. |

      | [Execute exchange
      transfer](/products/payments-odl/api-docs/ripplenet/reference/openapi/exchange-transfers/executeexchangetransfer)
      | POST  | Execute an exchange transfer to move funds from one of your
      accounts in one currency, to another one of your accounts in another
      currency.   |

      | [Get exchange transfer quote
      ](/products/payments-odl/api-docs/ripplenet/reference/openapi/exchange-transfers/getexchangetransferquote) 
      | POST  | Requests a quote for an exchange transfer. |

      | [Complete exchange transfer
      ](/products/payments-odl/api-docs/ripplenet/reference/openapi/exchange-transfers/completeexchangetransfer)
      | POST  | Updates the status of an exchange transfer to `COMPLETED`. Make
      this request once the exchange transfer has been made on both the ledger
      and on internal systems. |

      | [Get exchange transfer by ID
      ](/products/payments-odl/api-docs/ripplenet/reference/openapi/exchange-transfers/getexchangetransferbyid) 
      | GET   | Gets an exchange transfer by ID. |
  - name: Fees
    description: >

      Use these operations to configure fees.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Get
      fees](/products/payments-odl/api-docs/ripplenet/reference/openapi/fees/getfees)          
      | GET       | List all fees. |

      | [Create
      fee](/products/payments-odl/api-docs/ripplenet/reference/openapi/fees/createfee)      
      | POST      | Creates a fee.   |

      | [Get fee by ID
      ](/products/payments-odl/api-docs/ripplenet/reference/openapi/fees/getfeebyid) 
      | GET       | Gets a fee by ID. |

      | [Update fee
      ](/products/payments-odl/api-docs/ripplenet/reference/openapi/fees/updatefee)     
      | PUT       | Updates an existing fee. |

      | [Delete fee
      ](/products/payments-odl/api-docs/ripplenet/reference/openapi/fees/deletefee)     
      | DELETE    | Deletes a fee. Once deleted, a fee cannot be accessed. |
  - name: Non-orchestration payments
    description: ' '
  - name: Orchestration payments
    description: ' '
  - name: Payment expiration
    description: >

      Use these operations to manage payment expirations.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Get payment expiry by
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/payment-expiration/getpaymentexpirybyid) 
      | GET    | Gets the time to live (ttl) of a payment expiry in seconds. |

      | [Update payment
      expiry](/products/payments-odl/api-docs/ripplenet/reference/openapi/payment-expiration/updatepaymentexpiry)
      | PUT    | Updates the time to live (ttl) of a payment expiry in seconds.
      |

      | [Delete payment
      expiry](/products/payments-odl/api-docs/ripplenet/reference/openapi/payment-expiration/deletepaymentexpiry) 
      | DELETE | Deletes a payment expiry. |

      | [Get payment
      expiries](/products/payments-odl/api-docs/ripplenet/reference/openapi/payment-expiration/getpaymentexpiries)       
      | GET    | Returns all configured payment expiries. |

      | [Create payment
      expiry](/products/payments-odl/api-docs/ripplenet/reference/openapi/payment-expiration/createpaymentexpiry)
      | POST   | Creates a payment expiration window, or time to live (ttl), in
      seconds. |
  - name: Payout method
    description: >

      Payout Method operations let receivers create and manage payout methods.
      Senders can generate quotes based on these receiver payout methods.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Create payout
      method](/products/payments-odl/api-docs/ripplenet/reference/openapi/payout-method/createpayoutmethod)       
      | POST      | Creates a payout method. For example, `LOCAL_RAILS`. |

      | [Get payout
      methods](/products/payments-odl/api-docs/ripplenet/reference/openapi/payout-method/getpayoutmethods)           
      | GET       | Returns a list of payout methods created by a receiving
      partner. |

      | [Get payout method by
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/payout-method/getpayoutmethodbyid)   
      | GET       | Returns a payout method by its ID. |

      | [Update payout
      method](/products/payments-odl/api-docs/ripplenet/reference/openapi/payout-method/updatepayoutmethod)       
      | PUT       | Updates a payout method. |

      | [Delete payout
      method](/products/payments-odl/api-docs/ripplenet/reference/openapi/payout-method/deletepayoutmethod)       
      | DELETE    | Deletes a payout method. |

      | [Get all
      categories](/products/payments-odl/api-docs/ripplenet/reference/openapi/payout-method/getallcategories) 
      | GET       | Returns all the payout method categories. |
  - name: Platform accounts
    description: >

      Use these operations to configure your RippleNet platform accounts.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Create
      platform](/products/payments-odl/api-docs/ripplenet/reference/openapi/platform-accounts/createplatform)                                        
      | POST      | Creates a RippleNet platform that represents a financial
      entity that holds accounts in the real world. For example, a Bank,
      Exchange, or Wallet provider.  |

      | [Get all
      platforms](/products/payments-odl/api-docs/ripplenet/reference/openapi/platform-accounts/getallplatforms)                                         
      | GET       | Returns a list of all active RippleNet platforms. |

      | [Get platform by platform
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/platform-accounts/getplatformbyplatformid)                            
      | GET       | Get a RippleNet platform by its platform ID. |

      | [Update
      platform](/products/payments-odl/api-docs/ripplenet/reference/openapi/platform-accounts/updateplatform)                                        
      | PUT       | Updates a RippleNet platform. |

      | [Delete platform by platform
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/platform-accounts/deleteplatformbyplatformid)                 
      | DELETE    | Deletes a RippleNet platform by its platform ID. |

      | [Create platform
      account](/products/payments-odl/api-docs/ripplenet/reference/openapi/platform-accounts/createplatformaccount)                         
      | POST      | Creates a RippleNet platform account, which represents a
      real-world account owned by a financial entity. |

      | [Get platform
      accounts](/products/payments-odl/api-docs/ripplenet/reference/openapi/platform-accounts/getplatformaccounts)                             
      | GET       | Returns a paged list of all active RippleNet platform
      accounts. |

      | [Get platform account by platform account
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/platform-accounts/getplatformaccountbyplatformaccountid)      
      | GET       | Gets a RippleNet platform account by its platform account
      ID. |

      | [Update platform
      account](/products/payments-odl/api-docs/ripplenet/reference/openapi/platform-accounts/updateplatformaccount)                         
      | PUT       | Updates a RippleNet platform account. |

      | [Delete platform account by platform account
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/platform-accounts/deleteplatformaccountbyplatformaccountid)
      | DELETE    | Deletes a RippleNet platform account by its platform account
      ID. |

      | [Get platform accounts
      balances](/products/payments-odl/api-docs/ripplenet/reference/openapi/platform-accounts/getplatformaccountsbalances)            
      | GET       | Get balances for local Platform Accounts |

      | [Get platform account
      statement](/products/payments-odl/api-docs/ripplenet/reference/openapi/platform-accounts/getplatformaccountstatement)            
      | GET       | Get statement for a specified Platform Account |
  - name: Pool accounts
    description: >

      Use these operations to configure your RippleNet pool accounts.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Get all pool
      accounts](/products/payments-odl/api-docs/ripplenet/reference/openapi/pool-accounts/getallpoolaccounts)                              
      | GET    | Returns a list of all pool accounts on a RippleNet node. |

      | [Get pool account by pool account
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/pool-accounts/getpoolaccountbypoolaccountid)              
      | GET    | Get a pool account by its pool account ID. |
  - name: Quote expiration
    description: >+

      Use these operations to manage quote expirations.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [List quote
      expiries](/products/payments-odl/api-docs/ripplenet/reference/openapi/quote-expiration/getquoteexpiries)    
      | GET        | Returns all configured quote expiries. |

      | [Create quote
      expiry](/products/payments-odl/api-docs/ripplenet/reference/openapi/quote-expiration/createquoteexpiry)   
      | POST       | Creates a quote expiration window, or time to live (ttl),
      in seconds. |

      | [Get quote
      expiry](//products/payments-odl/api-docs/ripplenet/reference/openapi/quote-expiration/getquoteexpirybyid)     
      | GET        | Gets the configured quote expiration window, or time to
      live (ttl),  in seconds. |

      | [Update quote
      expiry](/products/payments-odl/api-docs/ripplenet/reference/openapi/quote-expiration/updatequoteexpiry)   
      | PUT        | Sets a quote expiration window, or time to live (ttl), in
      seconds. |

  - name: Quotes
    description: >

      Use these operations to manage your quotes.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Accept
      quote](/products/payments-odl/api-docs/ripplenet/reference/openapi/quotes/acceptquote)                           
      | POST | Accepts a quote ID to start the payment process. |

      | [Get
      quotes](/products/payments-odl/api-docs/ripplenet/reference/openapi/quotes/getquotes)                               
      | GET  | Gets a list of quotes. |

      | [Get quote by quote
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/quotes/getquotebyquoteid)                  
      | GET  | Gets a quote by ID. |

      | [Create quote
      collection](/products/payments-odl/api-docs/ripplenet/reference/openapi/quotes/createquotecollection)      
      | POST | Creates a collection of quotes for a proposed payment. |

      | [Get quote collection by
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/quotes/getquotecollectionbyid)  
      | GET  | Gets a quote collection that was created for a proposed payment.
      |
  - name: Rates
    description: >

      Use these operations to manage your rates.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Get
      rates](/products/payments-odl/api-docs/ripplenet/reference/openapi/rates/getrates)        
      | GET    | Gets a list of configured exchange rates. |

      | [Create
      rate](/products/payments-odl/api-docs/ripplenet/reference/openapi/rates/createrate)    
      | POST   | Creates an exchange rate for a specified currency pair. |

      | [Get rate by
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/rates/getratebyid)
      | GET    | Gets a configured exchange rate by ID. |

      | [Update
      rate](/products/payments-odl/api-docs/ripplenet/reference/openapi/rates/updaterate)    
      | PUT    | Updates an existing exchange rate. |

      | [Delete
      rate](/products/payments-odl/api-docs/ripplenet/reference/openapi/rates/deleterate)    
      | DELETE | Deletes an exchange rate. Once deleted, an exchange rate cannot
      be accessed. |
  - name: Request for payment
    description: >

      Use these operations to interact with your payment requests.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Get requests for
      payment](/products/payments-odl/api-docs/ripplenet/reference/openapi/request-for-payment/getrequestsforpayment)        
      | GET   | Gets requests for payment that match the query parameters. |

      | [Send request for
      payment](/products/payments-odl/api-docs/ripplenet/reference/openapi/request-for-payment/sendrequestforpayment)        
      | POST  | Sends a new request for payment. |

      | [Get request for payment by
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/request-for-payment/getrequestforpaymentbyid)
      | GET   | Gets a request for payment by request for payment ID. |

      | [Accept request for
      payment](/products/payments-odl/api-docs/ripplenet/reference/openapi/request-for-payment/acceptrequestforpayment)    
      | POST  | Accepts a request for payment. |

      | [Fail request for
      payment](/products/payments-odl/api-docs/ripplenet/reference/openapi/request-for-payment/failrequestforpayment)        
      | POST  | Fails a request for payment. |
  - name: Transfers
    description: >

      Use these operations to manage your transfers.


      | Operation | Method | Description |

      | -- | -- | -- |

      | [Get
      transfers](/products/payments-odl/api-docs/ripplenet/reference/openapi/transfers/gettransfers)                
      | GET    | Gets a list of transfers. |

      | [Get transfer
      estimate](/products/payments-odl/api-docs/ripplenet/reference/openapi/transfers/gettransferestimate) 
      | GET    | Get an estimate of the fee to make an "outbound" transfer from
      an exchange (connected to xRapid) to an another account outside of
      RippleNet (such as a bank account).  |

      | [Get transfer by
      ID](/products/payments-odl/api-docs/ripplenet/reference/openapi/transfers/gettransferbyid)        
      | GET    | Gets a transfer by ID. |

      | [Execute
      transfer](/products/payments-odl/api-docs/ripplenet/reference/openapi/transfers/executetransfer)          
      | POST   | Transfers funds between accounts.  |

      | [Complete
      transfer](/products/payments-odl/api-docs/ripplenet/reference/openapi/transfers/completetransfer)        
      | POST   | Updates the state of a transfer to `COMPLETED`. |

      | [Add transfer
      labels](/products/payments-odl/api-docs/ripplenet/reference/openapi/transfers/addtransferlabels)      
      | PUT    | Adds a list of labels to the transfer. To retrieve transfers by
      label, see [Get
      transfers](/products/payments-odl/api-docs/ripplenet/reference/openapi/transfers/gettransfers)
      |

      | [Delete transfer
      labels](/products/payments-odl/api-docs/ripplenet/reference/openapi/transfers/deletetransferlabels)
      | DELETE | Deletes one or more existing labels from the transfer. |
paths:
  /audit:
    get:
      tags:
        - Auditing
      summary: Get audits
      description: >-
        Gets an audit trail of user actions and configuration changes (to
        accounts, fees, and rates) on a RippleNet instance.
      operationId: getAudits
      parameters:
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).
            The value is zero-based, where `0` represents the first page.<br/>

            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of payments to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
        - name: before
          in: query
          description: >-
            Filters for audit events where the `range_field` value is before
            this specified time stamp (not inclusive). You can also specify
            `after` to create a time range between `after` and `before`. If
            before is specified, `range_field` must also be specified.
          required: false
          schema:
            type: string
        - name: after
          in: query
          description: >-
            Filters for audit events where the `range_field` value is after this
            specified time stamp (not inclusive). You can also specify `before`
            to create a time range between `after` and `before`. If `after` is
            specified, `range_field` must also be specified.
          required: false
          schema:
            type: string
        - name: range_field
          in: query
          description: >-
            Filters payments before/after/between created and modified
            timestamps (`CREATED_AT`, `MODIFIED_AT`). For example, if you
            specify `range_field`=`CREATED_AT`, you would specify a timestamp
            (in the 24-character ISO 8601 YYYY-MM-DDTHH:mm:ss.sssZ format used
            in payment objects) as the value for `before` and/or `after` to
            fetch audit events before, after, or between the specified time
            range(s) (not inclusive). If `range_field` is specified, `before`
            and/or `after` must also be specified.
          required: false
          schema:
            type: string
        - name: actor
          in: query
          description: Filters for audit events based upon actor.
          required: false
          schema:
            type: string
        - name: action
          in: query
          description: Filters for audit events based upon action.
          required: false
          schema:
            type: string
        - name: level
          in: query
          description: Filters for audit events based upon audit level.
          required: false
          schema:
            type: string
            enum:
              - INFO
              - WARN
              - ERROR
        - name: domain
          in: query
          description: Filters for audit events based upon audit domain.
          required: false
          schema:
            type: string
            enum:
              - USER_MANAGEMENT
              - CONFIG_MANAGEMENT
              - OTHER
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditEventResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /audit/payment/{id}:
    get:
      tags:
        - Auditing
      summary: Get event trail for payment
      description: >-
        Gets an audit trail of a payment's state changes on a local RippleNet
        instance.
      operationId: getEventTrailForPayment
      parameters:
        - name: id
          in: path
          description: Unique identifier of a payment.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Payment state change event trail.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EventTrailEvent'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /account_lookups:
    get:
      tags:
        - Beneficiary confirmation
      summary: Get account lookup by status
      description: >-
        Get Account Lookup entities by status and other filters. Status defaults
        to `REQUESTED`.
      operationId: getAccountLookupByStatus
      parameters:
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).
            The value is zero-based, where `0` represents the first page.<br/>

            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of objects to return per page
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
        - name: account_lookup_status
          in: query
          description: Account Lookup status
          required: false
          style: form
          explode: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/AccountLookupStatus'
            default:
              - REQUESTED
        - name: start-date
          in: query
          description: >-
            The lower bound of the date-time range you want to return account
            lookup for, as an ISO-8601 timestamp in UTC. For example,
            `2018-08-06T23:13:55.997Z`.
          required: false
          schema:
            type: string
        - name: end-date
          in: query
          description: >-
            The upper bound of the date-time range you want to return statement
            information for, as an ISO-8601 timestamp in UTC For example,
            `2018-08-06T23:15:13.218Z`.
          required: false
          schema:
            type: string
        - name: sort_field
          in: query
          description: Attribute for how to sort the results
          required: false
          schema:
            type: string
            enum:
              - CREATED_DATE
              - LAST_MODIFIED_DATE
            default: LAST_MODIFIED_DATE
        - name: sort_direction
          in: query
          description: Direction of sorted results.
          required: false
          schema:
            type: string
            enum:
              - ASC
              - DESC
            default: ASC
      responses:
        '200':
          description: Successfully returned response for Account Lookup
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountLookups'
        '400':
          description: Bad request problem
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Account Lookup Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '500':
          description: >-
            Server Error - No valid network path to receiver. Account Lookup is
            not supported by a participant in the network path.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /account_lookups/request:
    post:
      tags:
        - Beneficiary confirmation
      summary: Initiate account lookup
      description: >-
        Creates an Account Lookup request to validate a beneficiary's account
        details before sending a payment. Account lookups are not part of the
        payment flow and can be made at any time in the payment process.
      operationId: initiateAccountLookup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiateAccountLookupRequest'
        required: true
      responses:
        '200':
          description: Successfully returned Account Lookup response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountLookup'
        '400':
          description: Bad Request Problem.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '500':
          description: >-
            Server Error - No valid network path to receiver. Account Lookup is
            not supported by a participant in the network path.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /account_lookups/response:
    post:
      tags:
        - Beneficiary confirmation
      summary: Complete account lookup
      description: >-
        Posts an Account Lookup response to validate a beneficiary's account
        details before payment.
      operationId: completeAccountLookup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompleteAccountLookupRequest'
        required: true
      responses:
        '200':
          description: Successfully returns acknowledgement for Account Lookup response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountLookup'
        '400':
          description: Bad request problem
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Account Lookup Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '500':
          description: >-
            Server Error - No valid network path to receiver. Account Lookup is
            not supported by a participant in the network path.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /account_lookups/{account_lookup_id}:
    get:
      tags:
        - Beneficiary confirmation
      summary: Get account lookup by ID
      description: Gets an Account Lookup entity for its `account_lookup_id` value.
      operationId: getAccountLookupById
      parameters:
        - name: account_lookup_id
          in: path
          description: AccountLookupId
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully returned Account Lookup response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountLookup'
        '400':
          description: Bad request problem
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Account Lookup Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '500':
          description: >-
            Server Error - No valid network path to receiver. Account Lookup is
            not supported by a participant in the network path.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /config/fees:
    get:
      tags:
        - Fees
      summary: Get fees
      description: Gets a list of fees.
      operationId: getFees
      parameters:
        - name: page
          in: query
          description: >-
            Number of pages returned. Returns one page of results when set to
            `0`.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of objects returned per page.
          required: false
          schema:
            type: integer
            default: 10
      responses:
        '200':
          description: Successfully returns list of fees.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fees'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    post:
      tags:
        - Fees
      summary: Create fee
      description: Creates a fee.
      operationId: createFee
      requestBody:
        $ref: '#/components/requestBodies/FiatFeeRequest'
      responses:
        '200':
          description: Successfully created fee.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiatFee'
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /config/fees/{id}:
    get:
      tags:
        - Fees
      summary: Get fee by ID
      description: Gets a fee by ID.
      operationId: getFeeById
      parameters:
        - name: id
          in: path
          description: Provide the `feeId` of the fee you want to retrieve.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully retrieved fee.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiatFee'
        '404':
          description: Fee not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    put:
      tags:
        - Fees
      summary: Update fee
      description: Updates an existing fee.
      operationId: updateFee
      parameters:
        - name: id
          in: path
          description: Provide the `feeId` of the fee you want to update.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        $ref: '#/components/requestBodies/FiatFeeRequest'
      responses:
        '200':
          description: Successfully updated fee.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiatFee'
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    delete:
      tags:
        - Fees
      summary: Delete fee
      description: Deletes a fee. Once deleted, a fee cannot be accessed.
      operationId: deleteFee
      parameters:
        - name: id
          in: path
          description: Provide the `feeId` of the fee you want to delete.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully deleted fee.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /config/liquidation_config/{liquidation_config_id}:
    parameters:
      - in: path
        name: liquidation_config_id
        description: ID of the liquidation configuration you want to retrieve.
        required: true
        schema:
          type: string
          format: uuid
  /config/odl_flags_config/{odl_flag_config_id}:
    parameters:
      - in: path
        name: odl_flag_config_id
        description: ID of the odl flag configuration you want to retrieve.
        required: true
        schema:
          type: string
          format: uuid
  /config/payments/payment_expiries/{payment_expiry_id}:
    get:
      tags:
        - Payment expiration
      summary: Get payment expiry by ID
      description: Gets the time to live (ttl) of a payment expiry in seconds.
      operationId: getPaymentExpiryById
      parameters:
        - name: payment_expiry_id
          in: path
          description: The ID of the payment expiry you want returned.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully returned a payment expiry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentExpiryResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    put:
      tags:
        - Payment expiration
      summary: Update payment expiry
      description: Updates the time to live (ttl) of a payment expiry in seconds.
      operationId: updatePaymentExpiry
      parameters:
        - name: payment_expiry_id
          in: path
          description: >-
            Provide the `payment_expiry_id` of the payment expiry you want to
            update.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        $ref: '#/components/requestBodies/PaymentExpiry'
      responses:
        '200':
          description: Successfully updated payment expiry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentExpiryResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    delete:
      tags:
        - Payment expiration
      summary: Delete payment expiry
      description: Deletes a payment expiry.
      operationId: deletePaymentExpiry
      parameters:
        - name: payment_expiry_id
          in: path
          description: >-
            Provide the `payment_expiry_id` of the payment expiry you want to
            delete.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully deleted payment expiry.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /config/payments/payment_expiries:
    get:
      tags:
        - Payment expiration
      summary: Get payment expiries
      description: Returns all configured payment expiries.
      operationId: getPaymentExpiries
      parameters:
        - name: page
          in: query
          description: Zero-based index of the page number of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of payments returned per page.
          required: false
          schema:
            type: integer
            default: 10
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentExpiries'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    post:
      tags:
        - Payment expiration
      summary: Create payment expiry
      description: Creates a payment expiration window, or time to live (ttl), in seconds.
      operationId: createPaymentExpiry
      requestBody:
        $ref: '#/components/requestBodies/PaymentExpiry'
      responses:
        '200':
          description: Successfully created the payment expiration window.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentExpiryResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /config/payments/quote_expiries:
    get:
      tags:
        - Quote expiration
      summary: List quote expiries
      description: Returns all configured quote expiries.
      operationId: getQuoteExpiries
      parameters:
        - name: page
          in: query
          description: Zero-based index of the page number of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of payments returned per page.
          required: false
          schema:
            type: integer
            default: 10
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteExpiries'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    post:
      tags:
        - Quote expiration
      summary: Create quote expiry
      description: Creates a quote expiration window, or time to live (ttl), in seconds.
      operationId: createQuoteExpiry
      requestBody:
        $ref: '#/components/requestBodies/QuoteExpiry'
      responses:
        '200':
          description: Successfully created the quote expiration window.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteExpiry'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /config/payments/quote_expiries/{quote_expiry_id}:
    get:
      tags:
        - Quote expiration
      summary: Get quote expiry
      description: Gets the time to live (ttl) of a quote expiry in seconds.
      operationId: getQuoteExpiryById
      parameters:
        - name: quote_expiry_id
          in: path
          description: The ID of the quote expiry you want returned.
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Successfully returned a quote expiry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteExpiry'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    put:
      tags:
        - Quote expiration
      summary: Update quote expiry
      description: Updates the time to live (ttl) of a quote expiry in seconds.
      operationId: updateQuoteExpiry
      parameters:
        - name: quote_expiry_id
          in: path
          description: >-
            Provide the `quote_expiry_id` of the quote expiry you want to
            update.
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        $ref: '#/components/requestBodies/QuoteExpiry'
      responses:
        '200':
          description: Successfully updated quote expiry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteExpiry'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /config/payout_methods:
    post:
      tags:
        - Payout method
      summary: Create payout method
      description: >-
        Creates a payout method (for example, `LOCAL_RAILS`). <p>The Payout
        Method API lets receivers create and manage payout methods. Senders can
        generate quotes based on these receiver payout methods by enabling the
        flag <code>enable_quote_per_payout_method</code> in the body of the
        [Create quote collection] request. </p><p><b>Caution&#58;</b> The
        existing quote parameter is named <code>payment_method</code> while
        elsewhere it is <code>payout_method</code>.</p><p><b>Note&#58;</b>
        On-Demand Liquidity (ODL) receivers should set
        <code>payment_method</code> to the <code>outlet_id</code> or the string
        <code>none</code> (not an empty value) to keep funds at the destination
        exchange when paying out to a local rail.</p>
      operationId: createPayoutMethod
      security:
        - Bearer: []
      requestBody:
        $ref: '#/components/requestBodies/PayoutMethodRequest'
      responses:
        '200':
          description: Successfully created payout method.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutMethodResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
    get:
      tags:
        - Payout method
      summary: Get payout methods
      description: Returns a list of payout methods created by a receiving partner.
      operationId: getPayoutMethods
      security:
        - Bearer: []
      parameters:
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).
            The value is zero-based, where `0` represents the first page.<br/>

            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of payments to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutMethods'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
  /config/payout_methods/{payout_method_id}:
    parameters:
      - in: path
        name: payout_method_id
        description: ID of the payout method you want to retrieve.
        required: true
        schema:
          type: string
          format: uuid
    get:
      tags:
        - Payout method
      summary: Get payout method by ID
      description: Returns a payout method by its ID.
      operationId: getPayoutMethodById
      security:
        - Bearer: []
      responses:
        '200':
          description: Successfully returned Payout method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutMethodResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
    put:
      tags:
        - Payout method
      summary: Update payout method
      description: Updates a payout method.
      operationId: updatePayoutMethod
      security:
        - Bearer: []
      requestBody:
        $ref: '#/components/requestBodies/PayoutMethodRequest'
      responses:
        '200':
          description: Successfully saved Payout method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutMethodResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
    delete:
      tags:
        - Payout method
      summary: Delete payout method
      description: Deletes a payout method.
      operationId: deletePayoutMethod
      security:
        - Bearer: []
      responses:
        '200':
          description: Successfully deleted payout method.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
  /config/payout_methods/categories:
    get:
      tags:
        - Payout method
      summary: Get all categories
      description: Returns all the payout method categories.
      operationId: getAllCategories
      security:
        - Bearer: []
      responses:
        '200':
          description: Successfully returned Payout method Categories
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
  /config/platforms:
    post:
      tags:
        - Platform accounts
      summary: Create platform
      description: >-
        Creates a RippleNet platform, which represents a financial entity that
        holds accounts in the real world (e.g. Bank, Exchange or Wallet
        provider). This operation creates a database record for a platform
        account on a RippleNet node.
      operationId: createPlatform
      security:
        - Bearer: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePlatformRequest'
        required: true
      responses:
        '200':
          description: Successfully created RippleNet platform.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
    get:
      summary: Get all platforms
      description: Returns a list of all active RippleNet platforms.
      operationId: getAllPlatforms
      tags:
        - Platform accounts
      security:
        - Bearer: []
      responses:
        '200':
          description: List of all active RippleNet platforms.
          content:
            application/json:
              schema:
                type: array
                description: List of all active RippleNet platforms.
                items:
                  $ref: '#/components/schemas/PlatformResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
  /config/platforms/{platform_id}:
    parameters:
      - in: path
        name: platform_id
        description: ID of the platform you want to retrieve.
        required: true
        schema:
          type: string
          format: uuid
    get:
      summary: Get platform by platform ID
      description: Get a RippleNet platform by its platform ID.
      operationId: getPlatformByPlatformId
      tags:
        - Platform accounts
      security:
        - Bearer: []
      responses:
        '200':
          description: Returns a RippleNet platform for the given platform ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
    put:
      summary: Update platform
      description: >-
        Updates a RippleNet platform, which represents a financial entity that
        holds accounts in the real world (e.g. Bank, Exchange or Wallet
        provider). This operation creates a database record for a platform
        account on a RippleNet node.
      operationId: updatePlatform
      tags:
        - Platform accounts
      security:
        - Bearer: []
      parameters:
        - in: path
          name: platform_id
          description: ID of the platform you want to update.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePlatformRequest'
        required: true
      responses:
        '200':
          description: Successfully updated RippleNet platform.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
    delete:
      summary: Delete platform by platform ID
      description: Deletes a RippleNet platform by its platform ID.
      operationId: deletePlatformByPlatformId
      tags:
        - Platform accounts
      security:
        - Bearer: []
      parameters:
        - in: path
          name: platform_id
          description: ID of the platform you want to delete.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '204':
          description: Deleted platform successfully.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
  /config/platforms/accounts:
    post:
      tags:
        - Platform accounts
      summary: Create platform account
      description: >-
        Creates a RippleNet platform account, which represents a real-world
        account owned by a financial entity (e.g. Bank, Exchange or Wallet
        provider). This operation creates a database record for a platform
        account on a RippleNet node.
      operationId: createPlatformAccount
      security:
        - Bearer: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePlatformAccountRequest'
        required: true
      responses:
        '200':
          description: Successfully created RippleNet platform account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformAccountResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
    get:
      tags:
        - Platform accounts
      summary: Get platform accounts
      description: Returns a paged list of all active RippleNet platform accounts.
      operationId: getPlatformAccounts
      parameters:
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).
            The value is zero-based, where `0` represents the first page.<br/>

            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of objects to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
      responses:
        '200':
          description: Paged list of all active RippleNet platform accounts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformAccountsPage'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /config/platforms/accounts/{platform_account_id}:
    parameters:
      - in: path
        name: platform_account_id
        description: ID of the platform account you want to retrieve.
        required: true
        schema:
          type: string
          format: uuid
    get:
      summary: Get platform account by platform account ID
      description: Gets a RippleNet platform account by its platform account ID.
      operationId: getPlatformAccountByPlatformAccountId
      tags:
        - Platform accounts
      security:
        - Bearer: []
      responses:
        '200':
          description: >-
            Returns a RippleNet platform account for the given platform account
            ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformAccountResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
    put:
      summary: Update platform account
      description: >-
        Updates a RippleNet platform account, which represents a real-world
        account owned by a financial entity (e.g. Bank, Exchange or Wallet
        provider).
      operationId: updatePlatformAccount
      tags:
        - Platform accounts
      security:
        - Bearer: []
      parameters:
        - in: path
          name: platform_account_id
          description: ID of the platform account you want to update.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePlatformAccountRequest'
        required: true
      responses:
        '200':
          description: Successfully updated RippleNet platform account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformAccountResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
    delete:
      summary: Delete platform account by platform account ID
      description: Deletes a RippleNet platform account by its platform account ID.
      operationId: deletePlatformAccountByPlatformAccountId
      tags:
        - Platform accounts
      security:
        - Bearer: []
      parameters:
        - in: path
          name: platform_account_id
          description: ID of the platform account you want to delete.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '204':
          description: Deleted platform account successfully.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
  /config/pool_accounts:
    get:
      tags:
        - Pool accounts
      summary: Get all pool accounts
      description: Returns a list of all pool accounts on a RippleNet node.
      operationId: getAllPoolAccounts
      security:
        - Bearer: []
      responses:
        '200':
          description: List of all pool accounts.
          content:
            application/json:
              schema:
                type: array
                description: List of all pool accounts.
                items:
                  $ref: '#/components/schemas/PoolAccountResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
  /config/pool_accounts/{pool_account_id}:
    parameters:
      - in: path
        name: pool_account_id
        description: Unique name to identify the pool account.
        required: true
        schema:
          type: string
          format: uuid
    get:
      summary: Get pool account by pool account ID
      description: Get a pool account by its pool account ID.
      operationId: getPoolAccountByPoolAccountId
      tags:
        - Pool accounts
      security:
        - Bearer: []
      responses:
        '200':
          description: Returns pool account for the given pool account ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoolAccountResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
  /config/pool_accounts/{pool_account_id}/linked_accounts:
    parameters:
      - in: path
        name: pool_account_id
        description: Unique name to identify the pool account.
        required: true
        schema:
          type: string
          format: uuid
  /config/rates:
    get:
      tags:
        - Rates
      summary: Get rates
      description: Gets a list of configured exchange rates.
      operationId: getRates
      parameters:
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).
            The value is zero-based, where `0` represents the first page.<br/>

            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of objects to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
      responses:
        '200':
          description: Successfully returned list of rates.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rates'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    post:
      tags:
        - Rates
      summary: Create rate
      description: >
        Creates an exchange rate for a specified currency pair.


        **Example** - Applying a margin to the live FX rate:<br>

        A USD-GBP live FX rate of 0.80 is provided by a third-party rate
        provider and you want to reduce that rate by 20 BPS. In this API call,
        you would set `"value_type": "MARGIN"`, then `"margin_type": "BPS"`, and
        `"rate": "20"`. After that, during the `Get quotes` call, the final FX
        rate will be calculated as 0.80*(1-(20/10000))=`0.7984` and then applied
        during quote creation.
      operationId: createRate
      requestBody:
        $ref: '#/components/requestBodies/RateRequest'
      responses:
        '200':
          description: Successfully created rate.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateResponse'
        '400':
          description: Request error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /config/rates/{rate_id}:
    get:
      tags:
        - Rates
      summary: Get rate by ID
      description: Gets a configured exchange rate by ID.
      operationId: getRateById
      parameters:
        - name: rate_id
          in: path
          description: Provide the `rate_id` of the exchange rate you want to return.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Sucessfully returned rate.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateResponse'
        '404':
          description: Rate not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    put:
      tags:
        - Rates
      summary: Update rate
      description: >
        Updates an existing exchange rate. With this call, you can change
        `value_type` from `RATE` to `MARGIN` (and vice versa), change the actual
        `rate` value of the specified value type, or both.


        **Example** - Updating an existing margin applied to the live FX
        rate:<br>

        A USD-GBP live FX rate of 0.80 is provided by a third-party rate
        provider and you currently reduce that rate by 20 BPS. You now want to
        change it and reduce it by 10 BPS instead. To do so, set `"rate": "10"`
        in the request. Once the change is applied, the final FX rate is
        calculated as 0.80*(1-(10/10000))=`0.7992` during the `Get quotes` call,
        and then applied during quote creation.
      operationId: updateRate
      parameters:
        - name: rate_id
          in: path
          description: Provide the `rate_id` of the exchange rate you want to update.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        $ref: '#/components/requestBodies/RateRequest'
      responses:
        '200':
          description: Successfully updated rate.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateResponse'
        '400':
          description: Request error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    delete:
      tags:
        - Rates
      summary: Delete rate
      description: >-
        Deletes an exchange rate. Once deleted, an exchange rate cannot be
        accessed.
      operationId: deleteRate
      parameters:
        - name: rate_id
          in: path
          description: Provide the `rate_id` of the exchange rate you want to delete.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully deleted rate.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /config/ssa_config/{ssa_config_id}:
    parameters:
      - in: path
        name: ssa_config_id
        description: The ID of the SSA configuration you want returned.
        required: true
        schema:
          type: string
          format: uuid
  /exchange_transfers:
    get:
      tags:
        - Exchange transfers
      summary: Get exchange transfers
      description: Gets all exchange transfers.
      operationId: getExchangeTransfers
      parameters:
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).
            The value is zero-based, where `0` represents the first page.<br/>

            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of objects to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
      responses:
        '200':
          description: Successfully retrieved exchange transfers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExchangeTransfers'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /exchange_transfers/execute:
    post:
      tags:
        - Exchange transfers
      summary: Execute exchange transfer
      description: >
        Execute an exchange transfer to move funds from one of your accounts in
        one currency (USD, for example) to another one of your accounts in
        another currency (EUR, for example) at an exchange rate set by your peer
        who maintains both of your accounts on their ledger. An exchange
        transfer enables you to fund a foreign currency account from your
        domestic currency account in bulk.


        Before you make this request, you may want to use the Quote Exchange
        Transfer request to see a quote for the exchange transfer you want to
        make.
      operationId: executeExchangeTransfer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FiatExchangeTransferExecuteRequest'
        required: true
      responses:
        '200':
          description: Successfully executed exchange transfer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiatExchangeTransferExecuteResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /exchange_transfers/quote:
    post:
      tags:
        - Exchange transfers
      summary: Get exchange transfer quote
      description: Requests a quote for an exchange transfer.
      operationId: getExchangeTransferQuote
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FiatExchangeTransferQuoteRequest'
        required: true
      responses:
        '200':
          description: Successfully quoted exchange transfer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiatExchangeTransferQuoteResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /exchange_transfers/{id}/complete:
    post:
      tags:
        - Exchange transfers
      summary: Complete exchange transfer
      description: >-
        Updates the status of an exchange transfer to `COMPLETED`. Make this
        request once the exchange transfer has been made on both the ledger and
        on internal systems.
      operationId: completeExchangeTransfer
      parameters:
        - name: id
          in: path
          description: Unique identifier of the exchange transfer to complete.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully completed exchange transfer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiatExchangeTransferExecuteResponse'
        '404':
          description: Exchange transfer not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /exchange_transfers/{id}:
    get:
      tags:
        - Exchange transfers
      summary: Get exchange transfer by ID
      description: Gets an exchange transfer by ID.
      operationId: getExchangeTransferById
      parameters:
        - name: id
          in: path
          description: Unique identifier of the exchange transfer you want to retrieve.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully retrieved exchange transfer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiatExchangeTransferExecuteResponse'
        '404':
          description: Exchange transfer not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /health:
    get:
      tags:
        - Diagnostics
      summary: Check health
      description: Gets the health status of the xCurrent server.
      operationId: checkHealth
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Health'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /heartbeat:
    get:
      tags:
        - Diagnostics
      summary: Check heartbeat
      description: >-
        Gets the health status of the xCurrent server's peers. This request
        requires authorization. The timeout for this operation is 5 seconds.
      operationId: checkHeartbeat
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Heartbeat'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
  /monitor/balances:
    get:
      tags:
        - Balances and statements
      summary: Get balances
      description: Get balances for local and remote accounts owned by a RippleNet address.
      operationId: getBalances
      responses:
        '200':
          description: Successfully returned balances.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Balances'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /monitor/ledger/balances:
    get:
      tags:
        - Balances and statements
      summary: Get ledger balances
      description: Get balances for ledger owned by a RippleNet address.
      operationId: getLedgerBalances
      responses:
        '200':
          description: Successfully returned balances.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Balances'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /monitor/platform/accounts/balances:
    get:
      tags:
        - Platform accounts
      summary: Get platform accounts balances
      description: Get balances for local Platform Accounts
      operationId: getPlatformAccountsBalances
      responses:
        '200':
          description: Successfully returned balances for all platform accounts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformAccountsBalances'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /monitor/platform/accounts/{platformAccountId}/statement:
    get:
      tags:
        - Platform accounts
      summary: Get platform account statement
      description: Get statement for a specified Platform Account
      operationId: getPlatformAccountStatement
      parameters:
        - name: platformAccountId
          in: path
          description: >-
            The RippleNet platform account ID that you want to get a statement
            for. Example: `bitso`
          required: true
          schema:
            type: string
        - name: start-date
          in: query
          description: >-
            The lower bound of the date-time range you want to return statement
            information for, as an ISO-8601 timestamp in UTC. For example,
            `2018-08-06T23:13:55.997Z`.
          required: true
          schema:
            type: string
        - name: end-date
          in: query
          description: >-
            The upper bound of the date-time range you want to return statement
            information for, as an ISO-8601 timestamp in UTC For example,
            `2018-08-06T23:15:13.218Z`.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).
            The value is zero-based, where `0` represents the first page.<br/>

            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of payment and transfer objects to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
      responses:
        '200':
          description: Successfully returned statement for a specified platform account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatementResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments:
    get:
      tags:
        - Non-orchestration payments
      summary: Get payments
      description: >-
        Retrieves all payments in an instance of xCurrent that meet the criteria
        defined by the query parameters. You can use the query parameters to
        filter payments. The default parameters are `sort_field : MODIFIED_AT` ,
        `sort_direction : DESC` , `page : 0` , `size : 10`
      operationId: getPayments
      parameters:
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).
            The value is zero-based, where `0` represents the first page.<br/>

            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of payments to return per page.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
        - name: sending_host
          in: query
          description: Optional parameter for filtering `with sendingHost` value.
          required: false
          schema:
            type: string
        - name: receiving_host
          in: query
          description: Optional parameter for filtering with `receivingHost` value.
          required: false
          schema:
            type: string
        - name: sending_account
          in: query
          description: Optional parameter for filtering with `sendingAccount` value.
          required: false
          schema:
            type: string
        - name: receiving_account
          in: query
          description: Optional parameter for filtering with `receivingAccount` value.
          required: false
          schema:
            type: string
        - name: sending_currency
          in: query
          description: Optional parameter for filtering with `sendingCurrency` value.
          required: false
          schema:
            type: string
        - name: receiving_currency
          in: query
          description: Optional parameter for filtering with `receivingCurrency` value.
          required: false
          schema:
            type: string
        - name: payment_id
          in: query
          description: >-
            Optional parameter for filtering with `paymentId` value. This
            parameter is deprecated. Please use `payment_ids` instead
          required: false
          deprecated: true
          schema:
            type: string
            format: uuid
        - name: payment_type
          in: query
          description: >-
            Filters for payments based on the type of payment. Valid types are
            `REGULAR`, `RETURN`.
          required: false
          schema:
            type: string
        - name: internal_id
          in: query
          description: Optional parameter for filtering with internalId.
          required: false
          schema:
            type: string
        - name: sender_end_to_end_id
          in: query
          description: Optional parameter for filtering with senderEndToEndId.
          required: false
          schema:
            type: string
        - name: connector_role
          in: query
          description: >-
            Filters for payments based on the role of the responding connector.
            Valid roles are `SENDING`, `INTERMEDIARY`, `RECEIVING`, and
            `INTERNAL`. The `INTERNAL` role is meant for payments between
            RippleNet Cloud and RippleNet where the sender and receiver accounts
            are on the same RippleNet instance. Use role with state to find
            payments waiting on action from you as the sending or receiving (or
            internal) connector.
          required: false
          schema:
            type: string
        - name: state
          in: query
          description: >-
            Deprecated, should use states parameter. Returns payments in the
            specified state. The following options are valid: `ACCEPTED`,
            `COMPLETED`, `EXECUTED`, `FAILED`, `LOCKED`, `LOCK_DECLINED`,
            `PREPARED`, `RETURNED`, and `SETTLEMENT_DECLINED`
          required: false
          schema:
            type: string
        - name: states
          in: query
          description: >-
            Returns payments in the specified states. The following options are
            valid: `ACCEPTED`, `COMPLETED`, `EXECUTED`, `FAILED`, `LOCKED`,
            `LOCK_DECLINED`, `PREPARED`, `RETURNED`, and `SETTLEMENT_DECLINED`
          required: false
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
        - name: before
          in: query
          description: >-
            Filters for payments where the payments `range_field` column value
            is before this specified time stamp (not inclusive). You can also
            specify `after` to create a time range between `after` and `before`.
            If before is specified, `range_field` must also be specified.
          required: false
          schema:
            type: string
        - name: after
          in: query
          description: >-
            Filters for payments where the payments `range_field` column value
            is after this specified time stamp (not inclusive). You can also
            specify `before` to create a time range between `after` and
            `before`. If `after` is specified, `range_field` must also be
            specified.
          required: false
          schema:
            type: string
        - name: range_field
          in: query
          description: >-
            Designates the column name of the payments database table that is
            used for filtering payments before/after/between time stamps. The
            following options are valid: `CREATED_AT`, `MODIFIED_AT`,
            `ACCEPTED_AT`, `LOCKED_AT`, `EXECUTED_AT`, `COMPLETED_AT`,
            `RETURNED_AT` and `EXPIRES_AT`. For example, if you specify
            `range_field`=`MODIFIED_AT`, you would specify a time stamp (in the
            24 character ISO 8601 YYYY-MM-DDTHH:mm:ss.sssZ format used in
            payment objects) as the value for `before` and/or `after` to fetch
            payments before, after, or between the specified time range(s) (not
            inclusive). If `range_field` is specified, `before` and/or `after`
            must also be specified.
          required: false
          schema:
            type: string
        - name: amount_range_field
          in: query
          description: >-
            Designates the column name of the payments database table that is
            used for filtering payments greater/less/between amounts. For
            example, if you specify `amount_range_field=SENDING_AMOUNT`, you
            would specify an amount as the value for `greater` and/or `less` to
            fetch payments greater, less, or between the specified amounts
            (inclusive). If `amount_range_field` is specified, `minAmount`
            and/or `maxAmount` must also be specified.
          required: false
          schema:
            type: string
            enum:
              - SENDING_AMOUNT
              - RECEIVING_AMOUNT
        - name: min_amount
          in: query
          description: Optional parameter for filtering with min sending/receiving amount.
          required: false
          schema:
            type: number
            minimum: 0
        - name: max_amount
          in: query
          description: Optional parameter for filtering with max sending/receiving amount.
          required: false
          schema:
            type: number
            minimum: 0
        - name: with_labels
          in: query
          description: >-
            Returns payments with the specified labels. <p>If you apply
            `with_labels` with <i>multiple</i> labels, the response returns
            payments with at least one of the specified labels.</p> <p>For
            example, the query, </p> <p><b>?with_labels=string1,string2</b></p>
            <p>returns payments with either &quot;string1&quot; OR
            &quot;string2&quot;.</p>
          required: false
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
        - name: without_labels
          in: query
          description: >-
            Returns payments that do <i>not</i> have any of the specified
            labels. <p>If you apply `without_labels` with <i>multiple</i>
            labels, the response returns payments that do not have any of the
            specified labels.</p> <p>For example, the query,</p>
            <p><b>?without_labels=string3,string4</b></p> <p>returns payments
            that are not labeled with either &quot;string3&quot; OR
            &quot;string4&quot;.</p> <p>If you apply both `with_labels`
            <i>and</i> `without_labels` parameters, the response returns
            payments that have at least one of the specified `with_labels`
            strings but omits payments that also have any of the the
            `without_labels` strings. </p> <p>For example, the query, </p>
            <p><b>?with_labels=string1&without_labels=string3</b></p> <p>returns
            payments with &quot;string1&quot; but not payments with
            &quot;string3&quot;.</p>
          required: false
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
        - name: sort_field
          in: query
          description: >-
            Sorts results according to the specified field. Valid options are
            `PAYMENT_ID`, `EXPIRES_AT`, `MODIFIED_AT` and `CREATED_AT`.
          required: false
          schema:
            type: string
            default: MODIFIED_AT
        - name: sort_direction
          in: query
          description: >-
            Sorts result according to the specified direction. Valid options are
            `ASC`, `DESC`.
          required: false
          schema:
            type: string
            default: DESC
        - name: load_additional_details
          in: query
          required: false
          description: >-
            This parameter can be used to exclude additional info being returned
            for each payment object. Additional info which will be excluded if
            the flag set to false include user_info, ripplenet_info,
            execution_results and internal_info.labels
          schema:
            type: boolean
            default: true
        - name: payment_ids
          in: query
          required: false
          description: List of paymentIds to search for
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
              format: uuid
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payments'
            text/csv:
              schema:
                $ref: '#/components/schemas/Payments'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
            text/csv:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments/accept:
    post:
      tags:
        - Quotes
      summary: Accept quote
      description: Accepts a quote ID to start the payment process.
      operationId: acceptQuote
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentAcceptRequest'
        description: >-
          The JSON object to include in your request to accept a quote that you
          want to advance as a payment.
        required: true
      responses:
        '200':
          description: >-
            Successfully accepted quote resulting in a payment object in
            `ACCEPTED` state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        '412':
          description: Quote expiry has passed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments/{payment_id}:
    get:
      tags:
        - Non-orchestration payments
      summary: Get payment by payment ID
      description: Gets a payment by ID.
      operationId: getPaymentByPaymentId
      parameters:
        - name: payment_id
          in: path
          description: Unique identifier of the payment you want to retrieve.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully retrieved payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Payment not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments/{payment_id}/lock:
    post:
      tags:
        - Non-orchestration payments
      summary: Lock payment
      description: >
        Locks a payment. The beneficiary and all intermediary institutions agree
        to proceed with the payment by making successful Lock Payment requests.
        When the payment is still in a _partially_ `LOCKED` state, the
        beneficiary and all intermediary institutions who have _not_ locked, can
        [reject lock payment](#operation/rejectLockPayment) or [fail
        payment](#operation/failPayment).


        Once fully `LOCKED`, the originating institution can either [fail
        payment](#operation/failPayment) or [Settle
        payment](#operation/settlePayment). If the originating institution sends
        a Settle payment request, one of three things will happen:


        * Successful payments move to the `PREPARED` state.

        * Payments with insufficient liquidity automatically move into state
        `SETTLEMENT_DECLINED`, or

        * Payments that are not settled before the `crypto_transaction_id`
        expires move to the `FAILED` state.


        **Note**: Currently, when making a [Create quote to return
        payment](#operation/createQuoteToReturnPayment) to a RippleNet Cloud
        account on a RippleNet ledger, the RippleNet user must lock and complete
        the payment. This means that the RippleNet user takes all action on the
        return: Get and Accept Quote, Lock, Settle, and Complete payment.
      operationId: lockPayment
      parameters:
        - name: payment_id
          in: path
          description: Unique identifier of the payment to lock.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentLockRequest'
        required: true
      responses:
        '200':
          description: Successfully locked payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Payment not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments/{payment_id}/reject:
    post:
      tags:
        - Non-orchestration payments
      summary: Reject lock payment
      description: >
        Rejects a payment from being locked.


        This temporarily stops the payment and keeps it in a recoverable state
        so that
        [user_info](/products/payments-odl/api-docs/ripplenet/resources/srpo/user-info)
        can be corrected. If the payment is incorrect for reasons outside of the
        `user_info` object, use [Fail payment](#operation/failPayment).


        After a payment has been created by an [Accept
        quote](#operation/acceptQuote) request, the beneficiary or an
        intermediary can choose to reject the payment, rather than [Lock
        payment](#operation/lockPayment), with corrections to `user_info` in the
        reasons array. A rejected payment moves the payment state to
        `LOCK_DECLINED` from which it can be recovered by the originating
        institution with a [Retry accept payment](#operation/retryAcceptPayment)
        request.


        If any one institution in the payment chain is configured to
        _auto-fail_, the payment automatically fails when the payment is
        rejected, moving to the `FAILED` state rather than the `LOCK_DECLINED`
        state.
      operationId: rejectLockPayment
      parameters:
        - name: payment_id
          in: path
          description: Unique identifier of a payment to reject a lock request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        $ref: '#/components/requestBodies/PaymentDenyRequest'
      responses:
        '200':
          description: Successfully rejected the request to lock a payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Payment not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments/{payment_id}/retry_accept:
    post:
      tags:
        - Non-orchestration payments
      summary: Retry accept payment
      description: >-
        Returns a rejected payment from the `LOCK_DECLINED` state to the
        `ACCEPTED` state. The payment sender must include repaired
        [user_info](/products/payments-odl/api-docs/ripplenet/resources/srpo/user-info)
        in the request body.
      operationId: retryAcceptPayment
      parameters:
        - name: payment_id
          in: path
          description: Unique identifier of the payment to return to `ACCEPTED` state.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentRetryAcceptRequest'
        required: true
      responses:
        '200':
          description: Successfully resubmitted payment for locking.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Payment not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments/{payment_id}/fail:
    post:
      tags:
        - Non-orchestration payments
      summary: Fail payment
      description: >
        Fails a payment. Fail payment is a deliberate action that permanently
        stops the payment and puts it into a non-recoverable state.


        An institution _rejects_ a payment to solicit changes to
        [user_info](/products/payments-odl/api-docs/ripplenet/resources/srpo/user-info);
        it _fails_ a payment to stop it altogether. After a payment has been
        created by an [Accept quote](#operation/acceptQuote) request, you can
        fail the payment if it is your institution's turn to take an action on
        the payment.


        The originating institution can fail a payment in states `LOCKED` and
        `LOCK_DECLINED`. The beneficiary and intermediary institutions can fail
        a payment in the `ACCEPTED` state. Beneficiary institutions can also
        fail a payment in the `EXECUTED` state. The general use case for failing
        an executed payment is to [Create quote to return
        payment](#operation/createQuoteToReturnPayment) to the originating
        institution.


        Payments in states `PREPARED` and `SETTLEMENT_DECLINED` can fail
        _automatically_&#8212;`PREPARED` when the crypto-transaction expires and
        `SETTLEMENT_DECLINED` when the payment expires.
      operationId: failPayment
      parameters:
        - name: payment_id
          in: path
          description: Unique identifier of the payment to fail.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        $ref: '#/components/requestBodies/PaymentDenyRequest'
      responses:
        '200':
          description: Successfully failed a payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Payment not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments/{payment_id}/settle:
    post:
      tags:
        - Non-orchestration payments
      summary: Settle payment
      description: >-
        Executes a payment in the <code>LOCKED</code> state. Payment senders can
        also <b>retry settling a payment</b> in the
        <code>SETTLEMENT_DECLINED</code> state, after the error is corrected
        (and before the payment expires).<p>Settle payment sends a _prepare
        payment transfer_ message, which travels to all participants in the
        payment. This sets the payment state to `PREPARED`, which means that
        funds have been transferred to the hold account on that xCurrent
        ledger.</p> <p>The beneficiary institution then signs the
        `execution_condition` (creating a payload) and sends an _execute payment
        transfer_ message, which travels to all participants in the payment).
        When the payment is fully executed, funds have been transferred from the
        hold account to the receiver account on all xCurrent ledgers and the
        payment state is set to <code>EXECUTED</code>.</p>
      operationId: settlePayment
      parameters:
        - name: payment_id
          in: path
          description: Unique identifier of the payment to settle.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentSettleRequest'
      responses:
        '200':
          description: Successfully prepared payment settlement. Execution is asynchronous.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Payment not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '409':
          description: >-
            Concurrent request already in progress. Any 200 response result is
            unchanged.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments/{payment_id}/finalize:
    post:
      tags:
        - Non-orchestration payments
      summary: Finalize payment
      description: >-
        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.
      operationId: finalizePayment
      parameters:
        - name: payment_id
          in: path
          description: Unique identifier of a payment for which to set a sub-state.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentFinalizeRequest'
        required: true
      responses:
        '200':
          description: Returns a payment with sub-states represented as labels.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Payment not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments/{payment_id}/sub_state:
    post:
      tags:
        - Non-orchestration payments
      summary: Add payment sub state
      description: >-
        Adds a sub-state to a payment that reflects what is happening to the
        payment while it is in the `EXECUTED` state. All nodes on the payment
        chain can make this request multiple times to provide a log of each
        subsequent sub-state until the receiver is ready to make the [Complete
        payment](#operation/completePayment) request.<p>This operation is
        especially useful for completing cash payouts&#8212;sending institutions
        can add clarifying user information to a payment after it has been
        executed (and money has been moved). </p>
      operationId: addPaymentSubState
      parameters:
        - name: payment_id
          in: path
          description: Unique identifier of a payment for which to set a sub-state.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentSubStateRequest'
        required: true
      responses:
        '200':
          description: Returns a payment with sub-states represented as labels.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Payment not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments/{payment_id}/complete:
    post:
      tags:
        - Non-orchestration payments
      summary: Complete payment
      description: >-
        Marks a payment as complete by placing it in the `COMPLETED` state.
        Typically, the receiving institution makes this request when it has
        delivered payment funds to the final beneficiary on its internal systems
        outside of xCurrent.
      operationId: completePayment
      parameters:
        - name: payment_id
          in: path
          description: Unique identifier of the payment to place in the `COMPLETED` state.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentCompleteRequest'
        required: true
      responses:
        '200':
          description: Returns a completed payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Payment not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments/{payment_id}/labels:
    put:
      tags:
        - Non-orchestration payments
      summary: Add payment labels
      description: >-
        Adds a list of labels to the payment. To retrieve payments by label, see
        [Get payments](#operation/getPayments).
      operationId: addPaymentLabels
      parameters:
        - name: payment_id
          in: path
          description: Unique identifier of the payment you want to label.
          required: true
          schema:
            type: string
            format: uuid
        - name: label
          in: query
          description: Text of the label you want to add to the payment.
          required: true
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Successfully added one or more labels to the payment.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Payment not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    delete:
      tags:
        - Non-orchestration payments
      summary: Delete payment labels
      description: >-
        Deletes an existing label from a payment. The label you provide is
        deleted from the `labels` array in the Payment object.
      operationId: deletePaymentLabels
      parameters:
        - name: payment_id
          in: path
          description: Unique identifier of the payment from which to delete a label.
          required: true
          schema:
            type: string
            format: uuid
        - name: label
          in: query
          description: Text of the label you want to delete from the payment.
          required: true
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Successfully deleted label from payment.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Labels to be deleted not found on the payment ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments/{payment_id}/node-status:
    get:
      tags:
        - Non-orchestration payments
      summary: Get payment node status
      description: >-
        Senders can query for the RippleNet instances (in a given payment chain)
        that have payments in the <code>LOCKED</code> state. This information is
        only stored on the sender's RippleNet instance.
      operationId: getPaymentNodeStatus
      parameters:
        - name: payment_id
          in: path
          description: >-
            Unique identifier of the payment for which to get states on each
            node participating in the payment.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: >-
            Successfully retrieved payment states on each node participating in
            the payment.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NodeStatus'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Payment not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /payments/filtered/{payment_id}:
    get:
      tags:
        - Non-orchestration payments
      summary: Get filtered payment by payment ID
      description: >-
        Returns a sanitized payment with sensitive content filtered from the
        `user_info` object. <p>Filtering `user_info` is customizable in
        `rnn.properties`. Content that is denylisted by default&#58;</p>
        <p>```/Cdtr, /CdtrAcct, /Dbtr, /DbtrAcct, /InitgPty, /InstForCdtrAgt,
        /Purp, /RgltryRptg, /RltdRmtInf, /RmtInf, /UltmtCdtr, /UltmtDbtr,
        /outbound_instructions/beneficiary_info```</p>
      operationId: getFilteredPaymentByPaymentId
      parameters:
        - name: payment_id
          in: path
          description: Unique identifier of the filtered payment you want to retrieve.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully retrieved filtered payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilteredPayment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Payment not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /quotes:
    get:
      tags:
        - Quotes
      summary: Get quotes
      description: Gets a list of quotes.
      operationId: getQuotes
      parameters:
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).
            The value is zero-based, where `0` represents the first page.<br/>

            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of objects to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
      responses:
        '200':
          description: Successfully returned array of quotes.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Quote'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /quotes/{quote_id}:
    get:
      tags:
        - Quotes
      summary: Get quote by quote ID
      description: Gets a quote by ID.
      operationId: getQuoteByQuoteId
      parameters:
        - name: quote_id
          in: path
          description: Unique identifier of the quote you want to retrieve.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully retrieved quote.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        '400':
          description: Bad request. Quote ID is either invalid or not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /quote_collections:
    post:
      tags:
        - Quotes
      summary: Create quote collection
      description: Creates a collection of quotes for a proposed payment.
      operationId: createQuoteCollection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentQuoteRequest'
        required: true
      responses:
        '200':
          description: Successfully returned quote collection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteCollection'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /quote_collections/{quote_collection_id}:
    get:
      tags:
        - Quotes
      summary: Get quote collection by ID
      description: Gets a quote collection that was created for a proposed payment.
      operationId: getQuoteCollectionById
      parameters:
        - name: quote_collection_id
          in: path
          description: The ID of the quote collection you want returned.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully returned a quote collection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteCollection'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /quote_collections/return:
    post:
      tags:
        - Non-orchestration payments
      summary: Create quote to return payment
      description: >
        Creates a collection of quotes that can be used to return a payment.


        The receiver can make this request while the payment is in states
        `EXECUTED`, `COMPLETED`, or `FAILED`. When the returned payment is
        successfully moved to the `COMPLETED` state, the original payment is
        moved to the `RETURNED` state.


        **Note**: Currently, when making a Return Payment to a RippleNet Cloud
        account on a RippleNet ledger, the RippleNet user must lock and complete
        the payment. This means that the RippleNet user takes all action on the
        return: Get and Accept Quote, Lock, Settle, and Complete payment.
      operationId: createQuoteToReturnPayment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentReturnQuoteRequest'
        required: true
      responses:
        '200':
          description: Successfully returned a collection of quotes to return a payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteCollection'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Payment not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '500':
          description: >-
            Server Error - an internal error occured while making Return Quote
            calls.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /quote_collections/reversal:
    post:
      tags:
        - Non-orchestration payments
      summary: Create quote to reverse payment
      description: >
        Creates a quote collection containing at most one quote that can be used
        to reverse a payment.


        The receiver can make this request while the payment is in states
        `EXECUTED`, `COMPLETED`, or `FAILED`. When the returned payment is
        successfully moved to the `COMPLETED` state, the original payment is
        moved to the `RETURNED` state.


        **Note**: Currently, when making a Reversal Payment to a RippleNet Cloud
        account on a RippleNet ledger, the RippleNet user must lock and complete
        the payment. This means that the RippleNet user takes all action on the
        reverse: Get and Accept Quote, Lock, Settle, and Complete payment.
      operationId: createQuoteToReversePayment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentReversalQuoteRequest'
        required: true
      responses:
        '200':
          description: Successfully returned a collection of quotes to return a payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteCollection'
        '400':
          description: >-
            Original payment has previously been returned, reversed, or is in an
            invalid payment state for reversal.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Original payment was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '500':
          description: Reversals are disabled on this instance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /request_for_payment:
    get:
      tags:
        - Request for payment
      summary: Get requests for payment
      description: Gets requests for payment that match the query parameters.
      operationId: getRequestsForPayment
      parameters:
        - name: end_to_end_id
          in: query
          description: >-
            Optional parameter to filter results matching this `endToEndId`
            value.
          required: false
          schema:
            type: string
        - name: state
          in: query
          description: State by which to filter results.
          required: false
          schema:
            type: string
            enum:
              - REQUESTED
              - ACCEPTED
              - FAILED
        - name: sender_address
          in: query
          description: Field to filter results matching this `senderAddress` value.
          required: false
          schema:
            type: string
        - name: receiver_address
          in: query
          description: Field to filter results matching this `receiverAddress` value.
          required: false
          schema:
            type: string
        - name: payment_id
          in: query
          description: Field to filter results matching this `paymentId` value.
          required: false
          schema:
            type: string
            format: uuid
        - name: before
          in: query
          description: >-
            Filters for requests for payment whose `range_field` column value is
            before this specified time stamp (not inclusive). You can also
            specify `after` to create a time range between `after` and `before`.
            If before is specified, `range_field` must also be specified
          required: false
          schema:
            type: string
        - name: after
          in: query
          description: >-
            Filters for requests for payment whose `range_field` column value is
            after this specified time stamp (not inclusive). You can also
            specify `before` to create a time range between `after` and
            `before`. If `after` is specified, `range_field` must also be
            specified.
          required: false
          schema:
            type: string
        - name: range_field
          in: query
          description: >-
            Designates the column name of the requests for payment database
            table that is used for filtering payments before/after/between time
            stamps. For example, if you specify `range_field`=`MODIFIED_AT`, you
            would specify a time stamp (in the 24 character ISO 8601
            YYYY-MM-DDTHH:mm:ss.sssZ format used in request for payment objects)
            as the value for `before` and/or `after` to fetch request for
            payment before, after, or between the specified time range(s) (not
            inclusive). If `range_field` is specified, `before` and/or `after`
            must also be specified.
          required: false
          schema:
            type: string
            enum:
              - CREATED_AT
              - MODIFIED_AT
        - name: sort_field
          in: query
          description: Field to use to sort results.
          required: false
          schema:
            type: string
            enum:
              - CREATED_AT
              - MODIFIED_AT
        - name: sort_direction
          in: query
          description: Sorts result according to the specified direction.
          required: false
          schema:
            type: string
            enum:
              - ASC
              - DESC
            default: DESC
        - name: page
          in: query
          description: Zero-based index of the page number of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: The number of payments per page.
          required: false
          schema:
            type: integer
            default: 10
      responses:
        '200':
          description: >-
            Successfully retrieves requests for payment matching query
            parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetNodeRequestsForPayment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    post:
      tags:
        - Request for payment
      summary: Send request for payment
      description: Sends a new request for payment.
      operationId: sendRequestForPayment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RippleNetNodeRequestForPaymentRequest'
        description: The request object to initiate a new request for payment.
        required: true
      responses:
        '200':
          description: >-
            Successfully sent a request for payment resulting in a request for
            payment object in the `REQUESTED` state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetNodeRequestForPayment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /request_for_payment/{request_for_payment_id}:
    get:
      tags:
        - Request for payment
      summary: Get request for payment by ID
      description: Gets a request for payment by request for payment ID.
      operationId: getRequestForPaymentById
      parameters:
        - name: request_for_payment_id
          in: path
          description: Unique identifier of the request for payment to retrieve.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully retrieves a request for payment by its ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetNodeRequestForPayment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /request_for_payment/{request_for_payment_id}/accept:
    post:
      tags:
        - Request for payment
      summary: Accept request for payment
      description: Accepts a request for payment.
      operationId: acceptRequestForPayment
      parameters:
        - name: request_for_payment_id
          in: path
          description: Unique identifier of the request for payment to accept.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AcceptRequestForPaymentRequest'
        description: The request object to accept a request for payment.
        required: true
      responses:
        '200':
          description: >-
            Successfully accepts a request for payment resulting in a request
            for payment object in the `ACCEPTED` state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetNodeRequestForPayment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /request_for_payment/{request_for_payment_id}/fail:
    post:
      tags:
        - Request for payment
      summary: Fail request for payment
      description: Fails a request for payment.
      operationId: failRequestForPayment
      parameters:
        - name: request_for_payment_id
          in: path
          description: Unique identifier of the request for payment to fail.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FailRequestForPaymentRequest'
        description: The request object to fail a request for payment.
        required: true
      responses:
        '200':
          description: >-
            Successfully fails a request for payment resulting in a request for
            payment object in the `FAILED` state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetNodeRequestForPayment'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /statement/{account_name_with_address}:
    get:
      tags:
        - Balances and statements
      summary: Get statement
      description: >-
        Gets a statement for an account that lists payments and transfers that
        impacted the account's balance during a specified date-time range.
      operationId: getStatement
      parameters:
        - name: account_name_with_address
          in: path
          description: >-
            The RippleNet account name and address that you want to return a
            statement for. Use the format `accountname@ripplenetaddress`. For
            example, `san_francisco@rn.us.ca.san_francisco`.
          required: true
          schema:
            type: string
        - name: start-date
          in: query
          description: >-
            The lower bound of the date-time range you want to return statement
            information for, as an ISO-8601 timestamp in UTC. For example,
            `2018-08-06T23:13:55.997Z`.
          required: true
          schema:
            type: string
        - name: end-date
          in: query
          description: >-
            The upper bound of the date-time range you want to return statement
            information for, as an ISO-8601 timestamp in UTC For example,
            `2018-08-06T23:15:13.218Z`.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).
            The value is zero-based, where `0` represents the first page.<br/>

            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: >
            Number of payment and transfer objects to return per page, with a
            limit of 100 per page.


            For example, a query with `"size": "100"` results in `"totalPages":
            "43"` when the query result is `"totalElements": "4290"`.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
      responses:
        '200':
          description: Successfully returns an account statement.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatementResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Peer or Account not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /statement/external_account_id/{external_account_id}:
    get:
      tags:
        - Balances and statements
      summary: Get statement by external account ID
      description: >-
        Gets a statement for an account that lists payments and transfers that
        impacted the account's balance during a specified date-time range.
      operationId: getStatementByExternalAccountId
      parameters:
        - name: external_account_id
          in: path
          description: The external account ID associated with the account.
          required: true
          schema:
            type: string
        - name: start-date
          in: query
          description: >-
            The lower bound of the date-time range you want to return statement
            information for, as an ISO-8601 timestamp in UTC. For example,
            `2018-08-06T23:13:55.997Z`.
          required: true
          schema:
            type: string
        - name: end-date
          in: query
          description: >-
            The upper bound of the date-time range you want to return statement
            information for, as an ISO-8601 timestamp in UTC. For example,
            `2018-08-06T23:15:13.218Z`.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).
            The value is zero-based, where `0` represents the first page.<br/>

            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of payment and transfer objects to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
      responses:
        '200':
          description: Successfully returns an account statement.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatementResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Peer or Account not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /statement/ledger/{account_name_with_address}:
    get:
      tags:
        - Balances and statements
      summary: Get ledger account statement
      description: >
        Get statement for a specified Ledger account.


        **Note**: This operation is deprecated. Use the [Reports
        API](https://docs.ripple.com/payments-odl/api-docs/report_service/reference/)
        to view your statements.
      operationId: getLedgerAccountStatement
      deprecated: true
      parameters:
        - name: account_name_with_address
          in: path
          description: >-
            The RippleNet account name and address that you want to return a
            statement for. Use the format `accountname@ripplenetaddress`. For
            example, `san_francisco@rn.us.ca.san_francisco`.
          required: true
          schema:
            type: string
        - name: start-date
          in: query
          description: >-
            The lower bound of the date-time range you want to return statement
            information for, as an ISO-8601 timestamp in UTC. For example,
            `2018-08-06T23:13:55.997Z`.
          required: true
          schema:
            type: string
        - name: end-date
          in: query
          description: >-
            The upper bound of the date-time range you want to return statement
            information for, as an ISO-8601 timestamp in UTC For example,
            `2018-08-06T23:15:13.218Z`.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).
            The value is zero-based, where `0` represents the first page.<br/>

            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of payment and transfer objects to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
      responses:
        '200':
          description: Successfully returned statement for a specified ledger account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatementResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
        '404':
          description: Peer or Account not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /transfers:
    get:
      tags:
        - Transfers
      summary: Get transfers
      description: Gets a list of transfers.
      operationId: getTransfers
      parameters:
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).
            The value is zero-based, where `0` represents the first page.<br/>

            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          in: query
          description: Number of objects to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
        - name: with_labels
          in: query
          description: >-
            Returns transfers that contain any of the specified
            labels.<p>Example - `?with_labels=LABEL1,LABEL2`</p>
          required: false
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
        - name: without_labels
          in: query
          description: Returns transfers that do not contain any of the specified labels.
          required: false
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
        - name: include_labels
          in: query
          description: >-
            Returns labels added to each Transfer object. By default labels are
            not returned. <p>Example -
            `?with_labels=LABEL1&include_labels=true`</p>
          required: false
          schema:
            type: boolean
            default: false
        - name: state
          in: query
          description: Filter by transfer states.
          required: false
          schema:
            type: string
            enum:
              - PREPARED
              - EXECUTED
              - COMPLETED
              - FAILED
              - PENDING
        - name: internal_id
          in: query
          description: Optional parameter for filtering with internalId.
          required: false
          schema:
            type: string
        - name: sender_end_to_end_id
          in: query
          description: Optional parameter for filtering with sender end to end id.
          required: false
          schema:
            type: string
        - name: sort_field
          in: query
          description: Field used to sort the results.
          required: false
          schema:
            type: string
            enum:
              - CREATED_AT
              - MODIFIED_AT
        - name: sort_direction
          in: query
          description: Sort direction.
          required: false
          schema:
            type: string
            enum:
              - ASC
              - DESC
        - name: account
          in: query
          description: RippleNet account which is involved in transfer
          required: false
          schema:
            type: string
        - name: transfer_account_role
          in: query
          required: false
          description: >-
            by default account parameter would search both sender and receiver
            of transfer and bring the results. This is to restrict the account
            search to sender or receiver of a transfer
          schema:
            type: string
            enum:
              - SENDING
              - RECEIVING
      responses:
        '200':
          description: Successfully returned transfers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transfers'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /transfers/estimate:
    get:
      tags:
        - Transfers
      summary: Get transfer estimate
      description: >-
        Get an estimate of the fee to make an "outbound" transfer from an
        exchange (connected to xRapid) to an another account outside of
        RippleNet (such as a bank account). This operation is only available to
        xCurrent instances enabled as receivers of xRapid payments.
      operationId: getTransferEstimate
      security:
        - Bearer: []
      parameters:
        - in: query
          name: sender_address
          description: >-
            RippleNet address of the xRapid account from which the transfer is
            funded
          schema:
            type: string
            pattern: ^[^\s]+@[^\s]+$
        - in: query
          name: receiver_address
          description: >-
            RippleNet address representing an account outside of RippleNet to
            which the transfer amount is sent.
          schema:
            type: string
            pattern: ^[^\s]+@[^\s]+$
        - in: query
          name: amount
          description: The amount to be transferred
          schema:
            type: number
            minimum: 0
      responses:
        '200':
          description: Successfully retrieved estimate of transfer sending fee
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
  /transfers/{transfer_id}:
    get:
      tags:
        - Transfers
      summary: Get transfer by ID
      description: Gets a transfer by ID.
      operationId: getTransferById
      parameters:
        - name: transfer_id
          in: path
          description: Unique identifier of the transfer you want to retrieve.
          required: true
          schema:
            type: string
            format: uuid
        - name: include_labels
          in: query
          description: >-
            Returns labels added to each Transfer object. By default labels are
            not returned.
          required: false
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: Successfully retrieved transfer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferResponse'
        '404':
          description: Transfer not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /transfers/execute:
    post:
      tags:
        - Transfers
      summary: Execute transfer
      description: >-
        Transfers funds between accounts. For example, use this request to fund
        a connector account by transferring funds from a transactional account
        to the connector account. You can also use this request to redeem funds
        to a transactional account by transferring funds from a connector
        account to the transactional account.
      operationId: executeTransfer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferRequest'
        description: See Transfer Request Object.
        required: true
      responses:
        '200':
          description: Successfully executed transfer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /transfers/{transfer_id}/complete:
    post:
      tags:
        - Transfers
      summary: Complete transfer
      description: >-
        Updates the state of a transfer to `COMPLETED`. Make this request once
        the transfer has been made on both the ledger and on internal systems.
      operationId: completeTransfer
      parameters:
        - name: transfer_id
          in: path
          description: Unique identifier of the transfer you want to complete.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully completed transfer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferResponse'
        '404':
          description: Transfer not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /transfers/{transfer_id}/labels:
    put:
      tags:
        - Transfers
      summary: Add transfer labels
      description: >-
        Adds a list of labels to the transfer. To retrieve transfers by label,
        see [Get transfers][get-transfers].
      operationId: addTransferLabels
      parameters:
        - name: transfer_id
          in: path
          description: Transfer ID for the label being added.
          required: true
          schema:
            type: string
            format: uuid
        - name: label
          in: query
          description: Text of the label you want to add to the payment.
          required: true
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Successfully added one or more labels to the transfer.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
    delete:
      tags:
        - Transfers
      summary: Delete transfer labels
      description: Deletes one or more existing labels from the transfer.
      operationId: deleteTransferLabels
      parameters:
        - name: transfer_id
          in: path
          description: Transfer ID for the label being removed.
          required: true
          schema:
            type: string
            format: uuid
        - name: label
          in: query
          description: Labels to be removed.
          required: true
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Successfully deleted one or more labels of the transfer.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RippleNetProblem'
      security:
        - Bearer: []
  /v4/orchestration/payment:
    post:
      tags:
        - Orchestration payments
      summary: Create orchestration payment
      description: Creates an orchestration payment.
      operationId: createOrchestrationPayment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrchestrationPaymentRequest'
        required: true
      responses:
        '201':
          description: Successfully created orchestration payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrchestrationPaymentSubmitResponse'
    get:
      tags:
        - Orchestration payments
      summary: Get orchestration payments
      description: Gets a list of orchestration payments.
      operationId: getOrchestrationPayments
      parameters:
        - name: page
          in: query
          description: >
            The page number for [paginated
            results](/products/payments-odl/api-docs/ripplenet/best-practices/pagination/).


            The value is zero-based, where `0` represents the first page.


            Set it to `0` to get the first page of results.
          required: false
          schema:
            type: integer
        - name: size
          in: query
          description: Number of objects to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
        - name: sort_field
          in: query
          description: |
            Attribute to sort the results on.

            | Enum: | Sort by |
            | --- | --- |
            | CREATED_AT | Created date-time |
            | MODIFIED_AT | Modified date-time |
          required: false
          schema:
            type: string
            enum:
              - CREATED_AT
              - MODIFIED_AT
            default: MODIFIED_AT
        - name: sort_direction
          in: query
          description: |
            Direction of sorted results based on `sort_field`.

            | Enum: | Description |
            | --- | --- |
            | ASC | Sort ascending |
            | DESC | Sort descending |
          required: false
          schema:
            type: string
            enum:
              - ASC
              - DESC
            default: ASC
        - name: unique_reference_number
          in: query
          description: Parameter for filtering with unique reference number.
          required: false
          schema:
            type: string
        - name: orchestration_status
          in: query
          description: |
            Parameter for filtering with status of the orchestration payment.

            | Enum | Description |
            | --- | --- |
            | INITIAL | Filter by payments in the initial state |
            | RUNNING | Filter by payments in the running state |
            | COMPLETED | Filter by completed payments |
            | PAUSED | Filter by paused payments |
            | FAILURE | Filter by payment failures |
            | DECLINED | Filter by declined payments |
            | RETRY | Filter by payments that have a retry status |
          required: false
          schema:
            type: string
            enum:
              - INITIAL
              - RUNNING
              - COMPLETED
              - PAUSED
              - FAILURE
              - DECLINED
              - RETRY
        - name: range_field
          in: query
          description: >
            **Range field**


            Designates the column name of the payments database table that is
            used for filtering payments before/after/between time stamps.


            The following options are valid:

              | Range field | Description |
              | --- | --- |
              | CREATED_AT | Filter by created date-time |
              | MODIFIED_AT | Filter by modified date-time |

            **Example usage**


            If you specify `range_field` = `MODIFIED_AT`, you need to specify a
            time stamp (in the 24 character ISO 8601 format used in payment
            objects: `YYYY-MM-DDTHH:mm:ss.sssZ`) as the value for `before`
            and/or `after` to fetch payments before, after, or between the
            specified time range(s) (inclusive).


            **Dependency**: If you specify `range_field`, you must also specify
            `before` and/or `after`.
          required: false
          schema:
            type: string
        - name: before
          in: query
          description: >
            **Before** time stamp


            Filters for payments where the `range_field` column value is before
            this specified time stamp (inclusive).


            You can also specify `after` to create a time range between `after`
            and `before`.


            **Dependency**: If you specify `before`, you must also specify
            `range_field`.


            **Example**: `2023-10-13T10:16:29.000Z`
          required: false
          schema:
            type: string
        - name: after
          in: query
          description: >
            **After** time stamp


            Filters for payments where the `range_field` column value is after
            this specified time stamp (inclusive).


            You can also specify `before` to create a time range between `after`
            and `before`.


            **Dependency**: If you specify `after`, you must also specify
            `range_field`.


            **Example**: `2023-10-13T10:16:29.000Z`
          schema:
            type: string
      responses:
        '200':
          description: Successfully fetched all orchestration payments.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrchestrationPayments'
  /v4/orchestration/payment/{uniqueReferenceNumber}:
    get:
      tags:
        - Orchestration payments
      summary: Get orchestration payment
      description: Gets orchestration payment by unique reference number.
      operationId: getOrchestrationPayment
      parameters:
        - name: uniqueReferenceNumber
          in: path
          description: Unique reference number of the orchestration payment to fetch.
          required: true
          schema:
            type: string
            format: String
            minLength: 1
            maxLength: 64
            pattern: ^[a-zA-Z0-9@_,:\s-]*$
      responses:
        '200':
          description: Successfully returned orchestration payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrchestrationPaymentResponse'
  /v4/orchestration/payment/return:
    post:
      tags:
        - Orchestration payments
      summary: Return orchestration payment
      description: Returns the orchestration payment with customer end-to-end ID.
      operationId: returnOrchestrationPayment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrchestrationPaymentReturnRequest'
        required: true
      responses:
        '201':
          description: Successfully returned orchestration payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrchestrationPaymentSubmitResponse'
  /v4/orchestration/payment/accept:
    post:
      tags:
        - Orchestration payments
      summary: Accept orchestration payment
      description: >-
        Accepts the orchestration payment with customer end-to-end ID and Quote
        ID.
      operationId: acceptOrchestrationPayment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrchestrationPaymentAcceptRequest'
        required: true
      responses:
        '201':
          description: Successfully accepted orchestration payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrchestrationPaymentSubmitResponse'
  /v4/orchestration/payment/reversal:
    post:
      tags:
        - Orchestration payments
      summary: Reverse orchestration payment
      description: Reverses the orchestration payment with customer end-to-end ID.
      operationId: reverseOrchestrationPayment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrchestrationPaymentReversalRequest'
        required: true
      responses:
        '201':
          description: Successfully returned orchestration payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrchestrationPaymentSubmitResponse'
  /v4/orchestration/payment/notification:
    get:
      tags:
        - Orchestration payments
      summary: Get orchestration notifications by status
      description: Gets a list of orchestration payment notifications with a given status.
      operationId: getOrchestrationPaymentNotifications
      parameters:
        - name: status
          in: query
          description: The 'status' of the notifications to retrieve.
          required: true
          schema:
            type: string
            enum:
              - NEW
              - SENT
        - name: size
          in: query
          description: Number of objects to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
        - name: delay_time
          in: query
          description: Delay time in minutes to retrieve the SENT notifications.
          required: false
          schema:
            type: integer
            default: 30
        - name: range_field
          in: query
          description: >
            **Range Field**


            Designates the column name of the notifications database table that
            is used for filtering notifications before/after/between time
            stamps.


            The following options are valid:

              | Range field | Description |
              | --- | --- |
              | CREATED_AT | Filter by created date-time |
              | MODIFIED_AT | Filter by modified date-time |

            **Example usage**


            If you specify `range_field` = `MODIFIED_AT`, you need to specify a
            time stamp (in the 24 character ISO 8601 format used in
            notifications objects: `YYYY-MM-DDTHH:mm:ss.sssZ`) as the value for
            `before` and/or `after` to fetch notifications before, after, or
            between the specified time range(s) (inclusive).


            **Dependency**: If `range_field` is specified, `before` and/or
            `after` must also be specified.
          required: false
          schema:
            type: string
        - name: before
          in: query
          description: >
            **Before** time stamp


            Filters for notifications where the notifications `range_field`
            column value is before this specified time stamp (inclusive).


            You can also specify `after` to create a time range between `after`
            and `before`.


            **Dependency**: If you specify `before`, you must also specify
            `range_field`.


            **Example**: `2023-10-13T10:16:29.000Z`
          required: false
          schema:
            type: string
        - name: after
          in: query
          description: >
            **After** time stamp


            Filters for notifications where the notifications `range_field`
            column value is after this specified time stamp (inclusive).


            You can also specify `before` to create a time range between `after`
            and `before`.


            **Dependency**: If you specify `after`, you must also specify
            `range_field`.


            **Example**: `2023-10-13T10:16:29.000Z`
          schema:
            type: string
      responses:
        '200':
          description: Successfully fetched orchestration payment notifications list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationList'
  /v4/orchestration/payment/notification/urn/{uniqueReferenceNumber}:
    get:
      tags:
        - Orchestration payments
      summary: Get orchestration notifications by unique reference number
      description: >-
        Gets orchestration payment notifications with a given unique reference
        number.
      operationId: getOrchestrationPaymentNotificationsByUniqueReferenceNumber
      parameters:
        - name: uniqueReferenceNumber
          in: path
          description: >-
            The `sender_end_to_end_id` of the orchestration payment notification
            in case of sender and `payment_id` in case of receiver.
          required: true
          schema:
            type: string
            format: string
      responses:
        '200':
          description: Successfully fetched orchestration payment notifications.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationList'
  /v4/orchestration/payment/notification/{uuid}:
    get:
      tags:
        - Orchestration payments
      summary: Get orchestration notification
      description: Gets a given orchestration payment notification by UUID.
      operationId: getOrchestrationPaymentNotificationByUUID
      parameters:
        - name: uuid
          in: path
          description: The UUID of the orchestration payment notification.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully fetched orchestration paymnet notification.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationResponseRos'
  /v4/orchestration/payment/notification/{uuid}/ack:
    put:
      tags:
        - Orchestration payments
      summary: Acknowledge orchestration notification
      description: >-
        Acknowledges an orchestration payment notification with a specified
        UUID.
      operationId: acknowledgeOrchestrationPaymentNotificationByUUID
      parameters:
        - name: uuid
          in: path
          description: The UUID of the orchestration payment notification.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successfully updated orchestration payment notification status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationResponseRos'
  /v4/orchestration/payment/notification/ack:
    put:
      tags:
        - Orchestration payments
      summary: Acknowledge orchestration notifications
      description: >-
        Acknowledges multiple orchestration payment notifications using a list
        of UUIDs.
      operationId: acknowledgeOrchestrationPaymentNotifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationUUIDList'
        required: true
      responses:
        '200':
          description: Successfully acknowledged orchestration payment notifications.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationAckResponse'
  /v4/orchestration/payment/action:
    post:
      tags:
        - Orchestration payments
      summary: Post action to orchestration payment
      description: Posts action into the Orchestration service.
      operationId: sendOrchestrationPaymentAction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentActionRequest'
        required: true
      responses:
        '201':
          description: Successfully posted action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentActionResponse'
servers:
  - url: //[domainPrefix].ripplexcurrent.com/v4
components:
  requestBodies:
    PayoutMethodRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PayoutMethodRequest'
      required: true
    PaymentExpiry:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PaymentExpiry'
      required: true
    FiatFeeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FiatFeeRequest'
      required: true
    QuoteExpiry:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/QuoteExpiry'
      required: true
    RateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateRequest'
      required: true
    PaymentDenyRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PaymentDenyRequest'
      required: true
  securitySchemes:
    Bearer:
      type: apiKey
      description: >-
        All operations require a `Bearer` access token in the `Authorization`
        header of each request.<br>Learn about
        [authentication](/products/payments-odl/api-docs/ripplenet/best-practices/authentication/).
      name: Authorization
      in: header
  schemas:
    NotificationResponsePage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/NotificationResponse'
      description: Paged response for notifications requested
    NotificationResponse:
      type: object
      description: Notification details
      required:
        - notification_id
        - notification_type
        - notification_status
        - notification_priority
        - created_at
        - entity_type
        - entity_id
        - message_details
      properties:
        notification_id:
          type: string
          format: uuid
          description: Notification Id
        notification_type:
          type: string
          enum:
            - HEARTBEAT_EVENT
            - NEW_PEERING_EVENT
            - NEW_LIQUIDITY_RELATIONSHIP_EVENT
            - LOW_BALANCE_EVENT
          description: Context in which the notification is generated
        notification_status:
          type: string
          enum:
            - CREATED
            - DELIVERED
            - READ
            - DELETED
          description: Status of the notification
        notification_priority:
          type: string
          enum:
            - ERROR
            - INFO
            - WARN
          description: Priority of the notification
        created_at:
          type: string
          format: date-time
          description: >-
            Date and time at which the notification was created, as an ISO-8601
            timestamp in UTC.
        entity_type:
          type: string
          enum:
            - QUOTE
            - PAYMENT
            - TRANSFER
            - EXCHANGE
          description: RippleNet entity for which the notification has been generated
        entity_id:
          type: string
          format: uuid
          description: >-
            Entity id of the RippleNet entity for which the notification has
            been generated
        message_details:
          type: string
          description: Summary description of the notification
        source_address:
          type: string
          description: RippleNet address of the host that has created the notification
        destination_address:
          type: string
          description: RippleNet address of the host that needs to receive the notification
        notification_details:
          type: string
          description: Payload of the notification object
    Accounts:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/AccountResponse'
      description: 'Paged response for accounts includes:'
    AccountRequest:
      type: object
      required:
        - currency
        - name
        - owner
      properties:
        name:
          type: string
          example: conct_usd_sf
          description: >-
            Provide the name of the account. This value must be unique within
            the xCurrent instance.
        owner:
          type: string
          example: rn.us.ca.san_francisco
          description: Provide the RippleNet address of the owner of the account.
        currency:
          type: string
          example: USD
          description: >-
            Provide the currency of the account. Ripple recommends using
            [ISO-4217](https://www.iso.org/iso-4217-currency-codes.html)
            currency codes, although no formal constraint is enforced.
        core_ledger_ref:
          type: string
          example: bitso
          description: >-
            Core ledger reference key. This could be a bank account number for
            fiat, exchange name for exchange accounts, or a ledger reference for
            digital accounts. This field is required for exchange accounts
        rounding_mode:
          type: string
          description: >-
            Set to determine whether calculations for this account should be
            rounded up or down to maintain precision.
          enum:
            - HALF_UP
            - HALF_DOWN
            - DOWN
          default: HALF_UP
        scale:
          type: integer
          description: >-
            Set to the number of decimal places to be used when calculating
            rounding for this account. The allowable range is `0-9`.
          default: 2
        low_liquidity_threshold:
          type: number
          example: 1000
          description: >-
            If the balance of a sender account meets or goes below this
            `low_liquidity_threshold` value after settlement execution, a
            low-liquidity message is logged at the INFO level.
        minimum_allowed_balance:
          type: number
          description: Set to the minimum balance allowed for the account.
          default: -100000
        maximum_allowed_balance:
          type: number
          description: Set to the maximum balance allowed for the account.
          default: 72036854775
        platform_account_id:
          type: string
          format: uuid
          description: Platform account ID associated with this RippleNet account.
        external_account_id:
          type: string
          description: >-
            Used to link a customer’s account ID on their systems to their
            RippleNet account.
        account_description:
          type: string
          description: Description associated with this RippleNet account.
      description: >-
        Use this JSON request object to create an account in the xCurrent
        ledger.
    AccountResponse:
      type: object
      required:
        - balance
        - currency
        - disabled
        - low_liquidity_threshold
        - maximum_allowed_balance
        - minimum_allowed_balance
        - name
        - owner
        - owner_max_allowed_balance
        - owner_min_allowed_balance
        - rounding_mode
        - scale
      properties:
        name:
          type: string
          example: conct_usd_sf
          description: Account name and unique identifier on RippleNet.
        balance:
          type: number
          example: 0
          description: Balance available in the account.
        owner:
          type: string
          example: rn.us.ca.san_francisco
          description: RippleNet address of the owner of the account.
        currency:
          type: string
          example: USD
          description: Currency supported by the account.
        disabled:
          type: boolean
          example: false
          description: >-
            Indicates whether the account is disabled (`true`) or active
            (`false`).
        minimum_allowed_balance:
          type: number
          example: -1000000
          description: >-
            Minimum balance allowed for the account. For nostro accounts,
            RippleNet Server uses the greater of this value and the
            `owner_min_allowed_balance` to set the account balance minimum.
        maximum_allowed_balance:
          type: number
          example: 9999999999999900000
          description: >-
            Maximum balance allowed for the account. For nostro accounts,
            RippleNet Server uses the lesser of this value and the
            `owner_max_allowed_balance` to set the account balance maximum.
        core_ledger_ref:
          type: string
          example: bitso
          description: >-
            Core ledger reference key. This could be a bank account number for
            fiat, exchange name for exchange accounts, or a ledger reference for
            digital accounts. This field is required for exchange accounts
        rounding_mode:
          type: string
          example: HALF_UP
          description: >-
            Determines whether calculations for this account are rounded up or
            down to maintain precision.
          enum:
            - HALF_UP
            - HALF_DOWN
            - DOWN
          default: HALF_UP
        scale:
          type: integer
          example: 2
          description: >-
            Number of decimal places used when calculating rounding for this
            account.
        low_liquidity_threshold:
          type: number
          example: 1000
          description: >-
            When the sender's account `balance` is less than or equal to this
            amount, after payment settlement execution, a low-liquidity message
            is logged at the INFO level.
        owner_min_allowed_balance:
          type: number
          example: -100000
          description: >-
            Minimum balance allowed by the owner of a nostro account. RippleNet
            Server uses the greater of this value and the
            `minimum_allowed_balance` to set the account balance minimum.
        owner_max_allowed_balance:
          type: number
          example: 72036854775
          description: >-
            Maximum balance allowed by the owner of a nostro account. RippleNet
            Server uses the lesser of this value and the
            `maximum_allowed_balance` to set the account balance maximum.
        platform_account_id:
          type: string
          format: uuid
          description: Platform account ID associated with this RippleNet account.
        external_account_id:
          type: string
          description: >-
            Customer's account ID on their systems associated with this
            RippleNet account.
        account_description:
          type: string
          description: Description associated with this RippleNet account.
      description: Represents an account on the xCurrent ledger.
    AccountUpdateAllowedBalanceRequest:
      type: object
      properties:
        minimum_allowed_balance:
          type: number
          example: -1000000
          description: >-
            Set to the minimum balance allowed for the account. Updates the
            value of `minimum_allowed_balance` for the account.
        maximum_allowed_balance:
          type: number
          example: 9999999999999900000
          description: >-
            Set to the maximum balance allowed for the account. Updates the
            value of `maximum_allowed_balance` for the account.
        core_ledger_ref:
          type: string
          example: bitso
          description: >-
            Core ledger reference key. This could be a bank account number for
            fiat, exchange name for exchange accounts, or a ledger reference for
            digital accounts. This field is required for exchange accounts
        enable:
          type: boolean
          example: true
          default: true
          description: >-
            Indicates whether the account should be disabled (`false`) or active
            (`true`).
        platform_account_id:
          type: string
          format: uuid
          description: Platform account ID associated with this RippleNet account.
        external_account_id:
          type: string
          description: >-
            Used to link a customer’s account ID on their systems to their
            RippleNet account.
        account_description:
          type: string
          description: Description associated with this RippleNet account.
      description: >-
        Use this JSON request object to update the minimum and maximum balance
        limits for an account.
    NostroAccountUpdateAllowedBalanceRequest:
      type: object
      properties:
        minimum_allowed_balance:
          type: number
          example: -1250000
          description: >-
            Set to the minimum balance allowed for the nostro account. Updates
            the value of `minimum_allowed_balance` for the account. Allows owner
            of nostro account to increase the account minimum and override the
            value set by partner.
        maximum_allowed_balance:
          type: number
          example: 1000000
          description: >-
            Set to the maximum balance allowed for the nostro account. Updates
            the value of `maximum_allowed_balance` for the account. Allows owner
            of nostro account to decrease the account maximum and override the
            value set by partner.
        core_ledger_ref:
          type: string
          example: bitso
          description: >-
            Core ledger reference key. This could be a bank account number for
            fiat, exchange name for exchange accounts, or a ledger reference for
            digital accounts. This field is required for exchange accounts
        enable:
          type: boolean
          example: true
          default: true
          description: >-
            Indicates whether the account should be disabled (`false`) or active
            (`true`).
      description: >-
        Use this JSON request object to update the minimum and maximum balance.
        limits for an account.
    PaymentQuoteRequest:
      type: object
      required:
        - amount
        - currency
        - quote_type
        - receiving_address
        - sending_address
      properties:
        sending_address:
          type: string
          example: sf@rn.us.ca.san_francisco
          description: |
            RippleNet account name and address of the sender.

            **Format**: `accountname@ripplenetaddress`

            **Example**: `new_york@rn.us.ny.new_york`
        receiving_address:
          type: string
          example: sf_gbp@rn.us.ca.san_francisco
          description: |
            RippleNet account name and address of the receiver.

            **Format**: `accountname@ripplenetaddress`

            **Example**: `new_york@rn.us.ny.new_york`
        amount:
          type: string
          minimum: 1
          example: '1'
          description: >
            Amount to be sent or received, depending on the `quote_type`.


            Use this table to determine what `amount` to assign.


            **Example**: `"1"`


            | Quote type | Amount |

            | --- | --- |

            | SENDER_AMOUNT | Amount to be sent by the payment originator |

            | SENDER_INSTITUTION_AMOUNT | Set to `SENDER_INSTITUTION_AMOUNT` to
            calculate the quote based on the amount to be sent, plus any fees
            collected by the sending institution |

            | RECEIVER_AMOUNT | Amount to be received by the payment beneficiary
            |

            | RECEIVER_INSTITUTION_AMOUNT | Set to `RECEIVER_INSTITUTION_AMOUNT`
            to calculate the quote based on the amount to be received, minus any
            fees collected by the receiving institution |
        currency:
          type: string
          example: USD
          description: >
            Currency code of the amount to be sent or received, depending on the
            `quote_type`.


            Use this table to determine what `currency` code to assign.


            **Example**: `USD`


            | Quote type | Currency code description |

            | --- | --- |

            | SENDER_AMOUNT | Specify the currency code for the sending
            currency, for example `USD` |

            | SENDER_INSTITUTION_AMOUNT | Specify the currency code for the
            sending currency, for example `USD` |

            | RECEIVER_AMOUNT | Specify the currency code for the receiving
            currency, for example `USD` |

            | RECEIVER_INSTITUTION_AMOUNT | Specify the currency code for the
            receiving currency, for example `USD` |
        quote_type:
          type: string
          example: SENDER_AMOUNT
          description: |
            Specifies how to calculate the quote.

            **Example**: `SENDER_AMOUNT`
          enum:
            - SENDER_AMOUNT
            - RECEIVER_AMOUNT
            - SENDER_INSTITUTION_AMOUNT
            - RECEIVER_INSTITUTION_AMOUNT
          x-enumDescriptions:
            SENDER_AMOUNT: >-
              Quote based on the amount the payment originator or originating
              institution wants to send
            SENDER_INSTITUTION_AMOUNT: >-
              Quote based on the amount (to debit the originator) is `amount`
              plus any fees to be collected by the sending institution
            RECEIVER_AMOUNT: >-
              Quote based on the amount the payment beneficiary or beneficiary
              institution should receive
            RECEIVER_INSTITUTION_AMOUNT: >-
              The amount (to credit the beneficiary) is `amount` minus any fees
              to be collected by the receiving institution
        sender_or_receiver_currency:
          type: string
          description: |
            Currency code of the sender or receiver based on `quote_type`.

            If provided, you can use this to filter the options for quotes.
          example: USD
        custom_fee:
          type: number
          description: >
            Custom fee for the sending account.


            Setting this field overrides all fees configured on the sender's
            RippleNet instance.
        custom_rate:
          $ref: '#/components/schemas/PaymentQuoteCustomRateRequest'
        quote_route:
          type: array
          example:
            - rn.us.ca.san_francisco
            - rn.us.tx.austin
            - rn.us.ny.new_york
          description: >
            Custom route that quote must follow.


            Provide an array of RippleNet address strings that convey the route
            the quote must follow.


            **Example**: `g.us.ca.san_francisco`
          items:
            type: string
        payment_method:
          type: string
          description: >
            Payout method for the quote.


            Senders can use this field to define the payout method that the
            receiver should use to deliver the payment to end

            customer.


            On-Demand Liquidity (ODL) receivers should set `payment_method` to
            the `outlet_id` or the string `none` (not an empty value)

            to keep funds at the destination exchange when paying out to a local
            rail.


            **Caution**: The existing quote parameter is named `payment_method`
            while elsewhere it is `payout_method`.
        enable_quote_per_payout_method:
          type: boolean
          example: true
          description: >-
            Enable this flag to generate quotes using payout methods configured
            by the receiver.
        digital_asset_origination:
          type: boolean
          description: >
            When true, this flag tells RippleNet to provide a full quote as if
            the payment originates in the specified source fiat currency.


            The quote for the source exchange excludes trading fees.


            On execution, the source exchange trade is skipped, and XRP is
            withdrawn from the source exchange as the first step.
          example: false
        force_path_finding_and_liquidity_path_finding:
          type: boolean
          description: >
            When true, this flag tells RippleNet to ignore cached value for path
            finding and liquidity path finding.


            Force performing new path finding and liquidity path finding.
          example: false
          default: false
        payout_method_category:
          type: string
          example: BOOK_TRANSFER
          description: >-
            Category the payout method will be associated with. Defaults to
            `OTHER` if not specified.
          enum:
            - REAL_TIME_GROSS_SETTLEMENT_SYSTEM
            - REAL_TIME_NET_SETTLEMENT_SYSTEM
            - MASS_NET_PAYMENT_SYSTEM
            - BOOK_TRANSFER
            - CASH_PAYOUT
            - WALLET_PAYMENT
            - OTHER
          x-enumDescriptions:
            REAL_TIME_GROSS_SETTLEMENT_SYSTEM: Real-time gross settlement system
            REAL_TIME_NET_SETTLEMENT_SYSTEM: Real-time net settlement system
            MASS_NET_PAYMENT_SYSTEM: Mass net payment system
            BOOK_TRANSFER: Book transfer
            CASH_PAYOUT: Cash payout
            WALLET_PAYMENT: Wallet payment
            OTHER: Other
        sender_segregated_account:
          type: string
          maxLength: 254
          example: conct_php_receiver_coins_sender@receiver
          description: >
            RippleNet account name and address of the sender owned account at
            receiver to be used for failure conversion (in case of payment
            failure).


            **Format**: `accountname@ripplenetaddress`


            **Example**: `new_york@rn.us.ny.new_york`
        quote_limit:
          type: integer
          description: >-
            Flag for truncating the total amount of quotes to a maximum amount
            after sorting and filters are applied. Optional.
        quote_filter_types:
          type: array
          description: Filter on a type of quote.
          items:
            type: string
            enum:
              - LIQUIDITY_WARNINGS
              - QUOTE_ERRORS
            x-enumDescriptions:
              LIQUIDITY_WARNINGS: Filter for liquidity warnings
              QUOTE_ERRORS: Filter for quote errors
      description: JSON request object to generate a quote collection.
    PaymentQuoteCustomRateRequest:
      type: object
      required:
        - base_currency
        - counter_currency
        - rate
        - rate_type
      properties:
        rate:
          type: number
          description: Exchange rate for a base and counter currency.
        base_currency:
          type: string
          description: Base currency of the exchange rate.
        counter_currency:
          type: string
          description: Counter currency of the exchange rate.
        rate_type:
          type: string
          enum:
            - buy
            - sell
          description: >-
            Order type for the exchange rate. Valid values are `sell` or `buy`.
            <p><ul><li>When rate_type = buy, `base_currency` is source ccy and
            `counter_currency` is destination ccy.</li> <li>When rate_type =
            sell, `base_currency` is destination ccy and `counter_currency` is
            source ccy.</li> </ul></p>
      description: >-
        JSON request object to specify a custom exchange rate during quote
        collection generation.
    QuoteCollection:
      type: object
      required:
        - quote_collection_id
        - quotes
      properties:
        quote_collection_id:
          type: string
          format: uuid
          example: 4711728c-cd35-49ec-96a5-72732b4333ec
          description: Unique identifier of the quote collection.
        quotes:
          type: array
          items:
            $ref: '#/components/schemas/Quote'
          description: >-
            For more information on quote elements, see [Create quote
            collections](/products/payments-odl/api-docs/ripplenet/tutorials/configure-fees#create-quote-collections).
        quote_errors:
          type: array
          items:
            $ref: '#/components/schemas/QuoteError'
      description: >-
        When provided as a response to the [Create quote
        collection](#operation/createQuoteCollection) request, provides a JSON
        object representing quotes for a proposed payment. <p>When provided as a
        response to the [Create quote to return
        payment](#operation/createQuoteToReturnPayment)  request, provides a
        JSON object representing quotes for a proposed return payment.</p>
        <p>When provided as a response to the [Reverse
        Payment](#operation/createQuoteToReversePayment) request, provides a
        JSON object representing a quote for a proposed reverse payment.</p>
        <p>When provided as a response to the [Get quote collection by
        ID](#operation/createQuoteCollection) request, provides the requested
        quote collection.</p>
    QuoteError:
      type: object
      required:
        - failed_path
        - error_message
      properties:
        failed_path:
          type: array
          description: Quote path that failed.
          items:
            $ref: '#/components/schemas/QuotePathRos'
        error_origin:
          type: string
          description: >-
            RippleNet address of where the error originated. For example,
            `rn.us.ny.new_york`.
        error_message:
          type: string
          description: Message that describes the error.
      description: Object that describes an error that happened during quote collection.
      x-docs-model-object:
        object-name: Quote Error Object
        nested-objects-array:
          - property-name: failed_path
            object: quote-path
            docs-name: Quote Path Array
            data-type: Array
            has-nested-display: true
    QuotePath:
      type: object
      required:
        - source
        - destination
        - source_currency
        - destination_currency
      properties:
        source:
          type: string
          description: >-
            RippleNet account name and address of the source account, in the
            format `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        destination:
          type: string
          description: >-
            RippleNet account name and address of the destination account, in
            the format `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        source_currency:
          type: string
          description: Currency associated with the source account.
        destination_currency:
          type: string
          description: Currency associated with the destination account.
        account_liquidity_relationship_id:
          type: string
          format: uuid
          example: 480e3a6f-3bcd-48cd-9ce9-9d940aa3c9c6
          description: Unique identifier for an account liquidity relationship.
        peer_liquidity_relationship_id:
          type: string
          format: uuid
          example: 480e3a6f-3bcd-48cd-9ce9-9d940aa3c9c6
          description: Unique identifier for a peer liquidity relationship.
        quote_path_order:
          type: integer
          example: 1
          description: Order of each quote path.
      description: Object that describes a liquidity path used to generate a quote.
    Quote:
      type: object
      required:
        - amount
        - created_at
        - currency_code
        - currency_code_filter
        - expires_at
        - liquidity_warning
        - price_guarantee
        - quote_elements
        - quote_id
        - receiver_address
        - sender_address
        - service_type
        - type
      properties:
        quote_id:
          type: string
          format: uuid
          example: 2a547e56-4aac-4375-86a8-8b3e7014801d
          description: Unique identifier for the quote.
        created_at:
          type: string
          format: date-time
          example: '2020-01-29T20:59:44.925Z'
          description: >-
            Date and time at which the quote was created, as an ISO-8601
            timestamp in UTC.
        expires_at:
          type: string
          format: date-time
          example: '2020-01-29T21:29:44.925Z'
          description: >-
            Date and time after which the quote and its pricing expire, as an
            ISO-8601 timestamp in UTC.
          default: 300s/300000ms
        type:
          type: string
          example: SENDER_AMOUNT
          description: >-
            Indicates how the amount field should be treated for calculating
            quote values.
          enum:
            - SENDER_AMOUNT
            - RECEIVER_AMOUNT
            - SENDER_INSTITUTION_AMOUNT
            - RECEIVER_INSTITUTION_AMOUNT
            - REVERSAL_AMOUNT
        price_guarantee:
          type: string
          example: FIRM
          description: >-
            Indicates whether a quote's pricing is `INDICATIVE` or `FIRM`. An
            `INDICATIVE` quote allows for price movements between quote issuance
            and payment execution, such that the quoted amount and delivered
            amount may differ. A `FIRM` quote ensures that the quoted and
            delivered payment amounts are equal.
          default: FIRM
        sender_address:
          type: string
          example: sf@rn.us.ca.san_francisco
          description: >-
            RippleNet account name and address of the sender, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        receiver_address:
          type: string
          example: sf_gbp@rn.us.ca.san_francisco
          description: >-
            RippleNet account name and address of the receiver, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        amount:
          type: string
          example: '1'
          description: Amount to be sent or received, depending on the `type` value.
        currency_code:
          type: string
          example: USD
          description: Currency code for the `amount` value.
        currency_code_filter:
          type: string
          example: EUR
          description: >-
            Currency code that can be used to filter quotes at the opposite end
            of the quote request. For example, you can filter by this currency
            code to find the receiving currency for a quote with a
            `SENDER_AMOUNT` quote_type. If not sent in the request, this field
            value is set to `null`.
        service_type:
          type: string
          description: Returns `null`.
        quote_elements:
          type: array
          description: >-
            Transfer and exchange elements. A transfer element represents a
            movement of funds between two accounts. An exchange element
            represents the exchange of currencies between two accounts.
          items:
            $ref: '#/components/schemas/QuoteElement'
        liquidity_warning:
          type: string
          description: >-
            Triggered when a quote causes an account to go below its
            `minimum_allowed_balance`. Otherwise, this field value is set to
            `null`.
        payment_method:
          type: string
          example: LOCAL_RAILS
          description: Payout method for the quote.
        payment_method_fields:
          type: string
          example: >-
            {"category_id":"bank","required_originator_fields":[{"field_name":"sender_address","field_label":"Sender
            address"}]}
          description: JSON object containing payment method metadata.
        payout_method_info:
          type: object
          description: Details about the payout method.
          properties:
            payout_method_name:
              type: string
              example: Cash Payout
              description: Payout method for the quote.
            payout_method_category:
              type: string
              example: BOOK_TRANSFER
              description: >-
                Category of the payout method. Defaults to <code>OTHER</code> if
                not specified.
              enum:
                - REAL_TIME_GROSS_SETTLEMENT_SYSTEM
                - REAL_TIME_NET_SETTLEMENT_SYSTEM
                - MASS_NET_PAYMENT_SYSTEM
                - BOOK_TRANSFER
                - CASH_PAYOUT
                - WALLET_PAYMENT
                - OTHER
            description:
              type: string
              example: local rails
              description: User defined description of the payout method.
            estimated_time_to_credit:
              type: string
              example: 3 days
              description: >-
                The estimated time to credit the beneficiary using this payout
                method.
      description: >-
        JSON response object that represents a quote for a proposed payment or
        return payment.
    QuoteElement:
      type: object
      required:
        - quote_element_id
        - quote_element_order
        - quote_element_type
        - receiver_address
        - receiving_amount
        - receiving_fee
        - sender_address
        - sending_amount
        - sending_fee
      properties:
        quote_element_id:
          type: string
          format: uuid
          example: 259189e7-cb14-42e7-99ef-375f3285e356
          description: Unique identifier for the quote element.
        quote_element_type:
          type: string
          example: EXCHANGE
          description: >-
            Type of quote element.<p><ul> <li>`TRANSFER` represents the movement
            of funds between two accounts.</li> <li>`EXCHANGE` represents the
            exchange of currencies between two accounts.</li>
            <li>`EXCHANGE_TRADE` represents the exchange of fiat to digital
            currency on a digital exchange.</li> <li>`CRYPTO_TRANSFER`
            represents the movement of digital funds between two digital
            exchanges.</li> </ul></p>
          enum:
            - TRANSFER
            - EXCHANGE
            - EXCHANGE_TRADE
            - CRYPTO_TRANSFER
        quote_element_order:
          type: string
          example: '1'
          description: >-
            Order of each quote element along the liquidity path. If a quote
            includes five quote elements, each one is enacted according to its
            quote_element_order number to make the proposed payment.
        sender_address:
          type: string
          example: sf@rn.us.ca.san_francisco
          description: >-
            RippleNet account name and address of the sender, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        receiver_address:
          type: string
          example: sf_gbp@rn.us.ca.san_francisco
          description: >-
            RippleNet account name and address of the receiver, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        sending_amount:
          type: number
          example: 1
          description: Amount the sender is sending.
        receiving_amount:
          type: number
          example: 355
          description: Amount the receiver is receiving.
        sending_fee:
          type: number
          example: 0
          description: >-
            Fees the sender is charging. When `quote_element_type` is set to
            `EXCHANGE`, this field value is always set to `0`.
        receiving_fee:
          type: number
          example: 0
          description: >-
            Fees the receiver is charging. When `quote_element_type` is set to
            `EXCHANGE`, this field value is always set to `0`.
        sending_currency_code:
          type: string
          example: USD
          description: >-
            Currency code of the sending amount. Included in quote elements with
            `quote_element_type` set to `EXCHANGE`.
        receiving_currency_code:
          type: string
          example: GBP
          description: >-
            Currency code of the receiving amount. Included in quote elements
            with `quote_element_type` set to `EXCHANGE`.
        fx_rate:
          $ref: '#/components/schemas/FXRate'
        transfer_currency_code:
          type: string
          description: >-
            Currency code of the transfer. Included in quote elements with
            `quote_element_type` set to `TRANSFER`.
      description: >-
        JSON object that provides transfer and exchange elements used to provide
        the quote. A transfer element represents the transfer of currency
        between two accounts. An exchange element represents the exchange of
        currencies between two accounts.
    FXRate:
      type: object
      required:
        - base_currency_code
        - counter_currency_code
        - rate
        - type
      properties:
        rate:
          type: number
          example: 3.25
          description: Exchange rate between a base and counter currency.
        base_currency_code:
          type: string
          example: USD
          description: Currency code of the base currency.
        counter_currency_code:
          type: string
          example: GBP
          description: Currency code of the counter currency.
        type:
          type: string
          example: buy
          description: Order type of the exchange rate. Valid values are `buy` or `sell`.
      description: The details of an FX Rate for a quote or payment.
    PaymentReturnQuoteRequest:
      type: object
      required:
        - original_payment_id
      properties:
        original_payment_id:
          type: string
          format: uuid
          example: d485f100-2af7-4e48-9ab1-3c7e28775691
          description: ID of the original payment to be returned.
        return_reasons:
          type: object
          description: >
            Object with `key` and `value` pairs that describe the reason the
            payment is being returned.


            The fields should contain the following `key` values: `reason`,
            `code`, and `type`.


            These values are included in a payment created from a quote in the
            response. They are included in the `user_info.returned` array for
            the node sending the return payment.
          properties: {}
          example:
            REASON: Wrong receiving amount
            TYPE: Account Error
            CODE: A-999
        return_amount_type:
          type: string
          example: TOTAL_RECEIVED_MINUS_FEES
          description: >-
            Amount type of the return payment.<p>To indicate that the sender of
            the return payment will send the amount it received, set to
            `TOTAL_RECEIVED`.</p><p>To indicate that the sender of the return
            payment will send the amount it received minus its receiving fees,
            set to `TOTAL_RECEIVED_MINUS_FEES`.</p>
          enum:
            - TOTAL_RECEIVED
            - TOTAL_RECEIVED_MINUS_FEES
          default: TOTAL_RECEIVED
        custom_fee:
          type: number
          description: >-
            Custom fee charged and collected by the sending account. Setting
            this field overrides all applicable fees configured on the sender's
            RippleNet instance.
        custom_rate:
          $ref: '#/components/schemas/PaymentQuoteCustomRateRequest'
        force_path_finding_and_liquidity_path_finding:
          type: boolean
          description: >-
            When true, this flag tells RippleNet to ignore cached value for path
            finding and liquidity path finding and perform new path finding and
            liquidity path finding.
          example: false
          default: false
        receiver_address:
          type: string
          example: sf@rn.us.ca.san_francisco
          description: >-
            The desired receiving account for the return payment as a RippleNet
            address. This account must be owned by the original payment's
            sender.
      description: >-
        Use this JSON request object to generate a collection of quotes that can
        be used to return a payment.
    PaymentReversalQuoteRequest:
      type: object
      required:
        - original_payment_id
        - reversal_reason
      properties:
        original_payment_id:
          type: string
          format: uuid
          example: d485f100-2af7-4e48-9ab1-3c7e28775691
          description: ID of the original payment to be reversed.
        reversal_reason:
          $ref: '#/components/schemas/PaymentReversalReason'
      description: >-
        Use this JSON request object to generate a collection of quotes that can
        be used to reverse a payment.
    PaymentReversalReason:
      type: object
      required:
        - code
      properties:
        code:
          type: string
          example: RB001
          description: >-
            The code indicating the reason for payment reversal. For code
            descriptions and error handling information, see [Returns and
            failure
            codes](/products/payments-odl/api-docs/ripplenet/resources/error-codes/returns-and-error-codes/).
          enum:
            - RB001
            - RB002
            - RB003
            - RB004
            - RB005
            - RB008
            - RB009
            - RB010
            - RB011
            - RB012
            - RB013
            - RB017
            - RB018
            - RB023
            - RB024
            - RB026
            - RB027
            - RB028
            - RB029
            - RB030
            - RB031
            - RB032
            - RB033
            - RB034
            - RB035
            - RB036
            - RB037
            - AC01
            - AC03
            - AC04
            - AC06
            - AC08
            - AC09
            - AC11
            - AC12
            - AC13
            - AC14
            - AC15
            - AG01
            - AG02
            - AG03
            - AG05
            - AG06
            - AM02
            - AM03
            - AM04
            - AM11
            - AM13
            - AM14
            - AM15
            - AM21
            - AM22
            - BE01
            - BE04
            - BE05
            - BE06
            - BE07
            - BE08
            - BE09
            - BE10
            - BE11
            - BE12
            - BE13
            - BE14
            - BE15
            - BE16
            - BE17
            - BE18
            - BE19
            - BE20
            - BE21
            - BE22
            - CERI
            - CH11
            - CH12
            - CH13
            - CH14
            - CH21
            - CNOR
            - CUST
            - DS24
            - DU05
            - DUPL
            - ED06
            - FF03
            - FF04
            - FF05
            - FF06
            - FF07
            - FF08
            - FF10
            - MD06
            - MD07
            - MS02
            - MS03
            - NARR
            - RC01
            - RC02
            - RC04
            - RC05
            - RC07
            - RC08
            - RC10
            - RC12
            - RF01
            - RR01
            - RR02
            - RR03
            - RR04
            - RR05
            - RR06
            - RR07
            - RR10
        description:
          type: string
          example: No account / Unable to locate account
          description: >-
            Optional. User-defined string describing the reason for payment
            reversal. When using the reversal reason code `NARR` (Narrative),
            you must specify the reason for the return in the `reversal_reason`
            object's `description` attribute.
      description: A structured object detailing reasons for a payment reversal.
    PaymentAcceptRequest:
      type: object
      required:
        - quote_id
      properties:
        quote_id:
          type: string
          format: uuid
          example: 9bb53b3b-a774-43e2-9a1b-f18fbc3640f7
          description: ID of the quote to accept and continue as a payment.
        sender_end_to_end_id:
          type: string
          maxLength: 128
          description: >-
            ID that the sender can specify. Persisted on all RippleNet instances
            that participate in the payment.
        internal_id:
          type: string
          maxLength: 128
          description: >-
            Internal ID that the sender can specify. Only visible to the sender.
            Only the sending RippleNet instance stores this ID.
        user_info:
          type: object
          description: >
            Your receiver defines the required [User
            info](/products/payments-odl/api-docs/ripplenet/resources/srpo/user-info)
            structure. Provide the structure as required by your use case.


            **Payout Service (SLS) customers**: Use the ISO20022 descriptions
            used with the [RippleNet Payment Object
            (RPO)](/products/payments-odl/api-docs/ripplenet/resources/srpo/supporting-info-full-json-schema)
            structure.


            **One-to-one liquidation customers**: Use the [Outbound
            instructions](/products/payments-odl/api-docs/ripplenet/resources/outbound-instructions/#payout-examples)
            format.
          properties: {}
      description: >-
        Use this JSON request object to accept a quote ID to start the payment
        process.
    FilteredPayment:
      type: object
      description: >-
        A sanitized payment with sensitive content filtered from the `user_info`
        object.
      allOf:
        - $ref: '#/components/schemas/BasePayment'
        - type: object
        - $ref: '#/components/schemas/UserInfoArray'
    UserInfoArray:
      properties:
        user_info:
          type: array
          description: >-
            Collection of user-provided data whose keys are filtered based on a
            configurable denylist.
          items:
            $ref: '#/components/schemas/UserInfo'
    BasePayment:
      type: object
      required:
        - contract
        - contract_hash
        - crypto_transaction_id
        - execution_condition
        - execution_results
        - modified_at
        - payment_id
        - payment_state
        - payment_type
        - returned_by_payment_with_id
        - returns_payment_with_id
        - validator
      properties:
        payment_id:
          type: string
          format: uuid
          example: d485f100-2af7-4e48-9ab1-3c7e28775691
          description: Unique identifier of a payment.
        contract_hash:
          type: string
          example: ccb23bd87f13cc13b9d616a9723f76e112aeac8628b2082e0f8bf3b8c670b103
          description: >-
            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:
          type: string
          example: COMPLETED
          description: >-
            State of the payment. For details about payment states, see
            **Payment States** in the _RippleNet Developer Guide_.
          enum:
            - ACCEPTED
            - AWAITING_COLLECTION
            - COMPLETED
            - EXECUTED
            - FAILED
            - FORWARDED
            - LOCK_DECLINED
            - LOCKED
            - PREPARED
            - RETURNED
            - SETTLEMENT_DECLINED
        modified_at:
          type: string
          format: date-time
          example: '2019-10-01T18:25:47.347Z'
          description: >-
            Date and time at which the payment was last modified, as an ISO-8601
            timestamp in UTC.
        contract:
          $ref: '#/components/schemas/PaymentContract'
        ripplenet_info:
          type: array
          description: >-
            Application-provided data explaining actions taken by RippleNet
            applications.
          items:
            $ref: '#/components/schemas/RippleNetInfo'
        execution_condition:
          type: string
          example: >-
            PrefixSha256Condition{subtypes=[ED25519-SHA-256],
            type=PREFIX-SHA-256,
            fingerprint=sfGGHCrkyaMsLQNB62w_4zarlPChHKm47JkXVQbs1z0,
            cost=132360}
          description: >-
            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:
          type: string
          example: 4e05da26-7872-4a1f-b9b7-db7604757c37
          description: >-
            Unique identifier of the crypto transaction associated with this
            payment.
        validator:
          type: string
          example: rn.us.ca.san_francisco
          description: Address of the validator that validated the payment.
        payment_type:
          type: string
          example: REGULAR
          description: Payment type.
          enum:
            - REGULAR
            - RETURN
        returns_payment_with_id:
          type: string
          format: uuid
          description: >-
            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:
          type: string
          format: uuid
          description: >-
            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:
          type: array
          description: >-
            Represents the actual movement of funds in a payment. Each execution
            result corresponds to a quote element and represents its execution
            in a payment.
          items:
            $ref: '#/components/schemas/ExecutionResult'
        liquidation_execution_results:
          type: array
          description: >-
            Represents the actual movement of funds in a payment as part of
            liquidation of a Wallet Receive payment.
          items:
            $ref: '#/components/schemas/ExecutionResult'
        liquidation_details:
          $ref: '#/components/schemas/LiquidationDetails'
        push_forward_execution_results:
          type: array
          description: >-
            Represents the movement of funds after an On-Demand Liquidity
            payment fails at intermediary transfer or destination exchange.
          items:
            $ref: '#/components/schemas/ExecutionResult'
      description: >-
        JSON response object that represents a payment. A payment is the
        movement of value across accounts on potentially different RippleNet
        instances involving one or more currencies.
    Payment:
      description: >-
        JSON response object that represents a payment. A payment is the
        movement of value across accounts on potentially different RippleNet
        instances involving one or more currencies.
      required:
        - user_info
        - internal_info
        - accepted_at
      allOf:
        - $ref: '#/components/schemas/BasePayment'
        - type: object
          properties:
            accepted_at:
              type: string
              format: date-time
              example: '2019-10-01T18:25:47.347Z'
              description: >-
                Date and time at which the payment was last accepted, as an
                ISO-8601 timestamp in UTC.
            locked_at:
              type: string
              format: date-time
              example: '2019-10-01T18:25:47.347Z'
              description: >-
                Date and time at which the payment was last locked, as an
                ISO-8601 timestamp in UTC.
            executed_at:
              type: string
              format: date-time
              example: '2019-10-01T18:25:47.347Z'
              description: >-
                Date and time at which the payment was last executed, as an
                ISO-8601 timestamp in UTC.
            completed_at:
              type: string
              format: date-time
              example: '2019-10-01T18:25:47.347Z'
              description: >-
                Date and time at which the payment was last completed, as an
                ISO-8601 timestamp in UTC.
            returned_at:
              type: string
              format: date-time
              example: '2019-10-01T18:25:47.347Z'
              description: >-
                Date and time at which the payment was returned, as an ISO-8601
                timestamp in UTC.
            internal_info:
              $ref: '#/components/schemas/InternalInfo'
            user_info:
              type: array
              description: User-provided data with arbitrary key/value pairs.
              items:
                $ref: '#/components/schemas/UserInfo'
    InternalInfo:
      required:
        - connector_role
        - internal_id
        - labels
      properties:
        connector_role:
          type: string
          example: RECEIVING
          description: >
            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
        labels:
          type: array
          description: >-
            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.
          items:
            $ref: '#/components/schemas/Label'
        internal_id:
          type: string
          description: >-
            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`.
      description: >-
        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.
    Label:
      properties:
        label:
          type: string
          description: Label to be attached
      description: Label object
    PaymentContract:
      type: object
      required:
        - created_at
        - expires_at
        - quote
        - sender_end_to_end_id
      properties:
        sender_end_to_end_id:
          type: string
          description: >-
            ID that the sender can specify. Persisted on all RippleNet instances
            that participate in the payment.
          maxLength: 128
          minLength: 1
        created_at:
          type: string
          format: date-time
          example: '2019-10-01T18:18:13.665Z'
          description: >-
            Date and time at which this payment contract was created, as an
            ISO-8601 timestamp in UTC.
        expires_at:
          type: string
          format: date-time
          example: '2019-10-01T18:55:22.824Z'
          description: >-
            Date and time after which this payment contract expires, as an
            ISO-8601 timestamp in UTC.
          default: 300s/300000ms
        quote:
          $ref: '#/components/schemas/Quote'
        fee_info:
          $ref: '#/components/schemas/FeeInfo'
      description: >-
        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.
    FeeInfo:
      type: object
      required:
        - nodes
        - total_fees
      properties:
        nodes:
          type: object
          description: Fees charged by each node participating in the payment.
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/FeeDetails'
        total_fees:
          type: array
          description: Total fees charged in the payment, separated by currency.
          items:
            $ref: '#/components/schemas/TotalFees'
      description: Itemized list of fees charged by each node.
    FeeDetails:
      type: object
      required:
        - fee_value
        - fee_currency
        - category
      properties:
        fee_value:
          type: number
          description: value of the fee
        fee_currency:
          type: string
          description: currency of the fee charged
        category:
          type: string
          description: category of the fee
        fee_description:
          type: string
          description: optional description of the fee
    TotalFees:
      type: object
      required:
        - total_fee
        - fee_currency
      properties:
        total_fee:
          type: number
          description: total value of fee
        fee_currency:
          type: string
          description: currency of the fee charged
    UserInfo:
      type: object
      required:
        - accepted
        - completed
        - executed
        - failed
        - forwarded
        - lock_declined
        - locked
        - node_address
        - retry_accept
        - retry_settlement
        - returned
        - settlement
        - settlement_declined
      properties:
        node_address:
          type: string
          example: rn.us.ca.san_francisco
          description: RippleNet address of the node that provided the user information.
        accepted:
          type: array
          description: User information optionally provided when accepting the payment.
          items:
            $ref: '#/components/schemas/UserInfoEntry'
        locked:
          type: array
          description: >-
            User information optionally provided when locking the payment. For
            more information, see [User Info Entry Object][user-info-entry].
          items:
            $ref: '#/components/schemas/UserInfoEntry'
        lock_declined:
          type: array
          description: >-
            User information optionally provided when declining to lock the
            payment. For more information, see [User Info Entry
            Object][user-info-entry].
          items:
            $ref: '#/components/schemas/UserInfoEntry'
        retry_accept:
          type: array
          description: >-
            User information optionally provided when retrying acceptance of the
            payment. For more information, see [User Info Entry
            Object][user-info-entry].
          items:
            $ref: '#/components/schemas/UserInfoEntry'
        retry_settlement:
          type: array
          description: >-
            User information optionally provided when retrying settlement of the
            payment. For more information, see [User Info Entry
            Object][user-info-entry].
          items:
            $ref: '#/components/schemas/UserInfoEntry'
        settlement:
          type: array
          description: >-
            User information optionally provided when settling the payment. For
            more information, see [User Info Entry Object][user-info-entry].
          items:
            $ref: '#/components/schemas/UserInfoEntry'
        settlement_declined:
          type: array
          description: >-
            User information optionally provided when settlement for the payment
            is declined. For more information, see [User Info Entry
            Object][user-info-entry].
          items:
            $ref: '#/components/schemas/UserInfoEntry'
        failed:
          type: array
          description: >-
            User information optionally provided when failing the payment. For
            more information, see [User Info Entry Object][user-info-entry].
          items:
            $ref: '#/components/schemas/UserInfoEntry'
        executed:
          type: array
          description: >-
            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].
          items:
            $ref: '#/components/schemas/UserInfoEntry'
        completed:
          type: array
          description: >-
            User information optionally provided when completing the payment.
            For more information, see [User Info Entry Object][user-info-entry].
          items:
            $ref: '#/components/schemas/UserInfoEntry'
        forwarded:
          type: array
          description: >-
            If applicable, user information optionally provided when forwarding
            the payment. For more information, see [User Info Entry
            Object][user-info-entry].
          items:
            $ref: '#/components/schemas/UserInfoEntry'
        returned:
          type: array
          description: >-
            If applicable, information optionally provided using
            `return_reasons` when returning the payment. For more information,
            see [User Info Entry Object][user-info-entry].
          items:
            $ref: '#/components/schemas/UserInfoEntry'
      description: User information provided across the payment lifecycle.
    UserInfoEntry:
      type: object
      required:
        - created_at
        - json
      properties:
        json:
          type: object
          description: >-
            User information provided across the payment lifecycle stored as
            arbitrary JSON key/value pairs.
          properties: {}
        created_at:
          type: string
          format: date-time
          description: >-
            Date and time at which the user information was added to the
            payment, as an ISO-8601 timestamp in UTC.
        subState:
          type: string
          example: EXECUTING
          description: If provided, this parameter descibes payment state more granularly.
      description: User information provided as arbitrary key/value pairs.
    RippleNetInfo:
      type: object
      required:
        - node_address
        - settlement_declined
      properties:
        node_address:
          type: string
          example: rn.us.ny.new_york
          description: >-
            RippleNet address of the node from which the RippleNetInfo
            originated.
        settlement_declined:
          type: array
          description: >-
            If applicable, provides an array of RippleNetInfoEntry's explaining
            transitions into the `SETTLEMENT_DECLINED` state
          items:
            $ref: '#/components/schemas/RippleNetInfoEntry'
      description: >-
        Application-generated information explaining actions taken by RippleNet
        applications.
    RippleNetInfoEntry:
      type: object
      properties:
        info:
          type: string
          example: L001
          description: >-
            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:
          type: string
          format: date-time
          example: '2018-04-06T20:33:35Z'
          description: >-
            The DateTime that this quote was created, as an ISO-8601 timestamp
            in UTC.
      description: >-
        Application-generated information explaining an action taken by a
        RippleNet application
    ExecutionResult:
      type: object
      required:
        - execution_result_id
        - execution_result_order
        - execution_result_type
        - execution_timestamp
        - receiver_address
        - receiving_amount
        - receiving_fee
        - sender_address
        - sending_amount
        - sending_fee
      properties:
        execution_result_id:
          type: string
          format: uuid
          example: 06f6d4e2-3523-4d17-92fd-53192a06207f
          description: Unique identifier for this payment result.
        execution_timestamp:
          type: string
          format: date-time
          example: '2019-10-01T18:24:29.867Z'
          description: >-
            Date and time at which this portion of the payment was executed, as
            an ISO-8601 timestamp in UTC.
        execution_result_type:
          type: string
          example: TRANSFER
          description: >-
            Type of payment execution result.<p><ul> <li>`TRANSFER` represents
            the movement of funds between two accounts.</li> <li>`EXCHANGE`
            represents the exchange of currencies between two accounts.</li>
            <li>`EXCHANGE_TRADE` represents the exchange of fiat to digital
            currency on a digital exchange.</li> <li>`CRYPTO_TRANSFER`
            represents the movement of digital funds between two digital
            exchanges.</li> </ul></p>
          enum:
            - TRANSFER
            - EXCHANGE
            - EXCHANGE_TRADE
            - CRYPTO_TRANSFER
        execution_result_order:
          type: integer
          example: 1
          description: >-
            Order in which the payment execution action was taken along the
            liquidity path. For example, a payment may include five execution
            results along the liquidity path. Each execution result has an order
            number that indicates the order in which the execution result was
            achieved to make the payment.
        sender_address:
          type: string
          example: trans_usd_sf@rn.us.ca.san_francisco
          description: >-
            RippleNet account name and address of the sender, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        receiver_address:
          type: string
          example: conct_usd_sf@rn.us.ca.san_francisco
          description: >-
            RippleNet account name and address of the receiver, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        sending_amount:
          type: number
          example: 498
          description: Amount the sender is sending.
        receiving_amount:
          type: number
          example: 498
          description: Amount the receiver is receiving.
        sending_fee:
          type: number
          example: 2
          description: Fees the sender is charging.
        receiving_fee:
          type: number
          example: 0
          description: Fees the receiver is charging.
        sending_currency_code:
          type: string
          example: USD
          description: >-
            Currency code of the sending amount. Included in execution results
            with `execution_result_type` set to `EXCHANGE`.
        receiving_currency_code:
          type: string
          example: GBP
          description: >-
            Currency of the receiving amount. Included in execution results with
            `execution_result_type` set to `EXCHANGE`.
        fx_rate:
          $ref: '#/components/schemas/FXRate'
        transfer_currency_code:
          type: string
          description: >-
            Currency of the transfer. Returned in execution results with
            `execute_result_type` set to `TRANSFER`.
        intermediary_delta:
          type: number
          example: 0.2
          description: >-
            Amount of XRP representing the difference in FX rate between the
            moment of quoting and the moment of execution. A positive value is
            the amount taken out of the incentive pool. A negative value is the
            amount returned to the incentive pool. (Soon to be deprecated)
        incentive_type:
          type: string
          example: firm
          description: >-
            Configuration of the incentive pool on the xRapid side. Two values
            are supported, `firm` and `fx`. For `firm`, xRapid guarantees that
            the FX rate at the moment of execution is the same as at the moment
            of quoting. For `fx`, xRapid guaratees a predefined FX rate.
        incentive_value:
          type: number
          example: 0.2
          description: >-
            Amount of XRP representing the difference in FX rate between the
            moment of quoting and the moment of execution. A positive value is
            the amount taken out of the incentive pool. A negative value is the
            amount returned to the incentive pool.
        transaction_hash:
          type: string
          example: 5.5467794184785867e+76
          description: >-
            Hash representing the unique identifier for the transfer of funds in
            the XRP ledger.
        venue_id:
          type: string
          example: nz7RpAujYgnQtjEM
          description: >-
            The id from an exchange associated with a transaction involving an
            exchange account.
        fiat_adjusted_value:
          type: number
          example: 0.02
          description: >-
            Represents the delta between quoted and received executed amounts,
            for exchange trades.
        odl_payment_id:
          type: string
          description: >-
            Payment ID in On-Demand Liquidity (ODL) for an executed ODL payment
            containing the transaction represented by this execution result.
      description: >-
        Represents the actual movement of funds in a payment. Each execution
        result corresponds to a quote element and represents its execution in a
        payment. Included once the payment is in `EXECUTED` state.
    PaymentLockRequest:
      type: object
      properties:
        internal_id:
          type: string
          maxLength: 128
          description: >-
            ID that intermediaries and the receiver can set when locking a
            payment. The ID is viewable only by the node that set it.
        user_info:
          type: object
          description: >-
            Provide one or more arbitrary key/value pairs. <p></p>
            <p><b>Caution&#58;</b> Ripple recommends that you always include
            this object, even when empty, to ensure that the RippleNet Payment
            Object includes the <code>created_at</code> timestamp, which records
            when the payment was locked. To add an empty object, include&#58;
            <code>&#123;&#34;user_info&#34;&#58;&#91;&#93;&#125;</code></p>
          properties: {}
      description: Use this JSON request object to lock a payment.
    PaymentDenyRequest:
      type: object
      required:
        - reasons
      properties:
        reasons:
          type: object
          description: Provide one or more arbitrary key/value pairs.
          properties: {}
          example:
            type: RECEIVER_DATA_VALIDATION
            code: AC03
            reason: Creditor account number invalid or missing
      description: >-
        Use this JSON request object to fail a payment or reject a request to
        lock a payment.
    PaymentRetryAcceptRequest:
      type: object
      properties:
        user_info:
          type: object
          description: Provide one or more arbitrary key/value pairs.
          properties: {}
          example:
            SF ACCEPTED: Payment to NY
            last_name: Gonzalez
            first_name: Elle
      description: >-
        Use this JSON request object to move a payment from `LOCK_DENIED` state
        back to `ACCEPTED` state, making it available for locking by
        intermediaries and the receiver.
    PaymentSettleRequest:
      type: object
      properties:
        user_info:
          type: object
          description: Provide one or more arbitrary key/value pairs.
          properties: {}
      description: Use this JSON request object to begin payment settlement.
    PaymentFinalizeRequest:
      type: object
      required:
        - memo
        - sub_state
      properties:
        sub_state:
          type: string
          minLength: 1
          maxLength: 128
          example: FORWARDED
          description: >-
            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:
          type: string
          example: Heading to payout location
          description: >-
            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.
      description: >-
        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.
    PaymentSubStateRequest:
      type: object
      required:
        - memo
        - sub_state
      properties:
        sub_state:
          type: string
          minLength: 1
          maxLength: 128
          example: AMENDED
          description: >-
            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:
          type: string
          example: Last name must be corrected
          description: >-
            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.
        info:
          type: object
          description: Provide one or more arbitrary key/value pairs.
          properties: {}
          example:
            last_name: Gonzales
      description: >-
        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.
    PaymentCompleteRequest:
      type: object
      properties:
        user_info:
          type: object
          description: Provide one or more arbitrary key/value pairs.
          properties: {}
      description: Use this JSON request object to complete a payment
    Payments:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/Payment'
      description: 'Paged response for payments includes:'
    NodeStatus:
      type: object
      required:
        - nodeAddress
        - pathOrder
        - paymentId
        - paymentState
      properties:
        paymentId:
          type: string
          format: uuid
          example: efdf213c-9f64-43f7-80ab-15e7b4d139ae
          description: Unique identifier of the payment.
        paymentState:
          type: string
          description: >-
            State of the payment. This API only recognizes payments in the
            <code>LOCKED</code> state. For more on payment states, see **Payment
            States** in the _RippleNet Developer Guide_.<p></p>
          example: LOCKED
          enum:
            - QUOTED
            - ACCEPTED
            - AWAITING_COLLECTION
            - COMPLETED
            - EXECUTED
            - FAILED
            - FORWARDED
            - LOCK_DECLINED
            - LOCKED
            - PREPARED
            - RETURNED
            - SETTLEMENT_DECLINED
        nodeAddress:
          type: string
          example: rn.eur.uk.london
          description: >-
            RippleNet address of the participating node reporting the payment
            state.
        pathOrder:
          type: integer
          format: int32
          example: 3
          description: >-
            Each node in the payment chain participates in sequence. Provides
            the order in the sequence in which this node participates.
      description: >-
        An array of objects that provide the following field values describing
        the state of a payment on each node participating in the payment.
    Transfers:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              description: Provides an array of transfer objects.
              items:
                $ref: '#/components/schemas/TransferResponse'
      description: >-
        Provides a `content` array of transfer objects and a set of pagination
        information fields.
    TransferResponse:
      type: object
      required:
        - amount
        - owner_address
        - receiver_address
        - sender_address
        - state
        - transfer_id
        - user_info
      properties:
        transfer_id:
          type: string
          format: uuid
          example: 9eca588f-e89d-4629-82fa-da9c4646310f
          description: Unique identifier of the transfer.
        state:
          type: string
          example: EXECUTED
          description: >-
            State of the transfer.<p>`QUOTED` and `PENDING` only apply when
            RippleNet is enabled to receive payments from xRapid. `QUOTED`
            represents an outbound transfer fee estimate. `PENDING` is the state
            of an outbound transfer executed by RippleNet (via xRapid) but not
            yet paid out by the digital exchange. If successfully paid out, the
            state becomes `COMPLETED`. If not successfully paid out by the
            digital exchange, the state becomes `FAILED`. </p>
          enum:
            - PREPARED
            - EXECUTED
            - COMPLETED
            - CANCELLED
            - FAILED
            - QUOTED
            - PENDING
            - OTHER
        owner_address:
          type: string
          example: rn.us.ca.san_francisco
          description: >-
            Owner RippleNet address, if different from the RippleNet address of
            the `sender_address` and `receiver_address`.
        sender_address:
          type: string
          example: trans_usd_sf@rn.us.ca.san_francisco
          description: >-
            RippleNet account name and address, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        receiver_address:
          type: string
          example: conct_usd_sf@rn.us.ca.san_francisco
          description: >-
            RippleNet account name and address, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        amount:
          type: number
          example: 15
          description: Amount transferred, expressed in the account's currency.
        internal_id:
          type: string
          example: 9cf5aa4b-1e44-436a-ab7c-d399aec905da
          description: >-
            Internal ID that the sender can optionally specify. Only visible to
            the sender. Only the sending RippleNet instance stores this ID.
        end_to_end_id:
          type: string
          example: fd7559be-aa85-433f-a283-0cd58681cdf0
          description: >-
            ID that the sender can optionally specify. Persisted on all
            RippleNet instances that participated in the transfer.
        sending_fee:
          type: number
          description: >-
            Optional sending fee charged by a digital asset exchange for
            initiating an outbound transfer.
        created_at:
          type: string
          format: date-time
          example: '2019-10-01T21:28:28.354Z'
          description: The time when this transfer is created.
        user_info:
          type: array
          description: >-
            Custom information set by a RippleNet address involved in the
            transfer.
          items:
            $ref: '#/components/schemas/TransferUserInfo'
        labels:
          type: array
          example:
            - label1
            - label2
            - label3
          description: List of labels associated with this transfer
          items:
            type: string
      description: JSON response object representing a transfer.
    TransferUserInfo:
      type: object
      description: >-
        Custom information about a transfer provided by a RippleNet address
        involved in the transfer.
      required:
        - json
        - node_address
        - state
      properties:
        node_address:
          type: string
          example: rn.us.ca.san_francisco
          description: >-
            RippleNet address of the xCurrent instance that set the user
            information.
        state:
          type: string
          example: EXECUTED
          description: >-
            State of the transfer set when the RippleNet address set the user
            information.
          enum:
            - PREPARED
            - EXECUTED
            - COMPLETED
            - CANCELLED
            - FAILED
            - QUOTED
        json:
          type: object
          description: One or more arbitrary key/value pairs.
          properties: {}
        created_at:
          type: string
          format: date-time
          example: '2019-10-01T21:28:28.357Z'
          description: timestamp of when this user info was created
    TransferRequest:
      type: object
      required:
        - amount
        - receiver_address
        - sender_address
      properties:
        sender_address:
          type: string
          example: trans_usd_sf@rn.us.ca.san_francisco
          description: >-
            RippleNet account name and address, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        receiver_address:
          type: string
          example: conct_usd_sf@rn.us.ca.san_francisco
          description: >-
            RippleNet account name and address, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        amount:
          type: number
          minimum: 0
          example: 15
          description: Amount transferred, expressed in the account's currency.
        owner_address:
          type: string
          example: rn.us.ca.san_francisco
          description: >-
            Owner RippleNet address, if different from the RippleNet address of
            the `sender_address` and `receiver_address`.
        end_to_end_id:
          type: string
          maxLength: 128
          example: b09dd632-660e-48c8-907f-a4f3a7d12c18
          description: >-
            ID set by the sender that is persisted on all xCurrent instances
            that participated in the transfer.
        internal_id:
          type: string
          maxLength: 128
          example: 9ad3c119-1379-443b-9c0e-fa82c54ae78d
          description: >-
            ID set by the sender that is persisted on the sending xCurrent
            instance only.
        user_info:
          type: object
          description: Provide one or more arbitrary key/value pairs.
          properties: {}
      description: Use this JSON request body to execute a transfer.
    StatementResponse:
      type: object
      required:
        - account_name
        - closing_balance
        - currency
        - end_datetime
        - generated_at
        - opening_balance
        - owner
        - start_datetime
        - transactions
      properties:
        account_name:
          type: string
          example: trans_usd_sf
          description: Name of the account the statement covers.
        start_datetime:
          type: string
          format: date-time
          example: '2018-08-06T23:13:55.997Z'
          description: >-
            Lower bound of the date-time range the statement covers, as an
            ISO-8601 timestamp in UTC.
        end_datetime:
          type: string
          format: date-time
          example: '2020-08-06T23:13:55.997Z'
          description: >-
            Upper bound of the date-time range the statement covers, as an
            ISO-8601 timestamp in UTC.
        generated_at:
          type: string
          format: date-time
          example: '2019-10-01T21:58:23.621Z'
          description: >-
            Time at which the statement was generated, as an ISO-8601 timestamp
            in UTC.
        currency:
          type: string
          example: USD
          description: Currency supported by the account.
        owner:
          type: string
          example: rn.us.ca.san_francisco
          description: Owner of the account
        opening_balance:
          type: number
          example: 0
          description: Opening balance of the account for the given date range.
        closing_balance:
          type: number
          example: -909
          description: Closing balance of the account for the given date range.
        transactions:
          $ref: '#/components/schemas/Transactions'
      description: >-
        Provides a statement for an account that lists payments and transfers
        that impacted the account's balance during a specified date-time range.
    Transactions:
      type: object
      required:
        - content
        - first
        - last
        - number
        - numberOfElements
        - size
        - sort
        - totalPages
        - total_elements
      properties:
        content:
          type: array
          description: Provides an array of statement record objects.
          items:
            $ref: '#/components/schemas/StatementRecord'
        total_elements:
          type: integer
          format: int64
          example: 1
          description: total elements in paginated response
        sort:
          type: string
          description: retained for backward compatibility
        first:
          type: boolean
          example: true
          description: true if  this is the first page.
        last:
          type: boolean
          example: true
          description: true if  this is the last page.
        number:
          type: integer
          example: 0
          description: page number
        numberOfElements:
          type: integer
          example: 1
          description: Number Of elements in this request
        size:
          type: integer
          example: 10
          description: page size
        totalPages:
          type: integer
          example: 1
          description: Total number of pages for the given request
      description: >-
        Provides a `content` array of statement record objects and a set of
        pagination information fields.
    StatementRecord:
      type: object
      required:
        - balance_change
        - balance_result
        - created_at
        - end_to_end_id
        - internal_id
        - returned_by_payment_with_id
        - returns_payment_with_id
        - transaction_id
        - transaction_state
        - transaction_type
        - sender_address
        - receiver_address
      properties:
        transaction_id:
          type: string
          format: uuid
          example: 9eca588f-e89d-4629-82fa-da9c4646310f
          description: ID of the payment or transfer that caused an account balance change.
        transaction_type:
          type: string
          example: PAYMENT
          description: Type of transaction that caused an account balance change.
          enum:
            - PAYMENT
            - TRANSFER
            - EXCHANGE_TRANSFER
        transaction_state:
          type: string
          example: COMPLETED
          description: Current state of the payment or transfer.
        balance_change:
          type: number
          example: -15
          description: Account balance change caused by the transaction.
        balance_result:
          type: number
          example: -909
          description: Account balance after the transaction.
        created_at:
          type: string
          format: date-time
          example: '2019-10-01T21:28:28.354Z'
          description: >-
            Time at which the transaction was created, as an ISO-8601 timestamp
            in UTC.
        end_to_end_id:
          type: string
          example: 91ecb6bd-4dd8-4b53-a900-72b79f3064e4
          description: >-
            ID that the sender of a transaction can specify. Persisted on all
            xCurrent instances that participated in the transaction.
        internal_id:
          type: string
          example: 8afd8e99-4ad4-4f4e-9bb7-018ad8c3a89c
          description: >-
            Internal identifier that the sender can optionally specify. Only
            visible to the sender. Only the sending xCurrent instance stores
            this ID.
        venue_id:
          type: string
          example: nz7RpAujYgnQtjEM
          description: >-
            The id from an exchange associated with a transaction involving an
            exchange account.
        transaction_hash:
          type: string
          example: DB0AFC09E0A94FC1D11F8CBABA48A184E27094F8DD32FCBC46F316E98011E2A6
          description: >-
            Hash representing the unique identifier for the transfer of funds in
            the XRP ledger.
        returns_payment_with_id:
          type: string
          format: uuid
          description: >-
            The `payment_id` of the original payment that this payment returns,
            if this is a returned payment. Always set to `null` if the
            `transaction_type` is set to `TRANSFER`.
        returned_by_payment_with_id:
          type: string
          format: uuid
          description: >-
            The `payment_id` of the return payment that returned this payment,
            if this is a returned payment. Always set to `null` if the
            `transaction_type` is set to `TRANSFER`.
        balance_change_created_at:
          type: string
          format: date-time
          example: '2019-10-01T21:28:28.354Z'
          description: Timestamp of when the balance change was created
        sender_address:
          type: string
          example: rn.us.ca.san_francisco
          description: >-
            RippleNet address of the sending account. Always set to `null` if
            the `transaction_type` is set to `TRANSFER`.
        receiver_address:
          type: string
          example: rn.mx.mexico
          description: >-
            RippleNet address of the recieving account. Always set to `null` if
            the `transaction_type` is set to `TRANSFER`.
      description: Provides details about a transaction included in an account statement.
    Balances:
      type: object
      required:
        - errors
        - local_balance
        - remote_balances
      properties:
        local_balance:
          description: Provides balance details for accounts owned by a RippleNet address.
          items:
            $ref: '#/components/schemas/InstitutionBalance'
        remote_balances:
          type: array
          description: Provides balance details for accounts owned by a RippleNet address.
          items:
            $ref: '#/components/schemas/InstitutionBalance'
        errors:
          type: array
          description: Lists any errors encountered when returning balance details.
          items:
            type: string
      description: Provides balances for all accounts owned by a RippleNet address.
    InstitutionBalance:
      type: object
      required:
        - currency_balances
        - institution
        - institution_address
      properties:
        institution:
          type: string
          example: rn.us.ca.san_francisco
          description: >-
            RippleNet unique internal ID of the institution that owns the
            balances provided in the `currency_balances` array.
        institution_address:
          type: string
          example: rn.us.ca.san_francisco
          description: >-
            RippleNet address of the institution that owns the balances provided
            in the `currency_balances` array.
        currency_balances:
          type: array
          description: >-
            Provides balance details for accounts owned by a RippleNet address.
            The response does not guarantee a fixed number of elements, or a
            fixed order of elements, in the returned list.
          items:
            $ref: '#/components/schemas/CurrencyBalance'
        pool_account_balances:
          type: array
          description: >-
            Provides balance details of pool accounts, along with RippleNet
            accounts linked to those pool accounts.
          items:
            $ref: '#/components/schemas/PoolAccountBalance'
      description: Provides balance details for accounts owned by a RippleNet address.
    CurrencyBalance:
      type: object
      required:
        - account_balances
        - aggregate_balance
        - currency
      properties:
        currency:
          type: string
          example: USD
          description: Currency of the balances provided.
        aggregate_balance:
          type: number
          example: 0
          description: Aggregated balance for the given currrency.
        account_balances:
          type: array
          description: >-
            Provides balance details for accounts that support the given
            currency.
          items:
            $ref: '#/components/schemas/AccountBalance'
      description: Provides balance details for accounts owned by a RippleNet address.
    AccountBalance:
      type: object
      properties:
        account_name:
          type: string
          example: trans_usd_sf
          description: >-
            Name of the account, which acts as the account's unique identifier
            on RippleNet.
        balance:
          type: number
          example: -909
          description: Balance available in the account.
        owner:
          type: string
          example: rn.us.ca.san_francisco
          description: RippleNet address of the owner of the account.
        currency:
          type: string
          example: USD
          description: Currency supported by the account.
        minimum_allowed_balance:
          type: number
          example: -1500000
          description: Minimum balance allowed for the account.
        maximum_allowed_balance:
          type: number
          example: 1000000
          description: Maximum balance allowed for the account.
        low_liquidity_threshold:
          type: number
          example: 1000
          description: >-
            When the `balance` value for a sender account meets or is less than
            this amount after payment settlement execution, a low-liquidity
            message is logged at the INFO level.
        owner_min_allowed_balance:
          type: number
          description: >-
            Minimum balance allowed by the owner of a nostro account. RippleNet
            Server uses the greater of this value and the
            `minimum_allowed_balance` to set the account balance minimum.
        owner_max_allowed_balance:
          type: number
          example: 1000000
          description: >-
            Maximum balance allowed by the owner of a nostro account. RippleNet
            Server uses the lesser of this value and the
            `maximum_allowed_balance` to set the account balance maximum.
      description: Provides balance details for each account owned by a RippleNet address.
    PoolAccountBalance:
      type: object
      properties:
        pool_account_name:
          type: string
          description: Name of the pool account.
        balance:
          type: number
          description: Aggregated balance of linked accounts which form this pool account.
        owner:
          type: string
          description: The RippleNet peer who owns this pool account.
        currency:
          type: string
          description: The currency of pool account.
        linked_accounts:
          type: array
          description: Accounts linked to this pool account.
          items:
            type: string
    Heartbeat:
      type: object
      required:
        - errors
        - peer_heartbeat_results
        - time_checked
        - xcurrent_node
      properties:
        time_checked:
          type: string
          format: date
          example: '2019-10-01'
          description: >-
            Time at which the heartbeat was checked, as an ISO-8601 timestamp in
            UTC.
        xcurrent_node:
          type: string
          example: rn.us.ny.new_york
          description: >-
            RippleNet address of the RippleNet server for which the heartbeat
            was checked. (Deprecated in favor of 'ripplenet_node' field, has
            exactly the same value).
        ripplenet_node:
          type: string
          example: rn.us.ny.new_york
          description: >-
            RippleNet address of the RippleNet server for which the heartbeat
            was checked.
        peer_heartbeat_results:
          type: object
          description: >-
            Provides a list of peer RippleNet addresses and their health
            statuses.
          additionalProperties:
            type: string
            enum:
              - HEALTHY
              - UNHEALTHY
        errors:
          type: array
          description: If applicable, provides one or more messages describing the error.
          items:
            type: string
      description: Provides the health status of the xCurrent server’s peers.
    Health:
      type: object
      required:
        - healthy
      properties:
        healthy:
          type: boolean
          example: true
          description: >-
            If set to `true`, the xCurrent server is up and running. If set to
            `false`, the xCurrent server is down.
        services:
          type: array
          description: List of services and their statuses returned by the health check.
          items:
            $ref: '#/components/schemas/HealthCheck'
        detail:
          type: string
          example: Failed to perform health check
          description: Reason for health check failure, if any.
      description: Provides a high-level status of the health of the xCurrent server.
    HealthCheck:
      type: object
      properties:
        service:
          type: string
          example: database
          description: Name of the service.
        healthy:
          type: boolean
          description: >-
            Returns `true` if the service is up and running, and `false` if it
            is down or unreachable.
        detail:
          type: string
          example: Message queue unreachable.
          description: Reason for health check failure, if any.
      description: Health check information for a single component.
    Page:
      type: object
      properties:
        first:
          type: boolean
          description: true if  this is the first page.
        last:
          type: boolean
          description: true if  this is the last page.
        number:
          type: integer
          description: page number
        numberOfElements:
          type: integer
          description: Number Of elements in this request
        size:
          type: integer
          description: page size
        totalElements:
          type: integer
          description: Total number of elements for the given request
          format: int64
        totalPages:
          type: integer
          description: Total number of pages for the given request
        sort:
          type: array
          description: Sort details of this page
          items:
            $ref: '#/components/schemas/Sort'
      description: Paginated response base object.
    Sort:
      type: object
      properties:
        direction:
          type: string
          description: Direction of the sort
          example: ASC
        property:
          type: string
        ignoreCase:
          type: boolean
        nullHandling:
          type: string
          example: NULLS_FIRST
        ascending:
          type: boolean
          example: true
        descending:
          type: boolean
          example: false
    AuditEvent:
      type: object
      description: >-
        Represents an audit trail of user actions and configuration changes (to
        accounts, fees, and rates) on RippleNet.
      properties:
        actor:
          type: string
          example: super_user_client
          description: Person or middleware who took the action.
        action:
          type: string
          example: KEY_UPDATE
          description: Action that triggered the event.
        eventId:
          type: string
          format: uuid
          example: 3d5d0831-762c-4e0c-980c-635b38fd9caf
          description: UUID representing the event.
        message:
          type: string
          example: |-
            Added public key class PublicKeyRecord {
                publicKey: MCowBQYDK2VwAyEAb8Q2YzrbTIwrUn7u5Q6hJimp7jBFHx500MfDM4XVNJ0=
                keyIntent: SIGNING_PUBLIC_KEY
                keyType: ED_25519
                keyVersion: 1
                expiryDateTime: 2089-09-23T17:27:50.331Z
            } for RippleNet address rn.us.ny.new_york
          description: Message describing the audit event.
        metadata:
          type: string
          example: >-
            {"ip":"0:0:0:0:0:0:0:1","uri":"/internal/key_service/addresses/rn.us.ny.new_york/keys"}
          description: Information about the event, such as IP Address and URI.
        domain:
          type: string
          example: CONFIG_MANAGEMENT
          enum:
            - USER_MANAGEMENT
            - CONFIG_MANAGEMENT
            - OTHER
          description: Represents the audit event domain.
        level:
          type: string
          example: INFO
          enum:
            - INFO
            - WARN
            - ERROR
          description: Represents the audit event level.
        timeStamp:
          type: string
          example: '2019-09-30T22:55:41.365000Z'
          description: Timestamp of the audit event.
    AuditEventResponse:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/AuditEvent'
      description: Paged response for AuditEvent
    EventTrailEvent:
      type: object
      description: >-
        Represents a single event along the audit trail of a payment on
        RippleNet.
      properties:
        featureName:
          type: string
          example: payment
          description: >-
            Feature name associated with the entityId. Possible values are
            `payment`.
        eventDetail:
          type: string
          example: Updated Payment to state PREPARED
          description: Detailed description of the event.
        entityId:
          type: string
          format: uuid
          example: d485f100-2af7-4e48-9ab1-3c7e28775691
          description: UUID representing an event.
        messageAction:
          type: string
          example: STATE_CHANGE
          description: >-
            String representation of the action being taken, where `DS` =
            downstream and `US` = upstream in the messaging processing pipeline.
          enum:
            - DS_STARTED
            - DS_COMPLETED
            - US_STARTED
            - US_COMPLETED
            - STATE_CHANGE
            - FAILURE
        createdAt:
          type: string
          example: '2019-10-01T18:24:28.040000Z'
          description: Timestamp of the audit event.
        messageSender:
          type: string
          format: RippleNetAddress
          example: default
          description: >-
            The RippleNetAddress of the originator of the message that triggered
            the creation of this event.
        messageType:
          type: string
          example: SETTLEMENT_PREPARE
          description: >-
            The type of message that was being processed that triggered the
            creation of this event.
    QueuePaymentMessage:
      type: object
      description: >-
        Represents a payment message sent to a configured queue during payment
        processing
      required:
        - payment_id
        - payment_state
      properties:
        payment_id:
          type: string
          format: uuid
          description: Unique identifier of the payment.
        payment_state:
          type: string
          description: >-
            State of the payment. For details, see **Payment States** in the
            RippleNet documentation.
          enum:
            - QUOTED
            - ACCEPTED
            - AWAITING_COLLECTION
            - COMPLETED
            - EXECUTED
            - FAILED
            - FORWARDED
            - LOCK_DECLINED
            - LOCKED
            - PREPARED
            - RETURNED
            - SETTLEMENT_DECLINED
        payment_substate:
          type: string
          description: >-
            Arbitrary string attached to a payment to track its state between
            Executed and Completed.
        sending_address:
          type: string
          description: >-
            RippleNet account name and address of the sender, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        receiving_address:
          type: string
          description: >-
            RippleNet account name and address of the receiver, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        payment_type:
          type: string
          example: RETURN
          description: Payment type.
          enum:
            - REGULAR
            - RETURN
        external_id:
          type: string
          maxLength: 128
          description: >-
            ID that the sender can specify. Persisted on all xCurrent instances
            that participate in the payment.
        created_at:
          type: string
          format: date-time
          example: '2018-04-06T20:33:35Z'
          description: >-
            Date and time at which this payment contract was created, as an
            ISO-8601 timestamp in UTC.
        expires_at:
          type: string
          format: date-time
          example: '2019-04-06T20:33:35Z'
          description: >-
            Date and time after which this payment contract expires, as an
            ISO-8601 timestamp in UTC.
        modified_date:
          type: string
          format: date-time
          example: '2018-04-06T20:33:35Z'
          description: >-
            Date and time at which the payment was last modified, as an ISO-8601
            timestamp in UTC.
        message_type:
          type: string
          description: Constant string representing the type of message.
          enum:
            - PAYMENT_STATE_CHANGE
    QueueRequestForPaymentMessage:
      type: object
      description: >-
        Represents a payment message sent to a configured queue during payment
        processing
      required:
        - created_at
        - request_for_payment_id
        - request_for_payment_state
      properties:
        request_for_payment_id:
          type: string
          format: uuid
          example: 5492648d-2132-4e70-9ded-2fc86f22b321
          description: Unique identifier of a request for payment.
        request_for_payment_state:
          type: string
          description: State of the request for payment.
          enum:
            - REQUESTED
            - ACCEPTED
            - FAILED
        created_at:
          type: string
          format: date-time
          example: '2018-12-13T20:13:41.708Z'
          description: >-
            Date and time at which the request for payment was created, as an
            ISO-8601 timestamp in UTC.
        payment_id:
          type: string
          format: uuid
          example: 5492648d-2132-4e70-9ded-2fc86f22b321
          description: Unique identifier of a payment associated to request for payment.
        message_type:
          type: string
          description: Constant string representing the type of message.
          enum:
            - REQUEST_FOR_PAYMENT_STATE_CHANGE
    QueueTransferMessage:
      type: object
      description: >-
        Represents a transfer message sent to a configured queue during tranfer
        API calls
      required:
        - transfer_id
        - transfer_state
      properties:
        transfer_id:
          type: string
          format: uuid
          description: Unique identifier of the payment.
        transfer_state:
          type: string
          description: >-
            State of the transfer.<p>`QUOTED` and `PENDING` only apply when
            xCurrent is enabled to receive payments from xRapid. `QUOTED`
            represents an outbound transfer fee estimate. `PENDING` is the state
            of an outbound transfer executed by xCurrent (via xRapid) but not
            yet paid out by the digital exchange. If successfully paid out, the
            state becomes `COMPLETED`. If not successfully paid out by the
            digital exchange, the state becomes `FAILED`. </p>
          enum:
            - PREPARED
            - EXECUTED
            - COMPLETED
            - FAILED
            - QUOTED
            - PENDING
            - OTHER
        internal_id:
          type: string
          description: >-
            Internal ID that the sender can optionally specify. Only visible to
            the sender. Only the sending xCurrent instance stores this ID.
        end_to_end_id:
          type: string
          description: >-
            ID that the sender can optionally specify. Persisted on all xCurrent
            instances that participated in the transfer.
        created_at:
          type: string
          format: date-time
          example: '2018-12-13T20:13:41.708Z'
          description: >-
            Date and time at which the request for transfer was created, as an
            ISO-8601 timestamp in UTC.
        message_type:
          type: string
          description: Constant string representing the type of message.
          enum:
            - TRANSFER_STATE_CHANGE
    QueueExchangeTransferMessage:
      type: object
      description: >-
        Represents a transfer message sent to a configured queue during tranfer
        API calls
      required:
        - exchange_transfer_id
        - exchange_transfer_state
      properties:
        exchange_transfer_id:
          type: string
          format: uuid
          description: Unique identifier of the payment.
        exchange_transfer_state:
          type: string
          description: State of the exchange transfer.
          enum:
            - EXECUTED
            - COMPLETED
            - FAILED
        end_to_end_id:
          type: string
          description: >-
            ID set by the sender that is persisted on all xCurrent instances
            that participated in the transfer.
        internal_id:
          type: string
          description: >-
            Internal ID that the sender can optionally specify. Only visible to
            the sender. Only the sending xCurrent instance stores this ID.
        created_at:
          type: string
          format: date-time
          example: '2018-12-13T20:13:41.708Z'
          description: >-
            Date and time at which the request for transfer was created, as an
            ISO-8601 timestamp in UTC.
        message_type:
          type: string
          description: Constant string representing the type of message.
          enum:
            - EXCHANGE_TRANSFER_STATE_CHANGE
    QueuePaymentLabelMessage:
      type: object
      description: >-
        Represents a payment label message sent to a configured queue when
        adding or removing labels
      required:
        - payment_id
        - payment_state
      properties:
        payment_id:
          type: string
          format: uuid
          description: Unique identifier of the payment.
        added_labels:
          type: array
          items:
            type: string
          description: List of labels added to the payment.
        deleted_labels:
          type: array
          items:
            type: string
          description: List of labels removed from the payment.
        message_type:
          type: string
          description: Constant string representing the type of message.
          enum:
            - PAYMENT_MANAGEMENT
    AccountLookupMessage:
      type: object
      description: >-
        Represents an Account Lookup message that is sent to a configured queue
        when an Account Lookup request is requested or responded to.
      required:
        - account_lookup_id
        - account_lookup_status
      properties:
        account_lookup_id:
          type: string
          format: uuid
          description: Unique identifier of the account lookup.
        account_lookup_status:
          type: string
          description: State of the Account Lookup object.
          enum:
            - REQUESTED
            - PROCESSED
            - EXPIRED
            - FAILED
    PayoutMethodRequest:
      type: object
      description: Represents a request to create and update a payout method record.
      required:
        - payout_method
      properties:
        payout_method:
          type: string
          example: LOCAL_RAILS
          description: Unique string used in the quote to identify the payout method.
        description:
          type: string
          example: local rails
          description: User defined description of a payout method.
        is_default:
          type: boolean
          description: Flag to set this payout method as the default payout method.
        payout_method_category:
          type: string
          example: BOOK_TRANSFER
          description: >-
            Category of the payout method. Defaults to <code>OTHER</code> if not
            specified.
          enum:
            - REAL_TIME_GROSS_SETTLEMENT_SYSTEM
            - REAL_TIME_NET_SETTLEMENT_SYSTEM
            - MASS_NET_PAYMENT_SYSTEM
            - BOOK_TRANSFER
            - CASH_PAYOUT
            - WALLET_PAYMENT
            - OTHER
        estimated_time_to_credit:
          type: object
          description: >-
            The estimated time to credit the beneficiary using this payout
            method.
          properties:
            time_value:
              type: integer
              format: int64
              example: 5
              description: The amount of estimated time to credit.
            time_unit:
              type: string
              description: >-
                Unit of the estimated time to credit: <code>SECONDS</code>,
                <code>MINUTES</code>, <code>HOURS</code>, <code>DAYS</code>.
              enum:
                - SECONDS
                - MINUTES
                - HOURS
                - DAYS
          required:
            - time_value
            - time_unit
    PayoutMethods:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/PayoutMethodResponse'
    PayoutMethodResponse:
      type: object
      description: Represents a request to create and update a payout method record.
      properties:
        payout_method_id:
          type: string
          format: uuid
          example: a6dbe002-ca7f-4ec7-89e4-f44a1971a0c0
          description: Unique identifier of a payout method.
        payout_method:
          type: string
          example: LOCAL_RAILS
          description: Unique string to identify the payout method.
        description:
          type: string
          example: local rails
          description: User defined description of a payout method.
        is_default:
          type: boolean
          description: Flag to set this payout method as the default payout method.
        payout_method_category:
          type: string
          example: BOOK_TRANSFER
          description: >-
            Category of the payout method. Defaults to <code>OTHER</code> if not
            specified.
          enum:
            - REAL_TIME_GROSS_SETTLEMENT_SYSTEM
            - REAL_TIME_NET_SETTLEMENT_SYSTEM
            - MASS_NET_PAYMENT_SYSTEM
            - BOOK_TRANSFER
            - CASH_PAYOUT
            - WALLET_PAYMENT
            - OTHER
        estimated_time_to_credit:
          type: object
          description: >-
            The estimated time to credit the beneficiary using this payout
            method.
          properties:
            time_value:
              type: integer
              format: int64
              example: 5
              description: The amount of estimated time to credit.
            time_unit:
              type: string
              description: >-
                Unit of the estimated time to credit: <code>SECONDS</code>,
                <code>MINUTES</code>, <code>HOURS</code>, <code>DAYS</code>.
              enum:
                - SECONDS
                - MINUTES
                - HOURS
                - DAYS
          required:
            - time_value
            - time_unit
    RippleNetProblem:
      type: object
      description: Represents a request to create and update a payout method record.
      properties:
        type:
          type: string
          example: https://errors.ripplenet.ripple.com/error/json-processing-error
          description: URL to the error documentation.
        title:
          type: string
          example: Invalid Request Object
          description: Summary of the returned problem.
        detail:
          type: string
          example: The request parameter [account_id] is not in the correct format.
          description: Description of the returned problem.
        status:
          type: number
          example: 400
          description: HTTP error code.
        ripplenet_error_code:
          type: string
          example: E0104
          description: RippleNet specific error code.
        finality:
          type: string
          example: PERMANENT
          description: Specifies if the request can be retried for a successful response.
    InitiateAccountLookupRequest:
      type: object
      description: >-
        Initiate account lookup request to validate a beneficiary's account
        details before sending a payment.
      required:
        - destination_address
        - country_code
        - account_id
        - account_id_type
      properties:
        account_currency:
          type: string
          description: >-
            The 3 character currency code for the account as per ISO-4217
            standards
        clearing_system_code:
          type: string
          maxLength: 50
          description: Clearing system code
        destination_address:
          type: string
          description: RippleNet address of the receiver.
        first_name:
          type: string
          maxLength: 40
          description: First name of the beneficiary.
        middle_name:
          type: string
          maxLength: 40
          description: Middle name of the beneficiary.
        last_name:
          type: string
          maxLength: 40
          description: Last name of the beneficiary.
        org_name:
          type: string
          maxLength: 140
          description: Name of the organization.
        country_code:
          type: string
          maxLength: 2
          description: Country of the beneficiary. Alpha-2 Code format per ISO 3166-1.
        account_id:
          type: string
          maxLength: 40
          description: Identifier for the Account, e.g account number.
        account_id_type:
          type: string
          description: |-
            Account ID type. Possible values are
              - `AIIN` - (default) Account Issue Identification Number
              - `BBAN` - Basic Bank Account Number
              - `CARD` - PAN of the card identifying the account
              - `CUID` - CHIPS Universal Identifier
              - `UPIC` - Universal Payment Identification Code
              - `EMail` - Email Address
              - `MSISDN` - Mobile Subscriber Integrated Service Digital Network (i.e., phone number)
              - `DMST` - Domestic
              - `Other` - Other identifier (e.g., PayID)
          enum:
            - AIIN
            - BBAN
            - CARD
            - CUID
            - UPIC
            - EMAIL
            - MSISDN
            - DMST
            - OTHER
    CompleteAccountLookupRequest:
      type: object
      description: >-
        Complete account lookup request to validate the Beneficiary before
        initiating the payment.
      required:
        - account_lookup_id
        - result_code
        - result_status
        - result_description
      properties:
        account_lookup_id:
          type: string
          description: UUID that links Account Lookup request and response.
          format: uuid
        result_code:
          type: string
          pattern: ^RNCB\d{4}
          description: |-
            Result code of the Account Lookup response. Possible values are
              - `RNCB0000` - Pass- Name and Identifier are correct and linked
              - `RNCB0001` - Fail- Name and Identifier not found
              - `RNCB0002` - Fail- Name and Identifier do not match
        result_status:
          type: string
          description: Result status of Account Lookup response
          enum:
            - PASS
            - FAIL
        result_description:
          type: string
          description: Result description of Account Lookup response
        redacted_first_name:
          type: string
          maxLength: 40
          description: First name of the beneficiary.
        redacted_middle_name:
          type: string
          maxLength: 40
          description: Middle name of the beneficiary.
        redacted_last_name:
          type: string
          maxLength: 40
          description: Last name of the beneficiary.
        redacted_org_name:
          type: string
          maxLength: 140
          description: Name of the organization.
        redacted_country_code:
          type: string
          description: Country of the beneficiary. Alpha-2 Code format per ISO 3166-1.
        redacted_account_id:
          type: string
          maxLength: 40
          description: Identifier for the Account, e.g account number.
        redacted_account_id_type:
          type: string
          description: |-
            Account ID type, redacted by the receiver. Possible values are
              - `AIIN` - (default) Account Issue Identification Number
              - `BBAN` - Basic Bank Account Number
              - `CARD` - PAN of the card identifying the account
              - `CUID` - CHIPS Universal Identifier
              - `UPIC` - Universal Payment Identification Code
              - `EMail` - Email Address
              - `MSISDN` - Mobile Subscriber Integrated Service Digital Network (i.e., phone number)
              - `DMST` - Domestic
              - `Other` - Other identifier (e.g., PayID)
          enum:
            - AIIN
            - BBAN
            - CARD
            - CUID
            - UPIC
            - EMAIL
            - MSISDN
            - DMST
            - OTHER
        redacted_clearing_system_code:
          type: string
          description: Clearing system code
        redacted_branch_code:
          type: string
          description: >-
            The Branch code (e.g., routing code) that the receiver has on their
            system.
        redacted_account_currency:
          type: string
          description: >-
            The 3 character currency code for the account as per ISO-4217
            standards
    AccountLookup:
      type: object
      description: Response to the sender/receiver for Account Lookup.
      required:
        - account_lookup_id
        - account_lookup_status
      properties:
        account_lookup_id:
          type: string
          description: UUID that links Account lookup request and response.
          format: uuid
        account_lookup_status:
          type: string
          description: >-
            State of the Account Lookup object. Should be
            `REQUESTED`/`PROCESSED`/`FAILED`.
          enum:
            - REQUESTED
            - PROCESSED
            - FAILED
            - EXPIRED
        first_name:
          type: string
          maxLength: 40
          description: First name of the beneficiary.
        middle_name:
          type: string
          maxLength: 40
          description: Middle name of the beneficiary.
        last_name:
          type: string
          maxLength: 40
          description: Last name of the beneficiary.
        org_name:
          type: string
          maxLength: 140
          description: Name of the organization.
        country_code:
          type: string
          description: Country of the beneficiary. Alpha-2 Code format per ISO 3166-1.
        account_currency:
          type: string
          description: >-
            The 3 character currency code for the account as per ISO-4217
            standards
        account_id:
          type: string
          maxLength: 40
          description: Identifier for the Account, e.g account number.
        account_id_type:
          type: string
          description: |-
            Account ID type. Possible values are
              - `AIIN` - (default) Account Issue Identification Number
              - `BBAN` - Basic Bank Account Number
              - `CARD` - PAN of the card identifying the account
              - `CUID` - CHIPS Universal Identifier
              - `UPIC` - Universal Payment Identification Code
              - `EMail` - Email Address
              - `MSISDN` - Mobile Subscriber Integrated Service Digital Network (i.e., phone number)
              - `DMST` - Domestic
              - `Other` - Other identifier (e.g., PayID)
          enum:
            - AIIN
            - BBAN
            - CARD
            - CUID
            - UPIC
            - EMAIL
            - MSISDN
            - DMST
            - OTHER
        result_code:
          type: string
          description: |-
            Result code of the Account Lookup response. Possible values are
              - `RNCB0000` - Pass- Name and Identifier are correct and linked
              - `RNCB0001` - Fail- Name and Identifier not found
              - `RNCB0002` - Fail- Name and Identifier do not match
        result_status:
          type: string
          description: Result status of Account Lookup response.
          enum:
            - PASS
            - FAIL
        result_description:
          type: string
          description: Result description of Account Lookup response.
        redacted_first_name:
          type: string
          maxLength: 40
          description: First name of the beneficiary redacted by the receiver.
        redacted_middle_name:
          type: string
          maxLength: 40
          description: Middle name of the beneficiary redacted by the receiver.
        redacted_last_name:
          type: string
          maxLength: 40
          description: Last name of the beneficiary redacted by the receiver.
        redacted_org_name:
          type: string
          maxLength: 140
          description: Name of the organization redacted by the receiver.
        redacted_country_code:
          type: string
          description: Country of the beneficiary redacted by the receiver.
        redacted_account_id:
          type: string
          maxLength: 40
          description: >-
            Identifier for the Account, e.g account number, redacted by the
            receiver.
        redacted_account_id_type:
          type: string
          description: |-
            Account ID type, redacted by the receiver. Possible values are
              - `AIIN` - (default) Account Issue Identification Number
              - `BBAN` - Basic Bank Account Number
              - `CARD` - PAN of the card identifying the account
              - `CUID` - CHIPS Universal Identifier
              - `UPIC` - Universal Payment Identification Code
              - `EMail` - Email Address
              - `MSISDN` - Mobile Subscriber Integrated Service Digital Network (i.e., phone number)
              - `DMST` - Domestic
              - `Other` - Other identifier (e.g., PayID)
          enum:
            - AIIN
            - BBAN
            - CARD
            - CUID
            - UPIC
            - EMAIL
            - MSISDN
            - DMST
            - OTHER
        redacted_account_currency:
          type: string
          description: >-
            The 3 character currency code for the account as per ISO-4217
            standards
        clearing_system_code:
          type: string
          description: Clearing system code
        branch_code:
          type: string
          description: >-
            The Branch code (e.g., routing code) that the receiver has on their
            system.
    AccountLookups:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/AccountLookup'
      description: Paged response for account lookups
    CreatePlatformRequest:
      type: object
      description: >-
        Request object for creating a RippleNet platform, which maps to a real
        world financial institution.
      required:
        - name
        - platform_type
        - institution
        - servicer_code
      properties:
        name:
          type: string
          description: Name of the platform.
        platform_type:
          type: string
          description: >-
            The type of institution this platform represents (WALLET_PROVIDER,
            FIAT_INSTITUTION, or DIGITAL_EXCHANGE).
          enum:
            - WALLET_PROVIDER
            - FIAT_INSTITUTION
            - DIGITAL_EXCHANGE
        description:
          type: string
          maxLength: 512
          description: A short description of the platform.
        institution:
          type: string
          description: Name of the institution this platform represents.
        servicer_code:
          type: string
          description: >-
            Akin to the routing number (US), Sort Code (UK), or IFSC code
            (India).
    UpdatePlatformRequest:
      type: object
      description: >-
        Request object for updating a RippleNet platform, which maps to a real
        world financial institution. **Note**: `platform_type` is set on the
        creation of the platform and cannot be updated.
      properties:
        name:
          type: string
          description: Name of the platform.
        platform_type:
          type: string
          description: >-
            The type of institution this platform represents (WALLET_PROVIDER,
            FIAT_INSTITUTION, or DIGITAL_EXCHANGE).
          enum:
            - WALLET_PROVIDER
            - FIAT_INSTITUTION
            - DIGITAL_EXCHANGE
        description:
          type: string
          maxLength: 512
          description: A short description of the platform.
        institution:
          type: string
          description: Name of the institution this platform represents.
        servicer_code:
          type: string
          description: >-
            Akin to the routing number (US), Sort Code (UK), or IFSC code
            (India).
    PlatformResponse:
      type: object
      description: >-
        Response object for creating a Ripplenet platform, which maps to a real
        world financial institution.
      properties:
        platform_id:
          type: string
          format: uuid
          description: Unique identifier for the RippleNet platform.
        name:
          type: string
          description: Name of the RippleNet platform.
        platform_type:
          type: string
          description: >-
            The type of institution this RippleNet platform represents
            (WALLET_PROVIDER, FIAT_INSTITUTION, or DIGITAL_EXCHANGE).
          enum:
            - WALLET_PROVIDER
            - FIAT_INSTITUTION
            - DIGITAL_EXCHANGE
        description:
          type: string
          maxLength: 512
          description: A short description of the RippleNet platform.
        institution:
          type: string
          description: Name of the institution this RippleNet platform represents.
        servicer_code:
          type: string
          description: >-
            Akin to the routing number (US), Sort Code (UK), or IFSC code
            (India).
    CreatePlatformAccountRequest:
      type: object
      description: Request object for creating a Ripplenet platform account.
      required:
        - name
        - platform_id
        - external_account_id
        - currency
      properties:
        name:
          type: string
          description: Name of the platform account.
        platform_id:
          type: string
          format: uuid
          description: >-
            The unique identifier for the RippleNet platform where this account
            is defined.
        description:
          type: string
          maxLength: 512
          description: A short description of the platform account.
        external_account_id:
          type: string
          description: >-
            Unique reference identifier for the real world account which is
            represented by this platform account.
        currency:
          type: string
          maxLength: 3
          description: >-
            The currency of the account. Ripple recommends using ISO-4217
            currency codes.
    UpdatePlatformAccountRequest:
      type: object
      description: Request object for updating a Ripplenet platform account.
      properties:
        name:
          type: string
          description: Name of the platform account.
        platform_id:
          type: string
          format: uuid
          description: >-
            The unique identifier for the RippleNet platform where this account
            is defined.
        description:
          type: string
          maxLength: 512
          description: A short description of the platform account.
        external_account_id:
          type: string
          description: >-
            Unique reference identifier for the real world account which is
            represented by this platform account.
        currency:
          type: string
          maxLength: 3
          description: >-
            The currency of the account. Ripple recommends using ISO-4217
            currency codes.
    PlatformAccountResponse:
      type: object
      description: Response object for creating a Ripplenet platform account.
      properties:
        platform_account_id:
          type: string
          format: uuid
          description: Unique identifier for the platform account.
        name:
          type: string
          description: Name of the platform account.
        platform_id:
          type: string
          format: uuid
          description: >-
            The unique identifier for the RippleNet platform where this account
            is defined.
        description:
          type: string
          maxLength: 512
          description: A short description of the platform account.
        external_account_id:
          type: string
          description: >-
            Unique reference identifier for the real world account which is
            represented by this platform account.
        currency:
          type: string
          description: >-
            The currency of the account. Ripple recommends using ISO-4217
            currency codes.
        balance:
          type: number
          description: Real world account balance of the platform account (if available)
    PlatformAccountsPage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/PlatformAccountResponse'
      description: Paged response for account lookups
    CreatePoolAccountRequest:
      type: object
      description: Request object for creating a pool account.
      required:
        - pool_account_name
        - currency
        - owner
      properties:
        pool_account_name:
          type: string
          description: The name of the pool account.
        currency:
          type: string
          example: USD
          description: The currency of the pool account.
        owner:
          type: string
          example: rn.us.ca.san_francisco
          description: The RippleNet address of the owner of the pool account.
        description:
          type: string
          maxLength: 512
          description: The description of the pool account.
    UpdatePoolAccountRequest:
      type: object
      description: Request object for updating a pool account.
      properties:
        description:
          type: string
          maxLength: 512
          description: The description of the pool account.
    LinkAccountsToPoolAccountRequest:
      type: object
      description: Request object for linking accounts to a pool account.
      required:
        - account_names_to_link
      properties:
        account_names_to_link:
          type: array
          items:
            type: string
          description: Provide the RippleNet accounts to be linked to this pool account.
    UnlinkAccountsFromPoolAccountRequest:
      type: object
      description: Request object for unlinking accounts from a pool account.
      required:
        - account_names_to_unlink
      properties:
        account_names_to_unlink:
          type: array
          items:
            type: string
          description: >-
            Provide the RippleNet accounts to be unlinked from this pool
            account.
    PoolAccountResponse:
      type: object
      description: Pool Account object returned to the user.
      properties:
        pool_account_id:
          type: string
          format: uuid
          description: The Account ID of the pool account.
        pool_account_name:
          type: string
          description: The name of the pool account.
        currency:
          type: string
          description: Currency of the pool account.
        description:
          type: string
          description: Description of the pool account.
        owner:
          type: string
          example: rn.us.ca.san_francisco
          description: RippleNet address of the owner of the pool account.
        linkedAccountNames:
          type: array
          items:
            type: string
          description: RippleNet accounts linked to the pool account.
    CreateLiquidationConfigRequest:
      type: object
      description: Request object for creating a Liquidation Configuration.
      required:
        - source_address
        - destination_address
        - liquidation_mode
        - price_guarantee
        - liquidation_type
      properties:
        name:
          type: string
          description: Display name for this Liquidaton Configuration.
        source_address:
          type: string
          description: >-
            Full RippleNet address of the source account in the form
            acccountname@host.
        destination_address:
          type: string
          description: >-
            Full RippleNet address of the destination account in the form
            acccountname@host.
        liquidation_mode:
          type: string
          description: Mode in which this Liquidation Configuration operates.
          enum:
            - PER_PAYMENT
            - SMART_LIQUIDATION_PER_PAYMENT
        price_guarantee:
          type: string
          description: Price guarantee for the Liquidation quote.
          enum:
            - FIRM
            - INDICATIVE
        liquidation_type:
          type: string
          description: Indicates the amount the liquidation is based on.
          enum:
            - SENDER
            - RECEIVER
            - XRP
    UpdateLiquidationConfigRequest:
      type: object
      description: Request object for updating a Liquidation Configuration.
      properties:
        name:
          type: string
          description: Display name for this Liquidaton Configuration.
        source_address:
          type: string
          description: >-
            Full RippleNet address of the source account in the form
            accountname@host.
        destination_address:
          type: string
          description: >-
            Full RippleNet address of the destination account in the form
            accountname@host.
        liquidation_mode:
          type: string
          description: Mode in which this Liquidation Configuration operates.
          enum:
            - PER_PAYMENT
            - SMART_LIQUIDATION_PER_PAYMENT
        price_guarantee:
          type: string
          description: Price guarantee for the Liquidation quote.
          enum:
            - FIRM
            - INDICATIVE
        liquidation_type:
          type: string
          description: Indicates the amount the liquidation is based on.
          enum:
            - SENDER
            - RECEIVER
            - XRP
    LiquidationConfigResponse:
      type: object
      description: Response object for Liquidation Configuration
      properties:
        liquidation_config_id:
          type: string
          format: uuid
          description: The unique identifier for this Liquidation Configuration.
        name:
          type: string
          description: Display name for this Liquidaton Configuration.
        source_address:
          type: string
          description: >-
            Full RippleNet address of the source account in the form
            accountname@host.
        destination_address:
          type: string
          description: >-
            Full RippleNet address of the destination account in the form
            accountname@host.
        liquidation_mode:
          type: string
          description: Mode in which this Liquidation Configuration operates.
          enum:
            - PER_PAYMENT
            - SMART_LIQUIDATION_PER_PAYMENT
        price_guarantee:
          type: string
          description: Price guarantee for the Liquidation quote.
          enum:
            - FIRM
            - INDICATIVE
        liquidation_type:
          type: string
          description: Indicates the amount the liquidation is based on
          enum:
            - SENDER
            - RECEIVER
            - XRP
    LiquidationConfigsPage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/LiquidationConfigResponse'
      description: Paged response for Liquidation Configurations
    PlatformAccountsBalances:
      type: object
      description: >-
        Object representing list of platforms, their accounts and their
        respective balances
      properties:
        platforms:
          type: array
          description: List of platforms
          items:
            $ref: '#/components/schemas/PlatformItem'
    PlatformItem:
      type: object
      description: Represents a Platform
      properties:
        platform_id:
          description: Platform ID
          type: string
          format: uuid
        name:
          description: Identifier representing the name of the platform
          type: string
        institution:
          description: Institution being represented by this platform
          type: string
        type:
          description: Type of the platform
          type: string
        servicer_code:
          description: Account servicer code, if applicable of the real world platform
          type: string
        accounts:
          type: array
          description: List of Platform Accounts a Platform
          items:
            $ref: '#/components/schemas/PlatformAccountItem'
    PlatformAccountItem:
      type: object
      description: Represents a Platform Account
      properties:
        platform_account_id:
          description: Platform Account ID (UUID)
          type: string
          format: uuid
        name:
          description: Name of the Platform Account
          type: string
        external_account_id:
          description: >-
            External ID of the real world account that is represented by this
            Platform Account
          type: string
        currency:
          description: Platform account currency
          type: string
        total_balance:
          description: Total balance amount
          type: number
        available_balance:
          description: Available balance amount
          type: number
        errors:
          description: List of error messages, if any
          type: array
          items:
            type: string
    LiquidationDetails:
      type: object
      description: Payment liquidation details
      properties:
        id:
          type: string
          format: uuid
          description: Liquidation ID, unique to the liquidation process of this payment
        status:
          type: string
          description: Liquidation status
        failure_reason:
          type: string
          description: >-
            Reason behind failure of the liquidation, only applicable if the
            status is failure
        failure_count:
          type: integer
          description: >-
            Number of times the liquidation failed. Irrelevant if status is
            successful.
    CreateSSAConfigRequest:
      type: object
      description: Use this JSON request object to create a SSA Configuration.
      required:
        - ssa_account
        - source_account
        - ssa_currency
      properties:
        ssa_account:
          type: string
          description: RippleNet address of the SSA account
        source_account:
          type: string
          description: RippleNet address of the host used to fund the `ssa_account`
        ssa_currency:
          type: string
          description: Currency code of the SSA account
        payment_sender_host:
          type: string
          description: >-
            RippleNet host address of the payment sender for which this SSA
            config should apply. This field is marked optional but is mandatory
            if you have multiple senders requiring ssa config for same currency
    SSAConfigResponse:
      type: object
      description: >-
        Response object for creating a Sender Segregated Account (SSA)
        Configuration.
      properties:
        ssa_account:
          type: string
          description: RippleNet address of the SSA account
        source_account:
          type: string
          description: RippleNet address of the host used to fund the `ssa_account`
        ssa_currency:
          type: string
          description: Currency code of the SSA account
        ssa_config_id:
          type: string
          format: uuid
          description: Unique identifier for the SSA configuration record
        payment_sender_host:
          type: string
          description: >-
            RippleNet host address of the payment sender for which this SSA
            config should apply
    UpdateSSAConfigRequest:
      type: object
      description: Use this JSON request object to update the SSA Configuration.
      properties:
        ssa_account:
          type: string
          description: RippleNet address of SSA account
        source_account:
          type: string
          description: RippleNet address of the host used to fund the `ssa_account`
        ssa_currency:
          type: string
          description: Currency code of the SSA account
        payment_sender_host:
          type: string
          description: >-
            RippleNet host address of the payment sender for which this SSA
            config should apply
    Fees:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              description: Provides an array of fee objects.
              items:
                $ref: '#/components/schemas/FiatFee'
      description: >-
        Provides a `content` array of fee objects and a set of pagination
        information fields.
    FiatFee:
      type: object
      required:
        - currency_code
        - feeId
        - fee_type
        - node_type
        - payment_type
        - role_type
        - value
      properties:
        value:
          type: number
          example: 2
          description: >-
            Value of the fee to be applied. fiat node uses this value and
            `fee_type` to calculate the fee.
        currency_code:
          type: string
          example: USD
          description: Currency this fee applies to.
        role_type:
          type: string
          example: SENDING
          description: >-
            Role of the party to which the fee applies.<p>If set to `SENDING`,
            the fee is charged to the originator of the payment.</p> <p>If set
            to `RECEIVING`, the fee is charged to the beneficiary of the
            payment.</p> <p>If set to `INSTITUTION_SENDING`, the fee is charged
            to the financial institution that is sending the payment.</p> <p>If
            set to `INSTITUTION_RECEIVING`, the fee is charged to the financial
            institution that is receiving the payment.</p>
          enum:
            - SENDING
            - RECEIVING
            - INSTITUTION_SENDING
            - INSTITUTION_RECEIVING
        payment_type:
          type: string
          example: REGULAR
          description: Payment type the fee applies to.
          enum:
            - REGULAR
            - RETURN
        node_type:
          type: string
          example: INITIAL
          description: >-
            Fiat node to which the fee applies.<p>If set to `INITIAL`, the fee
            is charged to the first fiat instance in the payment chain.</p>
            <p>If set to `INTERMEDIATE`, the fee is charged to each fiat
            instance in the payment chain that is not the first or last fiat
            instance.</p> <p>If set to `TERMINAL`, the fee is charged to the
            last fiat instance in the payment chain.</p>
          enum:
            - INITIAL
            - INTERMEDIATE
            - TERMINAL
        fee_type:
          type: string
          example: FLAT_RATE
          description: Method used to calculate the fee.
          enum:
            - PERCENTAGE
            - FLAT_RATE
        partner_name:
          type: string
          example: rn.us.ca.san_francisco
          description: >-
            Owner of the account involved in the payment, in RippleNet Address
            format. For example, `rn.us.ca.san_francisco`.
        account_name:
          type: string
          example: conct_usd_sf
          description: >-
            For a fee that applies to a specific account, provides the account
            name. Used in combination with the `partner_name` value.
        upper_limit:
          type: number
          example: 1000
          description: >-
            For a slab-based fee, provides the upper limit of the slab. Used in
            combination with the `lower_limit` value.
        lower_limit:
          type: number
          example: 0
          description: >-
            For a slab-based fee, provides the lower limit of the slab. Used in
            combination wtih the `upper_limit` value.
        feeId:
          type: string
          format: uuid
          example: 7740f31c-ca03-4414-b491-b285aef71eb1
          description: Unique identifier of the fee.
        payout_method:
          type: string
          example: LOCAL_RAILS
          description: The payout method for this fee.
        fee_category:
          type: string
          example: BENEFICIARY_BANK_CHARGE
          description: Category that describes the purpose of the fee.
          default: NONE
          enum:
            - NONE
            - OVERSEAS_DELIVERY_CHARGES
            - BENEFICIARY_BANK_CHARGE
            - PROCESSING_HANDLING_CHARGE
            - LOCAL_GOVERNMENT_CHARGE
            - OTHER
        fee_description:
          type: string
          description: Optional free-form description for the fee.
      description: Represents a fee to be applied based on various criteria.
    FiatFeeRequest:
      type: object
      required:
        - currency_code
        - fee_type
        - node_type
        - payment_type
        - role_type
        - value
      properties:
        value:
          type: number
          example: 0.025
          description: >
            Value of the fee to apply.


            Set the value of this parameter according to the fee type you are
            using:


            | [fee_type](#operation/createFee!path=fee_type&t=request) |
            Corresponding value to use |

            | --- | --- |

            | PERCENTAGE | `value` must be >`0` and <`100`. |

            | FLAT_RATE | `value` can be negative. |


            **Note**: The final amount of the fee is applied either as a
            percentage or a flat rate depending on the `value` you specify for
            the `fee_type` parameter.
        currency_code:
          type: string
          example: USD
          description: >-
            Currency the fee is applied in. Ripple recommends using
            [ISO-4217](https://www.iso.org/iso-4217-currency-codes.html)
            currency codes, although no formal constraint is enforced.
        role_type:
          type: string
          example: SENDING
          description: Role of the party to which the fee applies.
          enum:
            - SENDING
            - RECEIVING
            - INSTITUTION_SENDING
            - INSTITUTION_RECEIVING
          x-enumDescriptions:
            SENDING: Charge the originator of the payment.
            RECEIVING: Charge the beneficiary of the payment.
            INSTITUTION_SENDING: Charge the financial institution sending the payment.
            INSTITUTION_RECEIVING: Charge the financial institution receiving the payment.
        payment_type:
          type: string
          example: REGULAR
          description: Type of payment to which the fee applies.</p>
          enum:
            - REGULAR
            - RETURN
          x-enumDescriptions:
            REGULAR: Apply the fee to a regular payment.
            RETURN: Apply the fee to a return payment.
        node_type:
          type: string
          example: INITIAL
          description: Fiat instance to which the fee applies.
          enum:
            - INITIAL
            - INTERMEDIATE
            - TERMINAL
          x-enumDescriptions:
            INITIAL: Apply the fee to the first fiat instance in the payment chain.
            INTERMEDIATE: >-
              Apply the fee to each fiat instance in the payment chain that is
              not the first or last.
            TERMINAL: Apply the fee to the last fiat instance in the payment chain.
        fee_type:
          type: string
          example: FLAT_RATE
          description: >-
            Type of fee to apply. This is used with fee
            [value](#operation/createFee!path=value&t=request) to calculate the
            fee.
          enum:
            - PERCENTAGE
            - FLAT_RATE
          x-enumDescriptions:
            PERCENTAGE: Apply the fee `value` as a percentage.
            FLAT_RATE: Apply the fee `value` as a flat rate.
        partner_name:
          type: string
          example: rn.us.ca.san_francisco
          description: >-
            Owner of the account involved in the payment, in RippleNet Address
            format. For example, `rn.us.ca.san_francisco`.
        account_name:
          type: string
          example: conct_usd_sf
          description: >-
            Account to apply the fee to. Specify the account name. For example,
            `conct_usd_sf`. If specified, you must also specify a `partner_name`
            value.
        upper_limit:
          type: number
          example: 1000
          description: >-
            Maximum amount for the range of a slab-based fee. If specified, you
            must also specify a `lower_limit` value.
        lower_limit:
          type: number
          example: 0
          description: >-
            Minimum amount for the range of a slab-based fee. If specified, you
            must also specify an `upper_limit` value.
        payout_method:
          type: string
          example: LOCAL_RAILS
          description: >-
            The payout method by which the receiving institution delivers the
            funds to the end customer.
        fee_category:
          type: string
          example: BENEFICIARY_BANK_CHARGE
          description: Category that describes the purpose of the fee.
          default: NONE
          enum:
            - NONE
            - OVERSEAS_DELIVERY_CHARGES
            - BENEFICIARY_BANK_CHARGE
            - PROCESSING_HANDLING_CHARGE
            - LOCAL_GOVERNMENT_CHARGE
            - OTHER
          x-enumDescriptions:
            NONE: None
            OVERSEAS_DELIVERY_CHARGES: Overseas delivery charges.
            BENEFICIARY_BANK_CHARGE: Charge from beneficiary bank.
            PROCESSING_HANDLING_CHARGE: Processing and handling charge.
            LOCAL_GOVERNMENT_CHARGE: Local government charge.
            OTHER: Other charges.
        fee_description:
          type: string
          description: Optional free-form description for the fee.
      description: >-
        Use this JSON request object to create a fee that can be applied to
        payments.
    Rates:
      type: object
      required:
        - content
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              description: Provides an array of rate objects.
              type: array
              items:
                $ref: '#/components/schemas/RateResponse'
      description: >-
        Provides a `content` array of rate objects and a set of pagination
        information fields.
    RateResponse:
      type: object
      required:
        - base_currency
        - counter_currency
        - created_date
        - destination_currency
        - destination_ledger
        - destination_ledger_account
        - expiration_offset
        - lower_limit
        - order_type
        - rate
        - rate_id
        - rate_scale
        - source_currency
        - source_ledger
        - source_ledger_account
        - upper_limit
        - value_type
        - margin_type
      properties:
        rate_id:
          type: string
          format: uuid
          example: 328b3e50-7983-46d5-94a0-ef004d78db1d
          description: Unique identifier of the exchange rate.
        expiration_offset:
          type: integer
          example: 95000
          description: >-
            <b>(DEPRECATED)</b> This property is deprecated. Refer to
            `expires_at` to determine rate expiration. <p>Amount of time in
            milliseconds that the rate is valid for after the rate's
            `created_date` value. For example, if the `expiration_offset` value
            is `100000` milliseconds, the rate expires `100000` milliseconds
            after this `created_date` value. If set to `0`, the rate does not
            expire.</p>
        order_type:
          type: string
          example: buy
          description: Order type for the exchange rate.
          enum:
            - buy
            - sell
        rate_scale:
          type: integer
          example: 9
          description: >-
            Number of decimal places to which the exchange rate is calculated.
            For example, if the `rate_scale` value is set to `9` and the `rate`
            value is set to `1.25`, the scaled value of the rate is
            `1.250000000`.
          default: 9
        rate:
          type: number
          example: 0.89
          description: Exchange rate for the specified base and counter currency.
        base_currency:
          type: string
          example: USD
          description: Base currency of the exchange rate.
        counter_currency:
          type: string
          example: GBP
          description: Counter currency of the exchange rate.
        source_currency:
          type: string
          example: USD
          description: >-
            If `order_type` is set to `buy`, this is set to the base currency.
            If `order_type` is set to `sell`, this is set to the counter
            currency.
        destination_currency:
          type: string
          example: GBP
          description: >-
            If `order_type` is set to `buy`, this is set to the counter
            currency. If `order_type` is set to `sell`, this is set to the base
            currency.
        source_ledger:
          type: string
          example: rn.eur.uk.london
          description: Source ledger associated with the exchange rate.
        destination_ledger:
          type: string
          example: rn.eur.uk.london
          description: Destination ledger associated with the exchange rate.
        source_ledger_account:
          type: string
          example: alias_usd_lon
          description: Account on the source ledger associated with rate.
        destination_ledger_account:
          type: string
          example: conct_gbp_lon
          description: Account on the destination ledger associated with rate.
        created_date:
          type: string
          format: date-time
          description: >-
            Date and time at which the exchange rate was created, as an ISO-8601
            timestamp in UTC. Fiat determines a rate's expiration date and time
            based on this value and `expiration_offset` value. For example, if
            the `expiration_offset` value is `100000` milliseconds, the rate
            expires `100000` milliseconds after this `created_date` value.
        expires_at:
          type: string
          format: date-time
          description: The time in which this rate expires in system local timezone
        lower_limit:
          type: number
          example: 0
          description: >-
            For a slab-based exchange rate, indicates the lower limit of the
            slab.
        upper_limit:
          type: number
          example: 1000
          description: >-
            For a slab-based exchange rate, indicates the upper limit of the
            slab.
        payout_method:
          type: string
          example: LOCAL_RAILS
          description: The payout method for the rate.
        value_type:
          type: string
          example: MARGIN
          description: >-
            Indicates whether the rate is a live exchange rate (`MARGIN`) or an
            exchange rate manually configured by Ripple (`RATE`). If this value
            is `MARGIN`, then `margin_type` will show a value.
          enum:
            - MARGIN
            - RATE
        margin_type:
          type: string
          example: BPS
          description: >-
            Indicates the unit of margin applied in addition to the rate
            provided by Ripple. This field has a value only if `value_type` =
            `MARGIN`. If `value_type` is `RATE`, this field is `null`.
          enum:
            - BPS
      description: JSON response object that represents an exchange rate.
    RateRequest:
      type: object
      required:
        - base_currency
        - counter_currency
        - expiration_offset
        - order_type
        - rate
      properties:
        expiration_offset:
          type: integer
          example: 95000
          description: >-
            Set to the amount of time in milliseconds that the rate is valid for
            after the rate's `created_date` value. Set to `0` to indicate that
            the rate does not expire. The value returned in the response object
            for this field is `null`. Refer to the `expires_at` value in the
            response object to verify your expiration offset timing.
        order_type:
          type: string
          example: buy
          description: Set to the order type for the exchange rate.
          enum:
            - buy
            - sell
        rate:
          type: number
          example: 0.89
          description: >
            This value of this field represents either rate or margin based on
            what you specify in the `value_type` field. 


            If you specify `value_type=rate`, set the value of this field to the
            exchange rate for a base and counter currency. The rate can use up
            to 6 decimal

            places. 


            If you specify `value_type=margin`, set the value of this field
            depending on the unit of margin you specified in the `margin_type`
            field.
        base_currency:
          type: string
          example: USD
          description: Set to the base currency of the exchange rate.
        counter_currency:
          type: string
          example: GBP
          description: Set to the counter currency of the exchange rate.
        ledger:
          $ref: '#/components/schemas/RatePerLedgerRequest'
        account:
          $ref: '#/components/schemas/RatePerAccountRequest'
        lower_limit:
          type: number
          example: 0
          description: >-
            To create a slab-based exchange rate, provide the lower limit of the
            slab. You must also provide an `upper_limit` value.
        upper_limit:
          type: number
          example: 1000
          description: >-
            To create a slab-based exchange rate, provide the upper limit of the
            slab. You must also provide a `lower_limit` value.
        payout_method:
          type: string
          example: LOCAL_RAILS
          description: The payout method for the rate.
        value_type:
          type: string
          example: MARGIN
          description: >-
            Specify whether you want to use a live exchange rate (`MARGIN`) or
            an exchange rate manually configured by Ripple (`RATE`). If you set
            this value to `MARGIN`, you must also provide `margin_type`.
          enum:
            - MARGIN
            - RATE
        margin_type:
          type: string
          example: BPS
          description: >-
            Specify the unit of margin to be applied (BPS) in addition to the
            rate provided by Ripple. Specify this field only if you set
            `value_type` = `MARGIN`.
          enum:
            - BPS
      description: >-
        Use this JSON request body to create an exchange rate for a base and
        counter currency.
    RatePerLedgerRequest:
      type: object
      required:
        - destination_ledger
        - source_ledger
      properties:
        source_ledger:
          type: string
          example: rn.eur.uk.london
          description: Set to the source ledger associated with the exchange rate.
        destination_ledger:
          type: string
          example: rn.eur.uk.london
          description: Set to the destination ledger associated with the exchange rate.
      description: >-
        Use the `ledger` request object to create an exchange rate that applies
        to exchanges between a specific source ledger and destination ledger.
    RatePerAccountRequest:
      type: object
      required:
        - destination_ledger
        - destination_ledger_account
        - source_ledger
        - source_ledger_account
      properties:
        source_ledger:
          type: string
          example: rn.eur.uk.london
          description: Set to the source ledger associated with the exchange rate.
        destination_ledger:
          type: string
          example: rn.eur.uk.london
          description: Set to the destination ledger associated with the exchange rate.
        source_ledger_account:
          type: string
          example: alias_usd_lon
          description: Set to the account on the source ledger associated with the rate.
        destination_ledger_account:
          type: string
          example: conct_gbp_lon
          description: >-
            Set to the account on the destination ledger associated with the
            rate.
      description: >-
        Use the `account` request object to create an exchange rate that applies
        to exchanges between a specific source ledger account and destination
        ledger account.
    RippleNetNodeRequestsForPayment:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/RippleNetNodeRequestForPayment'
      description: 'Paged response for requests for payment includes:'
    RippleNetNodeRequestForPaymentRequest:
      type: object
      required:
        - amount
        - currency
        - quote_type
        - receiver_address
        - sender_address
      properties:
        sender_address:
          type: string
          example: trans_usd_sf@rn.us.ca.san_francisco
          description: >-
            RippleNet address of the node that is receiving the request for
            payment, or the eventual sender of the payment.
        receiver_address:
          type: string
          example: trans_gbp_lon@rn.eur.uk.london
          description: >-
            RippleNet address of the node that is sending the request for
            payment, or the eventual receiver of the payment.
        amount:
          type: number
          example: 100.01
          description: Amount requested to be paid.
        currency:
          type: string
          example: USD
          description: Currency code for the `amount` value.
        quote_type:
          type: string
          example: SENDER_AMOUNT
          description: >-
            Indicates how the amount field should be treated for calculating
            quote values.
          enum:
            - SENDER_AMOUNT
            - RECEIVER_AMOUNT
            - SENDER_INSTITUTION_AMOUNT
            - RECEIVER_INSTITUTION_AMOUNT
        end_to_end_id:
          type: string
          description: >-
            ID that the eventual payment receiver can specify. Persisted on all
            rippleNet node instances (namely, the sender and receiver of the
            payment) that participate in the request for payment.
        user_info:
          type: object
          description: User-provided data with arbitrary key/value pairs.
          properties: {}
      description: Use this JSON object to request a request for payment.
    RippleNetNodeRequestForPayment:
      type: object
      required:
        - amount
        - created_at
        - currency
        - quote_type
        - receiver_address
        - request_for_payment_id
        - request_for_payment_state
        - sender_address
        - user_info
      properties:
        request_for_payment_id:
          type: string
          format: uuid
          example: 1bf93760-ef69-4697-b2b4-47d9e1c42aa7
          description: Unique identifier of a request for payment.
        request_for_payment_state:
          type: string
          example: REQUESTED
          description: State of the request for payment.
          enum:
            - REQUESTED
            - ACCEPTED
            - FAILED
        sender_address:
          type: string
          example: trans_usd_sf@rn.us.ca.san_francisco
          description: >-
            RippleNet address of the node that is receiving the request for
            payment, or the eventual sender of the payment.
        receiver_address:
          type: string
          example: trans_gbp_lon@rn.eur.uk.london
          description: >-
            RippleNet address of the node that is sending the request for
            payment, or the eventual receiver of the payment.
        amount:
          type: number
          example: 100.01
          description: Amount requested to be paid.
        currency:
          type: string
          example: USD
          description: Currency code for the `amount` value.
        quote_type:
          type: string
          example: SENDER_AMOUNT
          description: >-
            Indicates how the amount field should be treated for calculating
            quote values.
          enum:
            - SENDER_AMOUNT
            - RECEIVER_AMOUNT
            - SENDER_INSTITUTION_AMOUNT
            - RECEIVER_INSTITUTION_AMOUNT
        end_to_end_id:
          type: string
          description: >-
            ID that the eventual payment receiver can specify. Persisted on all
            rippleNet Node instances (namely, the sender and receiver of the
            payment) that participate in the request for payment.
        user_info:
          type: array
          description: User-provided data with arbitrary key/value pairs.
          items:
            $ref: '#/components/schemas/RippleNetNodeRequestForPaymentUserInfo'
        created_at:
          type: string
          format: date-time
          description: >-
            Date and time at which the request for payment was created, as an
            ISO-8601 timestamp in UTC.
        payment_id:
          type: string
          format: uuid
          example: 5492648d-2132-4e70-9ded-2fc86f22b321
          description: Unique identifier of a payment associated to request for payment.
      description: Use this JSON object represent a request for payment.
    RippleNetNodeRequestForPaymentUserInfo:
      type: object
      required:
        - node_address
      properties:
        node_address:
          type: string
          description: RippleNet address of the node that provided the user information.
        requested:
          type: array
          description: >-
            User information optionally provided when sending the request for
            payment.
          items:
            $ref: '#/components/schemas/UserInfoEntry'
        accepted:
          type: array
          description: >-
            User information optionally provided when accepting the request for
            payment.
          items:
            $ref: '#/components/schemas/UserInfoEntry'
        failed:
          type: array
          description: >-
            User information optionally provided when failing the request
            payment.
          items:
            $ref: '#/components/schemas/UserInfoEntry'
      description: User information provided across the payment lifecycle.
    AcceptRequestForPaymentRequest:
      type: object
      required:
        - payment_id
      properties:
        payment_id:
          type: string
          format: uuid
          example: 1bf93760-ef69-4697-b2b4-47d9e1c42aa7
          description: >-
            Unique identifier of payment associated with the request for
            payment.
        user_info:
          type: object
          description: User-provided data with arbitrary key/value pairs.
          properties: {}
      description: Use this JSON object to accept a request for payment.
    FailRequestForPaymentRequest:
      type: object
      properties:
        user_info:
          type: object
          description: User-provided data with arbitrary key/value pairs.
          properties: {}
      description: Use this JSON object to fail a request for payment.
    QuoteExpiries:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/QuoteExpiry'
      description: >-
        Provides a `content` array of quote expiry objects and a set of
        pagination information fields.
    QuoteExpiry:
      type: object
      properties:
        quote_ttl:
          type: number
          example: 5900
          description: >-
            Quote expiration window, or time to live (ttl), in seconds. To
            calculate the quote expiration date, xCurrent adds this value to the
            quote creation timestamp.
        sending_partner:
          type: string
          example: rn.us.ca.san_francisco
          description: >-
            RippleNet address of the sender, in the format `ripplenetaddress`.
            For example, `rn.us.sf.san_francisco`.
        receiving_partner:
          type: string
          example: rn.us.tx.austin
          description: >-
            RippleNet address of the receiver, in the format `ripplenetaddress`.
            For example, `rn.us.ny.new_york`.
        currency:
          type: string
          example: USD
          description: currency of the exchange rate.
        id:
          type: integer
          example: 2
          description: id of quote expiry object
      description: >-
        Use this JSON request object to update the quote time to live
        represented in seconds.
    PaymentExpiries:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/PaymentExpiryResponse'
      description: >-
        Provides a `content` array of payment expiry objects and a set of
        pagination information fields.
    PaymentExpiry:
      type: object
      properties:
        payment_ttl:
          type: number
          example: 5900
          description: >-
            Payment expiration window, or time to live (ttl), in seconds. To
            calculate the payment expiration date, xCurrent adds this value to
            the payment creation timestamp.
        sending_partner:
          type: string
          example: rn.us.ca.san_francisco
          description: >-
            RippleNet address of the sender, in the format `ripplenetaddress`.
            For example, `rn.us.sf.san_francisco`.
        receiving_partner:
          type: string
          example: rn.us.tx.austin
          description: >-
            RippleNet address of the receiver, in the format `ripplenetaddress`.
            For example, `rn.us.ny.new_york`.
        currency:
          type: string
          example: USD
          description: currency of the exchange rate.
      description: >-
        Use this JSON request object to update the payment time to live
        represented in seconds.
    PaymentExpiryResponse:
      type: object
      properties:
        payment_ttl:
          type: number
          example: 5900
          description: >-
            Payment expiration window, or time to live (ttl), in seconds. To
            calculate the payment expiration date, xCurrent adds this value to
            the payment creation timestamp.
        sending_partner:
          type: string
          example: rn.us.ca.san_francisco
          description: >-
            RippleNet address of the sender, in the format `ripplenetaddress`.
            For example, `rn.us.sf.san_francisco`.
        receiving_partner:
          type: string
          example: rn.us.tx.austin
          description: >-
            RippleNet address of the receiver, in the format `ripplenetaddress`.
            For example, `rn.us.ny.new_york`.
        currency:
          type: string
          example: USD
          description: currency of the exchange rate.
        expiry_id:
          type: string
          format: uuid
          example: 4711728c-cd35-49ec-96a5-72732b4333ec
          description: id of payment expiry object
      description: >-
        Use this JSON request object to update the payment time to live
        represented in seconds.
    ExchangeTransfers:
      type: object
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              description: Provides an array of exchange transfer objects.
              items:
                $ref: '#/components/schemas/FiatExchangeTransferExecuteResponse'
      description: >-
        Provides a `content` array of exchange transfer objects and a set of
        pagination information fields.
    FiatExchangeTransferExecuteResponse:
      type: object
      required:
        - destination_amount
        - destination_currency
        - end_to_end_id
        - exchange_transfer_id
        - fx_transfer_rate
        - internal_id
        - receiver_address
        - sender_address
        - source_amount
        - source_currency
        - state
        - type
        - user_info
      properties:
        exchange_transfer_id:
          type: string
          format: uuid
          example: e3b20ba4-28ed-4752-990d-e67887bb331e
          description: Unique identifier of the exchange transfer.
        state:
          type: string
          example: EXECUTED
          description: State of the exchange transfer.
          enum:
            - EXECUTED
            - COMPLETED
            - FAILED
        type:
          type: string
          example: INDICATIVE
          description: |
            Indicates the exchange transfer's quoted FX rate type.
          enum:
            - FIRM
            - INDICATIVE
          x-enumDescriptions:
            FIRM: >-
              A firm exchange rate ensures that the quoted and delivered
              transfer amounts are equal.
            INDICATIVE: >-
              An indicative exchange rate allows for movement between quoted
              rate and transfer execution, such that the quoted amount and
              delivered amount may differ.
          default: FIRM
        sender_address:
          type: string
          example: sf@rn.us.ca.san_francisco
          description: >-
            RippleNet account name and address of the sender, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        receiver_address:
          type: string
          example: sf_gbp@rn.us.ca.san_francisco
          description: >-
            RippleNet account name and address of the receiver, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        source_amount:
          type: number
          example: 1
          description: Sending amount of the exchange transfer.
        destination_amount:
          type: number
          example: 355
          description: Receiving amount of the exchange transfer.
        source_currency:
          type: string
          example: USD
          description: Sending currency of the exchange transfer.
        destination_currency:
          type: string
          example: GBP
          description: Receiving currency of the exchange transfer.
        fx_transfer_rate:
          $ref: '#/components/schemas/ExchangeTransferRate'
        end_to_end_id:
          type: string
          description: >-
            ID set by the sender that is persisted on all fiat node instances
            that participated in the transfer.
        internal_id:
          type: string
          description: >-
            Internal ID that the sender can optionally specify. Only visible to
            the sender. Only the sending fiat node instance stores this ID.
        user_info:
          type: array
          description: >-
            Custom information set by a RippleNet address involved in the
            exchange transfer.
          items:
            $ref: '#/components/schemas/FiatExchangeTransferUserInfo'
      description: JSON response object that represents an exchange transfer.
    ExchangeTransferRate:
      type: object
      required:
        - base_currency
        - counter_currency
        - rate
        - rate_type
      properties:
        rate:
          type: number
          example: 0.89
          description: Exchange rate used to make the exchange transfer.
        base_currency:
          type: string
          example: USD
          description: Base currency for custom rate for the sending account.
        counter_currency:
          type: string
          example: GBP
          description: Counter currency for custom rate for the sending account.
        rate_type:
          type: string
          example: BUY
          description: >-
            Rate type used to make the exchange transfer. Valid values are `BUY`
            or `SELL`.
      description: Describes an exchange rate used in an exchange transfer.
    FiatExchangeTransferUserInfo:
      type: object
      required:
        - json
        - node_address
        - state
      description: >-
        Custom information about an exchange transfer provided by a RippleNet
        address involved in the exchange transfer.
      properties:
        node_address:
          type: string
          example: rn.us.ny.new_york
          description: >-
            RippleNet address of the fiat node instance that set the user
            information.
        state:
          type: string
          example: EXECUTED
          description: >-
            State of the exchange transfer set when the RippleNet address set
            the user information.
          enum:
            - EXECUTED
            - COMPLETED
            - FAILED
        json:
          type: object
          description: One or more arbitrary key/value pairs.
          properties: {}
        created_at:
          type: string
          format: date-time
          description: timestamp of when this user info was created
    FiatExchangeTransferExecuteRequest:
      type: object
      required:
        - amount
        - amount_type
        - receiver_address
        - sender_address
      properties:
        sender_address:
          type: string
          example: alias_usd_lon@rn.eur.uk.london
          description: >-
            RippleNet account name and address of the sender, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        receiver_address:
          type: string
          example: conct_gbp_lon@rn.eur.uk.london
          description: >-
            RippleNet account name and address of the receiver, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        amount:
          type: number
          minimum: 0
          example: 100
          description: >-
            Amount transferred, expressed in the curency of the account
            indicated by the `amount_type` value.
        amount_type:
          type: string
          example: SENDER_AMOUNT
          description: >-
            Amount type used for the exchange transfer.<p>To indicate that the
            `amount` is expressed in the currency of the account provided by the
            `sender_address` value, set to `SENDER_AMOUNT`.</p> <p>To indicate
            that the `amount` is expressed in the currency of the account
            provided by the `receiver_address` value, set to
            `RECEIVER_AMOUNT`.</p>
          enum:
            - SENDER_AMOUNT
            - RECEIVER_AMOUNT
        end_to_end_id:
          type: string
          maxLength: 128
          example: 378910
          description: >-
            ID set by the sender that is persisted on all fiat node instances
            that participated in the transfer.
        internal_id:
          type: string
          maxLength: 128
          example: 1987
          description: >-
            Internal ID that the sender can optionally specify. Only visible to
            the sender. Only the sending fiat node instance stores this ID.
        user_info:
          type: object
          description: Provide one or more arbitrary key/value pairs.
          properties: {}
      description: JSON request object to execute an exchange transfer.
    FiatExchangeTransferQuoteRequest:
      type: object
      required:
        - amount
        - amount_type
        - receiver_address
        - sender_address
      properties:
        sender_address:
          type: string
          example: alias_usd_lon@rn.eur.uk.london
          description: >-
            RippleNet account name and address of the sender, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        receiver_address:
          type: string
          example: conct_gbp_lon@rn.eur.uk.london
          description: >-
            RippleNet account name and address of the receiver, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        amount:
          type: number
          minimum: 0
          example: 100
          description: >-
            Amount transferred, expressed in the curency of the account
            indicated by the `amount_type` value.
        amount_type:
          type: string
          example: SENDER_AMOUNT
          description: >-
            Amount type of the exchange transfer.<p>To indicate that the
            `amount` is expressed in the currency of the account provided by the
            `sender_address` value, set to `SENDER_AMOUNT`.</p> <p>To indicate
            that the `amount` is expressed in the currency of the account
            provided by the `receiver_address` value, set to
            `RECEIVER_AMOUNT`.</p>
          enum:
            - SENDER_AMOUNT
            - RECEIVER_AMOUNT
      description: Use this JSON request body to request a quote for an exchange transfer.
    FiatExchangeTransferQuoteResponse:
      type: object
      required:
        - destination_amount
        - destination_currency
        - fx_transfer_rate
        - receiver_address
        - sender_address
        - source_amount
        - source_currency
        - type
      properties:
        type:
          type: string
          description: Indicates the exchange transfer's quoted FX rate type.
          default: FIRM
          example: INDICATIVE
          enum:
            - FIRM
            - INDICATIVE
          x-enumDescriptions:
            FIRM: >-
              A firm exchange rate ensures that the quoted and delivered
              transfer amounts are equal.
            INDICATIVE: >-
              An indicative exchange rate allows for movement between quoted
              rate and transfer execution, such that the quoted amount and
              delivered amount may differ.
        sender_address:
          type: string
          example: alias_usd_lon@rn.eur.uk.london
          description: >-
            RippleNet account name and address of the sender, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        receiver_address:
          type: string
          example: conct_gbp_lon@rn.eur.uk.london
          description: >-
            RippleNet account name and address of the receiver, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        source_amount:
          type: number
          example: 100
          description: Sending amount of the exchange transfer.
        destination_amount:
          type: number
          example: 89
          description: Receiving amount of the exchange transfer.
        source_currency:
          type: string
          example: USD
          description: Sending currency of the exchange transfer.
        destination_currency:
          type: string
          example: GBP
          description: Receiving currency of the exchange transfer.
        fx_transfer_rate:
          $ref: '#/components/schemas/ExchangeTransferRate'
      description: JSON response object that represents a quote for an exchange transfer.
    AccountLookupStatus:
      type: string
      enum:
        - REQUESTED
        - PROCESSED
        - FAILED
        - EXPIRED
    CreateODLFlagConfigRequest:
      type: object
      description: Request object for creating a ODL Flag Configuration.
      required:
        - flag
      properties:
        flag:
          type: string
          description: Flag to be passed to ODL in payment/estimate requests.
        flag_value:
          type: string
          description: flag value to be passed to ODL in payment/estimate requests.
        exchange:
          type: string
          description: >-
            Exchange name for which this flag should be added to the ODL
            payment/estimate request
        sender_host:
          type: string
          description: >-
            Sender host ripplenet hostname who sends the payment for which this
            flag is to be applied
    UpdateODLFlagConfigRequest:
      type: object
      description: Request object for updating a Liquidation Configuration.
      properties:
        flag:
          type: string
          description: Flag to be passed to ODL in payment/estimate requests.
        flag_value:
          type: string
          description: flag value to be passed to ODL in payment/estimate requests.
        exchange:
          type: string
          description: >-
            Exchange name for which this flag should be added to the ODL
            payment/estimate request
        sender_host:
          type: string
          description: >-
            Sender host ripplenet hostname who sends the payment for which this
            flag is to be applied
    ODLFlagConfigResponse:
      type: object
      description: Response object for Liquidation Configuration
      properties:
        odl_flag_config_id:
          type: string
          format: uuid
          description: The unique identifier for this ODL Flag Configuration.
        flag:
          type: string
          description: Flag to be passed to ODL in payment/estimate requests.
        flag_value:
          type: string
          description: flag value to be passed to ODL in payment/estimate requests.
        exchange:
          type: string
          description: >-
            Exchange name for which this flag should be added to the ODL
            payment/estimate request
        sender_host:
          type: string
          description: >-
            Sender host ripplenet hostname who sends the payment for which this
            flag is to be applied
    ODLFlagConfigsPage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/ODLFlagConfigResponse'
      description: Paged response for ODL Flag Configurations
    RpoSchemaRequest:
      type: object
      required:
        - receiver_address
        - schema_name
        - schema
        - receiver_currency
      properties:
        sender_address:
          type: string
          maxLength: 64
          example: test.ros.com
          description: RippleNet sender address.
        receiver_address:
          type: string
          maxLength: 64
          example: test.ros.com
          description: RippleNet receiver address.
        schema_name:
          type: string
          maxLength: 64
          example: schema1
          description: customer schema name.
        schema:
          type: object
          description: RPO schema.
        schema_description:
          type: string
          maxLength: 256
          description: RPO schema description.
        receiver_currency:
          type: string
          minLength: 3
          maxLength: 3
          pattern: ^[a-zA-Z0-9_]*$
          description: Receiver currency code for schema.
        payment_method:
          type: string
          pattern: ^[a-zA-Z0-9@_,:\s-]*$
          minLength: 2
          maxLength: 32
          description: Payment method for schema.
      description: JSON request object that represents an RPO schema.
    RpoSchemaResponse:
      type: object
      required:
        - schema_id
        - sender_address
        - receiver_address
        - schema_name
        - schema
        - schema_description
        - receiver_currency
        - created_at
        - payment_method
      properties:
        schema_id:
          type: string
          format: uuid
          example: 5492648d-2132-4e70-9ded-2fc86f22b321
          description: Unique Identifier of an RPO schema.
        sender_address:
          type: string
          maxLength: 64
          example: test.ros.com
          description: RippleNet sender address.
        receiver_address:
          type: string
          example: test.ros.com
          description: RippleNet receiver address.
        schema_name:
          type: string
          example: schema1
          description: customer schema name.
        schema_description:
          type: string
          description: RPO schema description.
        receiver_currency:
          type: string
          description: receiver currency code for schema.
        payment_method:
          type: string
          description: payment method for schema.
        created_at:
          type: string
          format: date-time
          example: '2018-04-06T20:33:35Z'
          description: >-
            Date and time at which the RPO was created, as an ISO-8601 timestamp
            in UTC.
        schema:
          type: object
          description: RPO schema.
      description: JSON response object that represents an RPO schema.
    RpoSchemasAddresses:
      type: array
      items:
        $ref: '#/components/schemas/RpoSchemasAddressResponse'
      description: List response of RPO schemas for RippleNet receiver addresses.
    RpoSchemasAddressResponse:
      type: object
      required:
        - receiver_address
        - schemas
        - created_at
      properties:
        receiver_address:
          type: string
          example: test.ros.com
          description: RippleNet receiver address.
        schemas:
          type: array
          description: RPO schema details.
          items:
            $ref: '#/components/schemas/RpoSchema'
      description: Response for RPO schema of a RippleNet receiver address.
    RpoSchema:
      type: object
      required:
        - schema_id
        - schema_name
        - receiver_currency
        - payment_method
        - created_at
        - schema
      properties:
        schema_id:
          type: string
          format: uuid
          example: 5492648d-2132-4e70-9ded-2fc86f22b321
          description: Unique Identifier of an RPO schema.
        schema_name:
          type: string
          example: schema1
          description: customer schema name.
        schema_description:
          type: string
          maxLength: 255
          description: RPO schema description.
        receiver_currency:
          type: string
          description: receiver currency code for schema.
        payment_method:
          type: string
          description: payment method for schema.
        created_at:
          type: string
          format: date-time
          example: '2018-04-06T20:33:35Z'
          description: >-
            Date and time at which the RPO was created, as an ISO-8601 timestamp
            in UTC.
        schema:
          type: object
          description: RPO schema.
      description: >
        JSON response object that represents a payment.


        A payment is the movement of value across accounts on potentially
        different RippleNet instances involving one or more currencies.
    ActivityRequest:
      type: object
      required:
        - name
        - context_name
        - bean_name
        - notification_type
        - activity_description
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9_]*$
          example: custom_get_quote_v1
          description: Name of the activity. It must start with 'custom'.
        context_name:
          type: string
          minLength: 1
          maxLength: 32
          pattern: ^[a-zA-Z0-9_]*$
          example: get_quote
          description: Context name used for accessing request/response of activities.
        bean_name:
          type: string
          minLength: 1
          maxLength: 32
          pattern: ^[a-zA-Z0-9]*$
          example: getQuoteV1
          description: Bean name used for activity execution.
        end_activity:
          type: boolean
          example: false
          default: false
          description: Flag to denote whether the activity is an end acitvity.
        notification_type:
          type: string
          minLength: 1
          maxLength: 128
          pattern: ^[a-zA-Z0-9_:]*$
          description: >-
            notification_type used for validating messages in queue when
            activity in execution.
        activity_description:
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^[a-zA-Z0-9@_,.:\s-]*$
          description: Description of the activity.
        retry_interval:
          type: integer
          description: Retry interval time of the activity in minutes.
      description: JSON request object that represents an activity.
    ActivityResponse:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          example: 5492648d-2132-4e70-9ded-2fc86f22b321
          description: Unique Identifier of the activity.
        name:
          type: string
          example: get_quote_v1
          description: Activity name.
        context_name:
          type: string
          example: get_quote
          description: Context name used for accessing request/response of activities.
        bean_name:
          type: string
          example: getQuoteV1
          description: Bean name used for activity execution.
        end_activity:
          type: boolean
          example: false
          description: Flag to denote whether the activity is an end acitvity.
        activity_description:
          type: string
          maxLength: 256
          description: Description of the activity.
        retry_interval:
          type: integer
          description: Retry interval time of the activity in minutes.
        created_at:
          type: string
          format: date-time
          example: '2018-04-06T20:33:35Z'
          description: >-
            Date and time at which the activity was created, as an ISO-8601
            timestamp in UTC.
      description: JSON response object that represents an activity.
    Activities:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/ActivityResponse'
    OrchestrationTemplateRequest:
      type: object
      required:
        - name
        - payment_type
        - connector_role
        - activity_order
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9_-]*$
          example: custom_orchestration_template_v1
          description: Name of the orchestration template. It must start with 'custom'.
        payment_type:
          type: string
          description: The payment type for which the template is to be used.
          enum:
            - REGULAR
            - RETURN
            - ACCEPT
            - REVERSAL
        connector_role:
          type: string
          description: The connector role for which the template is to be used.
          enum:
            - SENDING
            - RECEIVING
            - INTERMEDIARY
        default_template:
          type: boolean
          example: true
          default: false
          description: Is orchestration template default.
        orchestration_template_description:
          type: string
          maxLength: 256
          pattern: ^[a-zA-Z0-9@_,.:\s-]*$
          default: ''
          description: Orchestration template description.
        activity_order:
          type: array
          description: Activity order list.
          minItems: 1
          items:
            $ref: '#/components/schemas/ActivityOrderRequest'
      additionalProperties: false
      description: JSON request object that represents a orchestration template request.
    OrchestrationTemplateUpdateRequest:
      type: object
      required:
        - default_template
      properties:
        default_template:
          type: boolean
          example: true
          default: false
          description: Is orchestration template default.
      description: >-
        JSON request object that represents an orchestration template put
        request.
    ActivityOrderRequest:
      type: object
      required:
        - activity_name
        - next_activity
      properties:
        activity_name:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9_]*$
          example: activity_v1
          description: Activity name.
        next_activity:
          type: array
          description: Next activity based on current activity status.
          items:
            $ref: '#/components/schemas/NextActivityRequest'
      description: JSON request object that represents an Activity Order.
    ActivityUpdateRequest:
      type: object
      required:
        - retry_interval
      properties:
        retry_interval:
          type: integer
          description: Retry interval time of the activity, in minutes.
      description: JSON request object that represents an activity put request.
    NextActivityRequest:
      type: object
      required:
        - status
        - activity_name
      properties:
        status:
          type: string
          description: Activity status
          enum:
            - SUCCESS
            - FAILURE
            - DECLINED
            - REDO
            - SUBSTATE
            - NOTIFY
            - SUBTASK
        activity_name:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9_]*$
          example: activity_v1
          description: Activity name.
      description: >-
        JSON request object that represents a next activity based on current
        activity status.
    OrchestrationTemplateResponse:
      type: object
      required:
        - name
        - activity_order
      properties:
        name:
          type: string
          maxLength: 64
          example: custom_orchestration_template_v1
          description: Orchestration template name.
        payment_type:
          type: string
          description: The payment type for which the template is to be used.
          enum:
            - REGULAR
            - RETURN
            - REVERSAL
        connector_role:
          type: string
          description: The connector role for which the template is to be used.
          enum:
            - SENDING
            - RECEIVING
            - INTERMEDIARY
        default_template:
          type: boolean
          example: true
          default: false
          description: Is orchestration template default.
        orchestration_template_description:
          type: string
          maxLength: 255
          description: Orchestration template description.
        activity_order:
          type: array
          description: Activity order list.
          items:
            $ref: '#/components/schemas/ActivityOrderResponse'
      description: JSON request object that represents an orchestration template response.
    ActivityOrderResponse:
      type: object
      required:
        - activity_name
        - next_activity
      properties:
        activity_name:
          type: string
          maxLength: 64
          example: activity_v1
          description: Activity name.
        next_activity:
          type: array
          description: Next activity based on current activity status.
          items:
            $ref: '#/components/schemas/NextActivityResponse'
      description: JSON request object that represents an Activity Order response.
    NextActivityResponse:
      type: object
      required:
        - status
        - activity_name
      properties:
        status:
          type: string
          description: Activity status
          enum:
            - SUCCESS
            - FAILURE
            - DECLINED
            - REDO
            - SUBSTATE
            - NOTIFY
            - SUBTASK
        activity_name:
          type: string
          maxLength: 64
          example: activity_v1
          description: Activity name.
      description: >-
        JSON request object that represents a next activity based on current
        activity status.
    OrchestrationTemplateList:
      type: array
      items:
        $ref: '#/components/schemas/OrchestrationTemplateResponse'
      description: List response of orchestration templates.
    OrchestrationPaymentRequest:
      type: object
      required:
        - sender_end_to_end_id
        - sending_address
        - receiving_address
        - amount
        - currency
        - quote_type
        - user_info
      properties:
        sender_end_to_end_id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9@_,:\s-]*$
          description: |
            Unique ID that the sender can specify.

            Persisted on all instances that participate in the payment.
        internal_id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9@_,:\s-]*$
          description: >
            **[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:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9_-]*$
          description: >
            Parameter for the orchestration template name.


            If you don't specify a template name, a default template will be
            picked.
        sending_address:
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^([\.a-zA-Z0-9_~-]+@)?(rn|dev|test|uat)([.][a-zA-Z0-9_~-]+)+$
          description: |
            RippleNet account name and address of the sender.

            **Format**: `accountname@ripplenetaddress`

            **Example**: `new_york@rn.us.ny.new_york`
        receiving_address:
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^([\.a-zA-Z0-9_~-]+@)?(rn|dev|test|uat)([.][a-zA-Z0-9_~-]+)+$
          description: |
            RippleNet account name and address of the receiver.

            **Format**: `accountname@ripplenetaddress`

            **Example**: `new_york@rn.us.ny.new_york`
        amount:
          type: string
          minimum: 1
          description: >
            Amount to be sent or received, depending on the `quote_type`.


            Use this table to determine what `amount` to assign.


            **Example**: `"1"`


            | Quote type | Amount |

            | --- | --- |

            | SENDER_AMOUNT | Amount to be sent by the payment originator |

            | SENDER_INSTITUTION_AMOUNT | Set to `SENDER_INSTITUTION_AMOUNT` to
            calculate the quote based on the amount to be sent, plus any fees
            collected by the sending institution |

            | RECEIVER_AMOUNT | Amount to be received by the payment beneficiary
            |

            | RECEIVER_INSTITUTION_AMOUNT | Set to `RECEIVER_INSTITUTION_AMOUNT`
            to calculate the quote based on the amount to be received, minus any
            fees collected by the receiving institution |
        currency:
          type: string
          minLength: 3
          maxLength: 3
          example: USD
          description: >
            Currency code of the amount to be sent or received, depending on the
            `quote_type`.


            Use this table to determine what `currency` code to assign.


            **Example**: `USD`


            | Quote type | Currency code description |

            | --- | --- |

            | SENDER_AMOUNT | Specify the currency code for the sending
            currency, for example `USD` |

            | SENDER_INSTITUTION_AMOUNT | Specify the currency code for the
            sending currency, for example `USD` |

            | RECEIVER_AMOUNT | Specify the currency code for the receiving
            currency, for example `USD` |

            | RECEIVER_INSTITUTION_AMOUNT | Specify the currency code for the
            receiving currency, for example `USD` |
        quote_type:
          type: string
          example: SENDER_AMOUNT
          description: |
            Specifies how to calculate the quote.

            **Example**: `SENDER_AMOUNT`
          enum:
            - SENDER_AMOUNT
            - RECEIVER_AMOUNT
            - SENDER_INSTITUTION_AMOUNT
            - RECEIVER_INSTITUTION_AMOUNT
          x-enumDescriptions:
            SENDER_AMOUNT: >-
              Quote based on the amount the payment originator or originating
              institution wants to send
            SENDER_INSTITUTION_AMOUNT: >-
              Quote based on the amount (to debit the originator) is `amount`
              plus any fees to be collected by the sending institution
            RECEIVER_AMOUNT: >-
              Quote based on the amount the payment beneficiary or beneficiary
              institution should receive
            RECEIVER_INSTITUTION_AMOUNT: >-
              The amount (to credit the beneficiary) is `amount` minus any fees
              to be collected by the receiving institution
        sender_or_receiver_currency:
          type: string
          minLength: 3
          maxLength: 3
          description: |
            Currency code of the sender or receiver based on `quote_type`.

            If provided, you can use this to filter the options for quotes.

            **Example**: `USD`
          example: USD
        custom_fee:
          type: number
          description: >
            Custom fee for the sending account.


            Setting this field overrides all fees configured on the sender's
            RippleNet instance.
        custom_rate:
          $ref: '#/components/schemas/PaymentCustomRateRequest'
        quote_route:
          type: array
          example:
            - rn.us.ca.san_francisco
            - rn.us.tx.austin
            - rn.us.ny.new_york
          description: >
            Custom route that quote must follow.


            Provide an array of RippleNet address strings that convey the route
            the quote must follow.


            **Example**: `g.us.ca.san_francisco`
          items:
            type: string
        payment_method:
          type: string
          pattern: ^[a-zA-Z0-9@_,:\s-]*$
          minLength: 2
          maxLength: 32
          description: >
            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:
          type: boolean
          example: true
          description: >-
            Enable this flag to generate quotes using payout methods configured
            by the receiver.
        digital_asset_origination:
          type: boolean
          example: false
          description: >
            When true, this flag tells RippleNet to provide a full quote as if
            the payment originates in the specified source fiat currency.


            The quote for the source exchange excludes trading fees.


            On execution, the source exchange trade is skipped, and XRP is
            withdrawn from the source exchange as the first step.
        force_path_finding_and_liquidity_path_finding:
          type: boolean
          example: false
          description: >
            When true, this flag tells RippleNet to ignore cached value for path
            finding and liquidity path finding.


            Force performing new path finding and liquidity path finding.
          default: false
        payout_method_category:
          type: string
          example: BOOK_TRANSFER
          description: Category the payout method will be associated with.
          enum:
            - REAL_TIME_GROSS_SETTLEMENT_SYSTEM
            - REAL_TIME_NET_SETTLEMENT_SYSTEM
            - MASS_NET_PAYMENT_SYSTEM
            - BOOK_TRANSFER
            - CASH_PAYOUT
            - WALLET_PAYMENT
            - OTHER
          x-enumDescriptions:
            REAL_TIME_GROSS_SETTLEMENT_SYSTEM: Real-time gross settlement system
            REAL_TIME_NET_SETTLEMENT_SYSTEM: Real-time net settlement system
            MASS_NET_PAYMENT_SYSTEM: Mass net payment system
            BOOK_TRANSFER: Book transfer
            CASH_PAYOUT: Cash payout
            WALLET_PAYMENT: Wallet payment
            OTHER: Other
        user_info:
          type: object
          properties: {}
          description: Provide one or more arbitrary key/value pairs.
        sender_segregated_account:
          type: string
          example: conct_php_receiver_coins_sender@receiver
          description: >
            RippleNet account name and address of the sender owned account at
            receiver to be used for failure conversion (in case of payment
            failure).


            **Format**: `accountname@ripplenetaddress`


            **Example**: `new_york@rn.us.ny.new_york`
        quote_limit:
          type: integer
          description: >-
            Flag for truncating the total amount of quotes to a maximum amount
            after sorting and filters are applied.
        quote_filter_types:
          type: array
          description: Filter on a type of quote.
          items:
            type: string
            enum:
              - LIQUIDITY_WARNINGS
              - QUOTE_ERRORS
            x-enumDescriptions:
              LIQUIDITY_WARNINGS: Filter for liquidity warnings
              QUOTE_ERRORS: Filter for quote errors
      description: JSON request object that represents an orchestration payment.
    OrchestrationPaymentAcceptRequest:
      type: object
      required:
        - sender_end_to_end_id
        - quote_id
        - user_info
      properties:
        sender_end_to_end_id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9@_,:\s-]*$
          description: |
            Unique ID that the sender can specify.

            Persisted on all instances that participate in the payment.
        internal_id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9@_,:\s-]*$
          description: >-
            Internal ID that the sender can optionally specify. Only visible to
            the sender. Only the sending RippleNet instance stores this ID.
        quote_id:
          type: string
          format: uuid
          example: 5492648d-2132-4e70-9ded-2fc86f22b321
          description: ID of the quote to accept and continue as a payment.
        orchestration_template:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9_-]*$
          description: |
            Parameter for the orchestration template name.

            If you don't provide a template, a default template will be picked.
        user_info:
          type: object
          properties: {}
          description: provide one or more arbitrary key/value pairs.
      description: >-
        JSON request object that represents an orchestration payment accept
        request.
    PaymentCustomRateRequest:
      type: object
      required:
        - base_currency
        - counter_currency
        - rate
        - rate_type
      properties:
        rate:
          type: number
          description: Exchange rate for a base and counter currency.
        base_currency:
          type: string
          minLength: 3
          maxLength: 3
          description: Base currency of the exchange rate.
        counter_currency:
          type: string
          minLength: 3
          maxLength: 3
          description: Counter currency of the exchange rate.
        rate_type:
          type: string
          description: |
            Order type for the exchange rate.

            Valid values are `sell` or `buy`.
      description: Custom rate that the return payment quotes must use.
    OrchestrationPaymentSubmitResponse:
      type: object
      properties:
        sender_end_to_end_id:
          type: string
          example: '00310000015'
          description: Sender end-to-end ID.
      description: JSON response object that represents an orchestration payment query ID.
    OrchestrationPaymentResponse:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          example: 5492648d-2132-4e70-9ded-2fc86f22b321
          description: Unique Identifier of the orchestration payment.
        unique_reference_number:
          type: string
          example: '00310000015'
          description: Unique reference number.
        sender_end_to_end_id:
          type: string
          example: '00310000015'
          description: Sender end-to-end ID.
        payment_type:
          type: string
          description: The payment type for the payment.
          enum:
            - REGULAR
            - RETURN
            - REVERSAL
        connector_role:
          type: string
          description: The connector role for payment.
          enum:
            - SENDING
            - RECEIVING
            - INTERMEDIARY
        payment_id:
          type: string
          example: 26bf269b-1a2b-c3d4-872a-7f18d7dcf9f2
          description: Payment ID for the transaction in RippleNet.
        payment_status:
          type: string
          example: SUCCESS
          description: Status of the payment.
        previous_payment_status:
          type: string
          example: EXECUTED
          description: Previous status of the payment.
        orchestration_template:
          type: string
          example: default_template
          description: Template name used for executing the orchestration payment.
        orchestration_status:
          type: string
          example: RUNNING
          description: Status of the orchestration payment.
        current_activity:
          type: string
          example: get_quote_v1
          description: Current activity which is being executed.
        current_activity_status:
          type: string
          example: SUCCESS
          description: Status of the current activity.
        initial_context:
          type: object
          properties: {}
          description: Initial context for the orchestration payment.
        current_context:
          type: object
          properties: {}
          description: Current context of the orchestration payment.
        error_message:
          type: object
          properties: {}
          description: Error message in case of any error.
        activity_list:
          type: object
          properties: {}
          description: Activity list of the activities executed so far.
        created_at:
          type: string
          format: date-time
          example: '2018-04-06T20:33:35Z'
          description: >-
            Date and time at which the orchestration payment was created, as an
            ISO-8601 timestamp in UTC.
        modified_at:
          type: string
          format: date-time
          example: '2018-04-06T20:33:35Z'
          description: >-
            Date and time at which the orchestration payment was modified, as an
            ISO-8601 timestamp in UTC.
      description: JSON response object that represents an orchestration payment.
    OrchestrationPayments:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/OrchestrationPaymentResponse'
    OrchestrationPaymentReturnRequest:
      type: object
      required:
        - sender_end_to_end_id
        - original_payment_id
      properties:
        sender_end_to_end_id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9@_,:\s-]*$
          description: Unique ID that the sender can specify.
        original_payment_id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9@_,:\s-]*$
          description: Unique ID of the payment that should be returned.
        return_reasons:
          type: object
          description: Provide one or more arbitrary key/value pairs.
          properties: {}
        return_amount_type:
          type: string
          default: TOTAL_RECEIVED
          description: |
            Amount type of the return payment.
          enum:
            - TOTAL_RECEIVED
            - TOTAL_RECEIVED_MINUS_FEES
          x-enumDescriptions:
            TOTAL_RECEIVED: >-
              Indicates that the sender of the return payment will send the
              amount they received
            TOTAL_RECEIVED_MINUS_FEES: >-
              Indicates that the sender of the return payment will send the
              amount they received minus the receiving fees
        custom_fee:
          type: number
          description: >
            Custom fee charged and collected by the sending account.


            Setting this field overrides all applicable fees configured on the
            sender's RippleNet instance.
        custom_rate:
          $ref: '#/components/schemas/PaymentCustomRateRequest'
        force_path_finding_and_liquidity_path_finding:
          type: boolean
          example: false
          description: >
            When true, this flag tells RippleNet to ignore cached value for path
            finding and liquidity path finding.


            Forces performing new path finding and liquidity path finding.
          default: false
        user_info:
          type: object
          properties: {}
          description: Provide one or more arbitrary key/value pairs.
      description: Use this JSON request object to return a payment.
    OrchestrationPaymentReversalRequest:
      type: object
      required:
        - sender_end_to_end_id
        - original_payment_id
        - reversal_reason
      properties:
        sender_end_to_end_id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9@_,:\s-]*$
          description: Unique ID that the sender can specify.
        original_payment_id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9@_,:\s-]*$
          description: Unique ID of the payment that should be reversed.
        reversal_reason:
          $ref: '#/components/schemas/PaymentReversalReasonRos'
      description: Use this JSON request object to reverse a payment.
    Reason:
      type: object
      properties:
        type:
          type: string
          description: Type of reason.
        code:
          type: string
          description: Code for the reason.
        reason:
          type: object
          description: Actual description the reason.
      description: Use this JSON request object for specifying reasons.
    HealthDetails:
      type: object
      required:
        - healthy
      properties:
        healthy:
          type: boolean
          description: >-
            If set to `true`, the ROS component is up and running. If set to
            `false`, the ROS component is down.
        error:
          type: string
          description: Contains the error details of the ROS components.
      description: Contains the details of the ROS components status.
    ErrorResponse:
      type: object
      properties:
        timestamp:
          type: string
          example: '2019-12-27T07:21:50.045000Z'
          description: Timestamp of the request.
        exception:
          type: string
          example: ActivityNotFoundException
          description: Exception name.
        message:
          type: string
          example: Activity not found with name get_quote_v1.
          description: Response message.
        detailedMessage:
          type: string
          example: getActivity.name must match \"^[a-zA-Z0-9_]*$\
          description: Detailed message.
        code:
          type: string
          example: getQuoteV1
          description: Response code.
        status:
          type: string
          example: 404
          description: HTTP response status.
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Reason'
      description: JSON response object that comes in case of any error.
    ActivityStatus:
      type: string
      description: Activity status
      enum:
        - SUCCESS
        - FAILURE
        - DECLINED
        - REDO
        - SUBSTATE
        - NOTIFY
        - PENDING
        - SUBTASK
      example: SUBSTATE
      x-enumDescriptions:
        SUCCESS: Set status to success
        FAILURE: |
          Set status to failure

          Use with the `error` field to provide additional information.
        DECLINED: |
          Set status to declined

          Use with the `error` field to provide additional information.
        REDO: Set status to redo
        SUBSTATE: Set status to substate
        NOTIFY: Set status to notify
        PENDING: Set status to pending
        SUBTASK: Set status to subtask
    ExternalOutQueueMessage:
      type: object
      required:
        - output
      properties:
        sender_end_to_end_id:
          type: string
          description: Set to the sender end-to-end ID associated with the payment.
        payment_id:
          type: string
          description: Payment ID.
        payment_status:
          type: string
          description: RippleNet payment status.
        previous_payment_status:
          type: string
          description: RippleNet previous payment status.
        connector_role:
          type: string
          description: Connector role of the payment SENDING/RECEIVING.
        payment_type:
          type: string
          description: Payment type REGULAR/RETURN.
        payout_method:
          type: string
          description: Payout method.
        original_sender_end_to_end_id:
          type: string
          description: >-
            Original sender end-to-end if the payment is marked as returned;
            otherwise, blank.
        output:
          type: object
          properties: {}
          description: Activity output in JSON fromat.
      description: Payload for external out queue.
    NotificationList:
      type: array
      items:
        $ref: '#/components/schemas/NotificationResponseRos'
      description: List response of external notifications.
    PaymentActionRequest:
      type: object
      required:
        - unique_reference_number
        - status
        - notification_type
      properties:
        unique_reference_number:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9@_,:\s-]*$
          description: Set to the unique reference number associated with the payment.
          example: '310000015'
        status:
          $ref: '#/components/schemas/ActivityStatus'
        notification_type:
          type: string
          minLength: 1
          maxLength: 128
          pattern: ^[a-zA-Z0-9_:]*$
          example: PARTNER_SUBSTATE
          description: >
            Activity context name.


            Use with the `status` parameter to define the action.


            Recommended values:


            | Value | Notification type |

            | --- | --- |

            | CONFIRM_LOCK | Confirm the lock  |

            | CONFIRM_SETTLE | Confirm settlement |

            | CONFIRM_COMPLETE | Confirm completion |

            | PARTNER_SUBSTATE | Notify on partner substate<br/><br/>Use with
            `output.sub_state` to provide additional information. |
        output:
          $ref: '#/components/schemas/ActivityOutput'
        error:
          type: array
          description: >
            Array of one or more activity error objects.


            When `status` is `FAILURE` or `DECLINED`, use this to fail a payment
            or decline a request to lock a payment.


            For all other `status` values, this property can be null.
          items:
            $ref: '#/components/schemas/ActivityError'
          example: 'null'
    ActivityOutput:
      type: object
      description: |
        Use this object when `notification_type` is `PARTNER_SUBSTATE`.

        For all other values of `notification_type`, this property can be null.
      properties:
        sub_state:
          type: string
          minLength: 1
          maxLength: 128
          example: AMENDED
          description: >
            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:
          type: string
          example: Last name must be corrected
          description: >
            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.
        info:
          type: object
          properties: {}
          description: Provide one or more arbitrary key/value pairs.
          example:
            last_name: Gonzales
    PaymentInternalActionRequest:
      type: object
      required:
        - payment_id
        - payment_status
      properties:
        payment_id:
          type: string
          format: uuid
          description: Unique identifier of a payment.
        payment_status:
          $ref: '#/components/schemas/PaymentStatus'
      description: Payload for internal action request.
    ActivityError:
      type: object
      description: Activity error object in JSON format.
      properties:
        type:
          type: string
          description: >-
            For recommended type values, see [Returns and failure
            codes](/products/payments-odl/api-docs/ripplenet/resources/error-codes/returns-and-error-codes/).
        code:
          type: string
          description: >-
            For recommended failure codes, see [Returns and failure
            codes](/products/payments-odl/api-docs/ripplenet/resources/error-codes/returns-and-error-codes/#812-failure-type-codes).
        reason:
          type: string
          description: The reason for the failure or lock decline.
    PaymentStatus:
      type: string
      description: Payment status.
      enum:
        - PENDING
        - QUOTED
        - ACCEPTED
        - LOCKED
        - LOCK_DECLINED
        - PREPARED
        - SETTLEMENT_DECLINED
        - EXECUTED
        - EXPIRED
        - FAILED
        - COMPLETED
        - RETURNED
    PaymentActionResponse:
      type: object
      properties:
        unique_reference_number:
          type: string
          example: '00310000015'
          description: Unique Reference Number.
      description: JSON response object that represents a payment action query ID.
    NotificationUUIDList:
      type: object
      properties:
        uuids:
          type: array
          minItems: 1
          items:
            type: string
            format: uuid
            example: 328b3e50-7983-46d5-94a0-ef004d78db1d
          description: List of orchestration payment notification UUIDs.
      description: >-
        JSON request object that represents a list of orchestration payment
        notification UUIDs to acknolwedge.
    NotificationAckResponse:
      type: object
      properties:
        notification_ack_list:
          type: array
          items:
            $ref: '#/components/schemas/NotificationResponseRos'
          description: >-
            List of responses of acknowledged orchestration payment
            notifications.
        invalid_uuid_list:
          type: array
          items:
            type: string
            format: uuid
            example: 328b3e50-7983-46d5-94a0-ef004d78db1d
            description: Invalid notification UUIDs.
      description: Orchestration payment notification acknoledge response.
    CallbackMessage:
      type: object
      properties:
        msg_id:
          type: string
          format: uuid
          example: 5492648d-2132-4e70-9ded-2fc86f22b321
          description: Message ID of the callback notification.
      description: JSON request object that represents a callback notification.
    InfoResponse:
      type: object
      properties:
        name:
          type: string
          example: Integration Module
          description: Application name.
        version:
          type: string
          example: 1.2.0
          description: Application version.
      description: JSON response object that represents application info.
    TenantRequest:
      type: object
      description: JSON request object that represents a tenant request.
      required:
        - tenant_id
        - xcurrent_url
      properties:
        tenant_id:
          type: string
          example: urn:ripplexcurrent-prod:name
          description: Tenant ID of the tenant.
        callback_enabled:
          type: boolean
          example: false
          default: false
          description: Flag to denote whether callback is enabled for this tenant.
        callback_url:
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^(http[s]?:\/\/)[\w@%.\\+~#=-]{2,256}(:[0-9]{2,5})?(\/[\w-]*)*
          description: >-
            URL to be invoked for callback for this tenant. Mandatory if
            callback_enabled is true.
        xcurrent_client_id:
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^[a-zA-Z0-9@_,.\s-]*$
          description: >-
            Client ID for connecting to RippleNet for this tenant. Mandatory if
            credentials have to be managed locally.
        xcurrent_password:
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^[a-zA-Z0-9@_,.\s-]*$
          description: >-
            Password for connecting to RippleNet for this tenant. Mandatory if
            credentials have to be managed locally.
        xcurrent_connection_timeout:
          type: integer
          default: 10000
          format: int32
          description: >-
            Timeout, in milliseconds, to obtain a connection with RippleNet for
            this tenant.
        xcurrent_socket_timeout:
          type: integer
          default: 60000
          format: int32
          description: >-
            Timeout, in milliseconds, to obtain a response for a RippleNet API
            operation for this tenant.
        xcurrent_url:
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^(http[s]?:\/\/)[\w@%.\\+~#=-]{2,256}(:[0-9]{2,5})?(\/[\w-]*)*
          description: >-
            URL of the RippleNet (RN node) system to which orchestration service
            connects.
    TenantUpdateRequest:
      type: object
      description: JSON request object that represents a tenant update request.
      properties:
        callback_enabled:
          type: boolean
          example: false
          default: false
          description: Flag to denote whether callback is enabled for this tenant.
        callback_url:
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^(http[s]?:\/\/)[\w@%.\\+~#=-]{2,256}(:[0-9]{2,5})?(\/[\w-]*)*
          description: >-
            URL to be invoked for callback for this tenant. Mandatory if
            callback_enabled is true.
        xcurrent_connection_timeout:
          type: integer
          format: int32
          description: >-
            Timeout, in milliseconds, to obtain a connection with RippleNet for
            this tenant.
        xcurrent_socket_timeout:
          type: integer
          format: int32
          description: >-
            Timeout, in milliseconds, to obtain a response for a RippleNet API
            operation for this tenant.
        xcurrent_url:
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^(http[s]?:\/\/)[\w@%.\\+~#=-]{2,256}(:[0-9]{2,5})?(\/[\w-]*)*
          description: >-
            URL of the RippleNet (RN node) system to which orchestration service
            connects.
    TenantResponse:
      type: object
      description: JSON request object that represents a tenant response.
      properties:
        tenant_id:
          type: string
          example: urn:ripplexcurrent-prod:name
          description: Tenant ID of the tenant.
        callback_enabled:
          type: boolean
          example: false
          description: Flag to denote whether callback is enabled for this tenant.
        callback_url:
          type: string
          description: >-
            URL to be invoked for callback for this tenant. Mandatory if
            callback_enabled is true.
        xcurrent_client_id:
          type: string
          description: >-
            Client ID for connecting to RippleNet for this tenant. Mandatory if
            credentials have to be managed locally.
        xcurrent_password:
          type: string
          description: >-
            Password for connecting to RippleNet for this tenant. Mandatory if
            credentials have to be managed locally.
        xcurrent_connection_timeout:
          type: integer
          description: >-
            Timeout, in milliseconds, to obtain a connection with RippleNet for
            this tenant.
        xcurrent_socket_timeout:
          type: integer
          description: >-
            Timeout, in milliseconds, to obtain a response for a RippleNet API
            operation for this tenant.
        xcurrent_url:
          type: string
          description: >-
            URL of the RippleNet (RN node) system to which orchestration service
            connects.
    Tenants:
      allOf:
        - $ref: '#/components/schemas/Page'
        - properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/TenantResponse'
    NotificationResponseRos:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          example: 5492648d-2132-4e70-9ded-2fc86f22b321
          description: Unique Identifier of the orchestration payment notification.
        notification_type:
          type: string
          example: PAYMENT_SUCCESS
          description: Type of the orchestration payment notification.
        notification_version:
          type: string
          example: 1
          description: Version of the orchestration payment notification.
        notification_status:
          type: string
          enum:
            - NEW
            - SENT
            - ACK
          description: Orchestration payment notification status.
        notification_payload:
          type: object
          properties: {}
          description: Orchestration payment notification payload.
        created_at:
          type: string
          format: date-time
          example: '2018-04-06T20:33:35Z'
          description: >-
            Date and time at which the message was created, as an ISO-8601
            timestamp in UTC.
        modified_at:
          type: string
          format: date-time
          example: '2018-04-06T20:33:35Z'
          description: >-
            Date and time at which the message was modified, as an ISO-8601
            timestamp in UTC.
      description: >-
        JSON request object that represents an orchestration payment
        notification.
    PaymentQuoteRequestRos:
      type: object
      required:
        - amount
        - currency
        - quote_type
        - receiving_address
        - sending_address
      properties:
        sending_address:
          type: string
          minLength: 1
          maxLength: 256
          description: >-
            RippleNet account name and address of the sender, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        receiving_address:
          type: string
          minLength: 1
          maxLength: 256
          description: >-
            RippleNet account name and address of the receiver, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        amount:
          type: string
          minimum: 1
          description: >-
            Amount to be sent or received, depending on the `quote_type`. <p>If
            `quote_type` is `SENDER_AMOUNT` or `SENDER_INSTITUTION_AMOUNT`,
            `amount` represents the value to be sent by the payment originator.
            If `quote_type` is `SENDER_INSTITUTION_AMOUNT`, the amount (to debit
            the originator) is `amount` plus any fees to be collected by the
            sending institution.</p> <p>If `quote_type` is `RECEIVER_AMOUNT` or
            `RECEIVER_INSTITUTION_AMOUNT`, `amount` represents the value to be
            received by the payment beneficiary. If `quote_type` is
            `RECEIVER_INSTITUTION_AMOUNT`, the amount (to credit the
            beneficiary) is `amount` minus any fees to be collected by the
            receiving institution.</p>
        currency:
          type: string
          description: >-
            Currency code of the amount to be sent or received, depending on the
            `quote_type` value. If `quote_type` is set to `SENDER_AMOUNT` or
            `SENDER_INSTITUTION_AMOUNT`, this is the currency of the amount to
            be sent. If `quote_type` is set to `RECEIVER_AMOUNT` or
            `RECEIVER_INSTITUTION_AMOUNT`, this is the currency of the amount to
            be received.
        quote_type:
          type: string
          description: >-
            Specifies how to calculate the quote. <p>To create a quote based on
            the amount the payment originator or originating institution wants
            to send, set to `SENDER_AMOUNT` or `SENDER_INSTITUTION_AMOUNT`
            respectively. If `quote_type` is `SENDER_INSTITUTION_AMOUNT`, the
            amount (to debit the originator) is `amount` plus any fees to be
            collected by the sending institution.</p> <p>To create a quote based
            on the amount the payment beneficiary or beneficiary institution
            should receive, set to `RECEIVER_AMOUNT` or
            `RECEIVER_INSTITUTION_AMOUNT` respectively. If `quote_type` is
            `RECEIVER_INSTITUTION_AMOUNT`, the amount (to credit the
            beneficiary) is `amount` minus any fees to be collected by the
            receiving institution.</p>
          enum:
            - SENDER_AMOUNT
            - RECEIVER_AMOUNT
            - SENDER_INSTITUTION_AMOUNT
            - RECEIVER_INSTITUTION_AMOUNT
        sender_or_receiver_currency:
          type: string
          description: |
            Currency code of the sender or receiver based on `quote_type`.

            If provided, you can use this to filter the options for quotes.
          example: USD
        custom_fee:
          type: number
          description: >-
            Custom fee for the sending account. Setting this field overrides all
            fees configured on the sender's RippleNet instance.
        custom_rate:
          $ref: '#/components/schemas/PaymentQuoteCustomRateRequest'
        quote_route:
          type: array
          example:
            - rn.us.ca.san_francisco
            - rn.us.tx.austin
            - rn.us.ny.new_york
          description: >-
            Custom route that quotes must follow. Provide an array of RippleNet
            addresse strings (`g.us.ca.san_francisco`, for example) that convey
            the route the quotes must follow.
          items:
            type: string
        payment_method:
          type: string
          pattern: ^[a-zA-Z0-9@_,:\s-]*$
          minLength: 2
          maxLength: 32
          description: >-
            Senders can use this field to manually define the payout method that
            the receiver should use to deliver the payment to end customer.
            On-Demand Liquidity (ODL) receivers should set
            <code>payment_method</code> to the <code>outlet_id</code> or
            &#34;none&#34; (to keep funds at the destination exchange) when
            paying out to a local rail.<p><b>Caution&#58;</b> The existing quote
            parameter is named <code>payment_method</code> while elsewhere it is
            <code>payout_method</code>.</p>
        enable_quote_per_payout_method:
          type: boolean
          description: >-
            Enable this flag to generate quotes using payout methods configured
            by the receiver.
          example: false
        digital_asset_origination:
          type: boolean
          description: >-
            When true, this flag tells RippleNet to provide a full quote as if
            the payment originates in the specified source fiat currency. The
            quote for the source exchange excludes trading fees. On execution,
            the source exchange trade is skipped, and XRP is withdrawn from the
            source exchange as the first step.
          example: false
        force_path_finding_and_liquidity_path_finding:
          type: boolean
          example: false
          description: >-
            When true, this flag tells RippleNet to ignore cached value for path
            finding and liquidity path finding and perform new path finding and
            liquidity path finding.
          default: false
        payout_method_category:
          type: string
          example: BOOK_TRANSFER
          description: Category the above payout method will be associated with.
          enum:
            - REAL_TIME_GROSS_SETTLEMENT_SYSTEM
            - REAL_TIME_NET_SETTLEMENT_SYSTEM
            - MASS_NET_PAYMENT_SYSTEM
            - BOOK_TRANSFER
            - CASH_PAYOUT
            - WALLET_PAYMENT
            - OTHER
        sender_segregated_account:
          type: string
          example: conct_php_receiver_coins_sender@receiver
          description: >-
            RippleNet account name and address of the sender owned account at
            receiver to be used for failure conversion (in case of payment
            failure) in the format `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        quote_limit:
          type: integer
          description: >-
            Flag for truncating the total amount of quotes to a maximum amount
            after sorting and filters are applied. Optional.
        quote_filter_types:
          type: array
          items:
            type: string
            enum:
              - LIQUIDITY_WARNINGS
              - QUOTE_ERRORS
      description: JSON request object to generate a quote collection.
    QuoteCollectionRos:
      type: object
      required:
        - quote_collection_id
        - quotes
      properties:
        quote_collection_id:
          type: string
          format: uuid
          example: 480e3a6f-3bcd-48cd-9ce9-9d940aa3c9c6
          description: Unique identifier of the quote collection.
        quotes:
          type: array
          items:
            $ref: '#/components/schemas/QuoteRos'
        quote_errors:
          type: array
          items:
            $ref: '#/components/schemas/QuoteError'
      description: >-
        When provided as a response to the [Create Quote Collection][] request,
        provides a JSON object representing quotes for a proposed payment.
        <p>When provided as a response to the [Return Payment][] request,
        provides a JSON object representing quotes for a proposed return
        payment.</p> <p>When provided as a response to the [Get Quote Collection
        by ID][] request, provides the requested quote collection.</p>
      x-docs-model-object:
        object-name: Quote Collection Object
        nested-objects-array:
          - property-name: quotes
            object: quote
            docs-name: Quote Object
            data-type: Array
            has-nested-display: true
    QuotePathRos:
      type: object
      required:
        - source
        - destination
        - source_currency
        - destination_currency
      properties:
        source:
          type: string
          description: >-
            RippleNet account name and address of the source account, in the
            format `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        destination:
          type: string
          description: >-
            RippleNet account name and address of the destination account, in
            the format `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        source_currency:
          type: string
          description: Currency associated with the source account.
        destination_currency:
          type: string
          description: Currency associated with the destination account.
        account_liquidity_relationship_id:
          type: string
          format: uuid
          example: 480e3a6f-3bcd-48cd-9ce9-9d940aa3c9c6
          description: Unique identifier for an account liquidity relationship.
        peer_liquidity_relationship_id:
          type: string
          format: uuid
          example: 480e3a6f-3bcd-48cd-9ce9-9d940aa3c9c6
          description: Unique identifier for a peer liquidity relationship.
      description: Object that describes a liquidity path used to generate a quote.
      x-docs-model-object:
        object-name: Quote Path Object
    QuoteRos:
      type: object
      required:
        - amount
        - created_at
        - currency_code
        - currency_code_filter
        - expires_at
        - liquidity_warning
        - price_guarantee
        - quote_elements
        - quote_id
        - receiver_address
        - sender_address
        - service_type
        - type
      properties:
        quote_id:
          type: string
          format: uuid
          example: 480e3a6f-3bcd-48cd-9ce9-9d940aa3c9c6
          description: Unique identifier for the quote.
        created_at:
          type: string
          format: date-time
          example: '2018-04-06T20:33:35Z'
          description: >-
            Date and time at which the quote was created, as an ISO-8601
            timestamp in UTC.
        expires_at:
          type: string
          format: date-time
          example: '2019-04-06T20:33:35Z'
          description: >-
            Date and time after which the quote and its pricing expire, as an
            ISO-8601 timestamp in UTC. Defaults to 300s/300000ms.
        type:
          type: string
          description: >-
            Indicates how the amount field should be treated for calculating
            quote values. Valid values are `SENDER_AMOUNT`,
            `SENDER_INSTITUTION_AMOUNT`, `RECEIVER_INSTITUTION_AMOUNT`, and
            `RECEIVER_AMOUNT`.
          enum:
            - SENDER_AMOUNT
            - RECEIVER_AMOUNT
            - SENDER_INSTITUTION_AMOUNT
            - RECEIVER_INSTITUTION_AMOUNT
        price_guarantee:
          type: string
          description: >-
            Indicates whether a quote's pricing is `INDICATIVE` or `FIRM`. An
            `INDICATIVE` quote allows for price movements between quote issuance
            and payment execution, such that the quoted amount and delivered
            amount may differ. A `FIRM` quote ensures that the quoted and
            delivered payment amounts are equal. Defaults to `FIRM`.
        sender_address:
          type: string
          example: new_york@rn.us.ny.new_york
          description: >-
            RippleNet account name and address of the sender, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        receiver_address:
          type: string
          example: new_york@rn.us.ny.new_york
          description: >-
            RippleNet account name and address of the receiver, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        amount:
          type: string
          example: '100'
          description: Amount to be sent or received, depending on the `type` value.
        currency_code:
          type: string
          example: USD
          description: Currency code for the `amount` value.
        currency_code_filter:
          type: string
          example: EUR
          description: >-
            Currency code that can be used to filter quotes at the opposite end
            of the quote request. For example, you can filter by this currency
            code to find the receiving currency for a quote with a
            `SENDER_AMOUNT` quote_type. If not sent in the request, this field
            value is set to `null`.
        service_type:
          type: string
          description: Returns `null`.
        quote_elements:
          type: array
          description: >-
            Transfer and exchange elements. A transfer element represents a
            movement of funds between two accounts. An exchange element
            represents the exchange of currencies between two accounts.
          items:
            $ref: '#/components/schemas/QuoteElementRos'
        liquidity_warning:
          type: string
          description: >-
            Triggered when a quote causes an account to go below its
            `minimum_allowed_balance`. Otherwise, this field value is set to
            `null`.
        payment_method:
          type: string
          description: Payment method (payment outlet) to use for this quote.
      description: >-
        JSON response object that represents a quote for a proposed payment or
        return payment.
    QuoteElementRos:
      type: object
      required:
        - quote_element_id
        - quote_element_order
        - quote_element_type
        - receiver_address
        - receiving_amount
        - receiving_fee
        - sender_address
        - sending_amount
        - sending_fee
      properties:
        quote_element_id:
          type: string
          format: uuid
          example: 480e3a6f-3bcd-48cd-9ce9-9d940aa3c9c6
          description: Unique identifier for the quote element.
        quote_element_type:
          type: string
          description: >-
            Type of quote element. Valid values are `EXCHANGE`, `TRANSFER`,
            `EXCHANGE_TRADE`, and `CRYPTO_TRANSFER`. <p><ul> <li>`TRANSFER`
            represents the movement of funds between two accounts.</li>
            <li>`EXCHANGE` represents the exchange of currencies between two
            accounts.</li> <li>`EXCHANGE_TRADE` represents the exchange of fiat
            to digital currency on a digital exchange.</li>
            <li>`CRYPTO_TRANSFER` represents the movement of digital funds
            between two digital exchanges.</li> </ul></p>
          enum:
            - TRANSFER
            - EXCHANGE
            - EXCHANGE_TRADE
            - CRYPTO_TRANSFER
        quote_element_order:
          type: string
          description: >-
            Order of each quote element along the liquidity path. If a quote
            includes five quote elements, each one is enacted according to its
            quote_element_order number to make the proposed payment.
        sender_address:
          type: string
          example: new_york@rn.us.ny.new_york
          description: >-
            RippleNet account name and address of the sender, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        receiver_address:
          type: string
          example: new_york@rn.us.ny.new_york
          description: >-
            RippleNet account name and address of the receiver, in the format
            `accountname@ripplenetaddress`. For example,
            `new_york@rn.us.ny.new_york`.
        sending_amount:
          type: number
          example: 100
          description: Amount the sender is sending.
        receiving_amount:
          type: number
          example: 97
          description: Amount the receiver is receiving.
        sending_fee:
          type: number
          example: 2
          description: >-
            Fees the sender is charging. When `quote_element_type` is set to
            `EXCHANGE`, this field value is always set to `0`.
        receiving_fee:
          type: number
          example: 1
          description: >-
            Fees the receiver is charging. When `quote_element_type` is set to
            `EXCHANGE`, this field value is always set to `0`.
        sending_currency_code:
          type: string
          example: USD
          description: >-
            Currency code of the sending amount. Included in quote elements with
            `quote_element_type` set to `EXCHANGE`.
        receiving_currency_code:
          type: string
          example: INR
          description: >-
            Currency code of the receiving amount. Included in quote elements
            with `quote_element_type` set to `EXCHANGE`.
        fx_rate:
          $ref: '#/components/schemas/FXRate'
        transfer_currency_code:
          type: string
          description: >-
            Currency code of the transfer. Included in quote elements with
            `quote_element_type` set to `TRANSFER`.
      description: >-
        JSON object that provides transfer and exchange elements used to provide
        the quote. A transfer element represents the transfer of currency
        between two accounts. An exchange element represents the exchange of
        currencies between two accounts.
    PaymentReversalReasonRos:
      type: object
      required:
        - code
      properties:
        code:
          type: string
          example: RB001
          description: The code indicating the reason for payment reversal.
          enum:
            - RB001
            - RB002
            - RB003
            - RB004
            - RB005
            - RB008
            - RB009
            - RB010
            - RB011
            - RB012
            - RB013
            - RB017
            - RB018
            - RB023
            - RB024
            - RB026
            - RB027
            - RB028
            - RB029
            - RB030
            - RB031
            - RB032
            - RB033
            - RB034
            - RB035
            - RB036
            - RB037
            - AC01
            - AC03
            - AC04
            - AC06
            - AC08
            - AC09
            - AC11
            - AC12
            - AC13
            - AC14
            - AC15
            - AG01
            - AG02
            - AG03
            - AG05
            - AG06
            - AM02
            - AM03
            - AM04
            - AM11
            - AM13
            - AM14
            - AM15
            - AM21
            - AM22
            - BE01
            - BE04
            - BE05
            - BE06
            - BE07
            - BE08
            - BE09
            - BE10
            - BE11
            - BE12
            - BE13
            - BE14
            - BE15
            - BE16
            - BE17
            - BE18
            - BE19
            - BE20
            - BE21
            - BE22
            - CERI
            - CH11
            - CH12
            - CH13
            - CH14
            - CH21
            - CNOR
            - CUST
            - DS24
            - DU05
            - DUPL
            - ED06
            - FF03
            - FF04
            - FF05
            - FF06
            - FF07
            - FF08
            - FF10
            - MD06
            - MD07
            - MS02
            - MS03
            - NARR
            - RC01
            - RC02
            - RC04
            - RC05
            - RC07
            - RC08
            - RC10
            - RC12
            - RF01
            - RR01
            - RR02
            - RR03
            - RR04
            - RR05
            - RR06
            - RR07
            - RR10
            - SL03
          x-enumDescriptions:
            RB001: >-
              The account number structure is valid but the account number does
              not correspond to the individual identified in the payment. <br
              /><br />This error typically occurs because the Originator
              specified the Beneficiary's account number incorrectly while
              initiating the payment.<br/><br/><b>Error handling</b><br/>The
              Sending Member may introduce prompts in the user interface during
              payment initiation to ensure that the Originator validates the
              Beneficiary's account number.
            RB002: >-
              The Sender has requested Receiver for return of the payment.<br
              /><br />This error typically occurs in business scenarios where
              the Originator contacts the Sending Member to indicate that they
              (the Originator) provided incorrect account
              information.<br/><br/><b>Error handling</b><br/>The Sending Member
              must contact the Receiving Member and obtain agreement that the
              payment should be returned. After obtaining agreement, the
              Receiving Member can initiate the return of the payment.
            RB003: >-
              The funds for the payment have not been collected by the
              Beneficiary within the set period.<br/><br/><b>Error
              handling</b><br/>The Originator must inform the Beneficiary that
              they should collect the funds within the prescribed time frame.
              <br /><br />The Receiving Member may also contact the Beneficiary
              to inform them of pending or uncollected funds. <br />Further, the
              Receiving Member must ensure that the Sending Member includes the
              Beneficiary's contact information in the RippleNet Payment Object.
            RB004: >-
              Beneficiary's account is frozen due to specific action taken by
              the Receiver or by legal action. <br /><br /> This error typically
              occurs when the Beneficiary's bank has frozen the account due to
              suspected misuse, or on the Beneficiary's
              request.<br/><br/><b>Error handling</b><br/>The Originator may
              contact the Beneficiary for alternative account information or to
              agree on an alternative payment mechanism.
            RB005: >-
              The Receiver has returned the payment due to one of the following
              reasons: <br /><br /><ul><li>The exact amount required has not
              been remitted. </li><li>Acceptance of the transaction results in
              an overpayment.</li></ul><br/><br/><b>Error handling</b><br/>In
              case of a technical or human error, the Sending Member or the
              Originator must adapt their internal RippleNet payment initiation
              process to ensure they do not transfer the incorrect amount. <br
              /><br />The Beneficiary may contact the Originator and ask them to
              initiate a payment for the exact amount.
            RB008: >-
              Invalid account title or name prefix. <br /><br />This error
              typically occurs when the Beneficiary's title or name specified in
              the payment does not match the information associated with their
              account.<br/><br/><b>Error handling</b><br/>In case of a technical
              or human error, the Sending Member or the Originator must adapt
              their internal RippleNet payment initiation process to ensure they
              do not provide the incorrect Beneficiary title or name. <br /><br
              />If the Beneficiary provided incorrect information, the
              Originator may contact the Beneficiary to obtain the correct
              information.
            RB009: >-
              Beneficiary's account is dormant. <br /><br />This error typically
              occurs because the Beneficiary's Bank has marked the account as
              dormant due to a lack of activity or financial transactions on the
              account.<br/><br/><b>Error handling</b><br/>The Originator may
              contact the Beneficiary for alternative account information or to
              agree upon a different payment mechanism.
            RB010: >-
              The minimum amount required has not been remitted. <br /><br
              />This error typically occurs because the Originator has initiated
              payment for an amount that is lower than the intended amount that
              they previously agreed upon with the
              Beneficiary.<br/><br/><b>Error handling</b><br/>In case of
              technical or human error, the Sending Member or the Originator
              must adapt their internal RippleNet payment initiation process to
              ensure they do not specify incorrect amounts.
            RB011: >-
              The account is subject to litigation. <br /><br />This error
              typically occurs because the Beneficiary's Bank has frozen the
              account due to legal reasons, or under suspicion of misuse, or on
              the Beneficiary's request.<br/><br/><b>Error handling</b><br/>The
              Originator may contact the Beneficiary for alternative account
              information or to agree upon a different payment mechanism.
            RB012: >-
              The Originator is not known to the Recipient or
              Beneficiary.<br/><br/><b>Error handling</b><br/>In case of
              technical or human error, the Sending Member or the Originator
              must adapt their internal RippleNet payment initiation process to
              ensure they do not initiate payments to unknown or unintended
              Beneficiary accounts.
            RB013: >-
              The Receiver has not authorized this credit entry to the
              Beneficiary's account. <br /><br />This error typically occurs
              because the Beneficiary's Bank has blocked the account due to
              legal reasons.<br/><br/><b>Error handling</b><br/>The Originator
              may contact the Beneficiary for alternative account information or
              to agree upon a different payment mechanism.
            RB017: >-
              Government or National ID of the individual identified in the
              payment is not mapped to the account number. <br /><br />This
              error typically occurs when the payment cannot be booked to the
              Beneficiary's account because their Government or National ID is
              not linked with their account.<br/><br/><b>Error
              handling</b><br/>The Originator may contact the Beneficiary to
              agree upon a different payment mechanism.
            RB018: Customer insolvent or other reason.
            RB023: >-
              Beneficiary account name does not match Beneficiary account
              number.<br/><br/><b>Error handling</b><br/>In case of technical or
              human error, the Sending Member or the Originator must adapt their
              internal RippleNet payment initiation process to ensure they do
              not specify incorrect Beneficiary name.<br /><br /> If the account
              name was invalid, the Originator may contact the Beneficiary for
              correct information.
            RB024: >-
              Account is not in currency quoted.<br/><br/><b>Error
              handling</b><br/>In case of technical or human error, the Sending
              Member or the Originator must adapt their internal RippleNet
              payment initiation process to ensure they do not specify incorrect
              account currency information.<br /><br /> The Originator may
              request the Beneficiary to provide accurate information about
              their account currency.
            RB026: >-
              Beneficiary account number closed.<br/><br/><b>Error
              handling</b><br/>The Originator may contact the Beneficiary for
              alternative account information.
            RB027: >-
              Beneficiary does not support or accept this message or payment
              type.<br/><br/><b>Error handling</b><br/>In case of technical or
              human error, the Sending Member or the Originator must adapt their
              internal RippleNet payment initiation process to ensure they do
              not specify the wrong payment type.<br /><br />The Beneficiary may
              request the Originator to re-initiate the payment with a supported
              payment type.
            RB028: >-
              Payment was not processed as Receiver is unavailable or offline.
              <br /><br />This error typically occurs when the RippleNet
              connection to and from the Receiving Member or Intermediary Bank
              is unavailable due to network issues.<br/><br/><b>Error
              handling</b><br/>The Sending Member may request the Originator to
              reissue the RippleNet payment at a later time.
            RB029: >-
              Invalid payment type. The payment type used is not allowed or
              enabled for this Bank.<br/><br/><b>Error handling</b><br/>In case
              of technical or human error, the Sending Member or the Originator
              must adapt their internal RippleNet payment initiation process to
              ensure they do not specify the wrong payment type.<br /><br />The
              Beneficiary may request the Originator to re-initiate the payment
              with a valid payment type.
            RB030: >-
              Card is blocked, or lost, or hotlisted. <br /><br /> This error
              typically occurs if the Beneficiary Bank has blocked the card
              account due to reported theft or other legal
              issues.<br/><br/><b>Error handling</b><br/>The Originator may
              contact the Beneficiary for alternative account details.
            RB031: >-
              Card is expired.<br/><br/><b>Error handling</b><br/>The Originator
              may contact the Beneficiary for alternative account details.
            RB032: >-
              Invalid card number. <br /><br />This error typically occurs
              either because the Originator entered an invalid card number while
              initiating the payment, or because the Beneficiary provided an
              invalid card number to the Originator.<br/><br/><b>Error
              handling</b><br/>In case of a technical or human error, the
              Sending Member or the Originator must adapt their internal
              RippleNet payment initiation process to ensure they do not supply
              an invalid or incomplete card number. <br /><br />If the
              Beneficiary provided an incorrect card number, the Originator may
              contact the Beneficiary for the correct number.
            RB033: >-
              Transactions to the card are restricted. <br /><br /> This error
              typically occurs because the Beneficiary Bank has restricted
              financial transactions on the card due to legal reasons or reports
              of fraudulent usage.<br/><br/><b>Error handling</b><br/>The
              Originator may request the Beneficiary to provide alternative
              account information.
            RB034: >-
              Beneficiary has exceeded the number of transactions allowed for a
              set time period. <br /><br /> This error typically occurs due to
              failed velocity or fraud checks conducted by the Receiving Member.
            RB035: >-
              Beneficiary has exceeded the cumulative transaction amount allowed
              for a set time period. <br /><br /> This error typically occurs
              due to failed velocity or fraud checks conducted by the Receiving
              Member.<br/><br/><b>Error handling</b><br/>N/A
            RB036: >-
              Originator has exceeded the number of transactions allowed for a
              set time period. <br /><br /> This error typically occurs due to
              failed velocity or fraud checks conducted by the Receiving
              Member.<br/><br/><b>Error handling</b><br/>N/A
            RB037: >-
              Originator has exceeded the cumulative transaction amount allowed
              for a set time period. <br /><br /> This error typically occurs
              due to failed velocity or fraud checks conducted by the Receiving
              Member.<br/><br/><b>Error handling</b><br/>N/A
            AC01: Account number is invalid or missing.
            AC03: >-
              Creditor account number invalid or missing.<br/><br/><b>Error
              handling</b><br/>If the account number or IBAN is invalid, the
              Sending Member may repair the transaction by specifying a valid
              Creditor account number.<br /><br />If the account number is
              missing from the payment message, the Originator may reissue the
              payment with the Creditor account number or IBAN included.
            AC04: >-
              Account number specified has been closed on the Receiver's
              books.<br />The Beneficiary may have closed their account since
              the last time the Originator made a payment transfer to this
              Beneficiary.<br/><br/><b>Error handling</b><br/>The Originator may
              contact the Beneficiary for their new account number.
            AC06: >-
              Account specified is blocked, prohibiting posting of transactions
              against it. <br />The Account Servicer may have frozen the account
              for legal reasons, or on the Beneficiary's
              request.<br/><br/><b>Error handling</b><br/>The Originator may
              contact the Beneficiary for alternative account details.
            AC08: >-
              Branch code is invalid or missing.<br/><br/><b>Error
              handling</b><br/>If the branch code is invalid, the Sending Member
              may repair the transaction by specifying the complete branch
              code.<br /><br />If the branch code is missing, the Originator may
              reissue the payment with the correct branch code included.
            AC09: >-
              Account currency is invalid or missing.<br /> This error is likely
              caused by a technical or human error. This error may also occur if
              the Beneficiary provided incorrect information to the
              Originator.<br/><br/><b>Error handling</b><br/>In case of a
              technical or human error, the Sending Member or the Originator
              must adapt their internal RippleNet payment initiation process to
              ensure they do not specify invalid account currency information.
              <br /><br />If the Beneficiary provided incorrect account
              information, the Originator may contact the Beneficiary for
              accurate information.
            AC11: >-
              Creditor account currency is invalid or missing.<br/><br/><b>Error
              handling</b><br/>If the account currency information is invalid,
              the Sending Member may repair the transaction by specifying a
              valid Beneficiary account currency.<br /><br /> If the account
              currency information is missing, the Originator may reissue the
              payment with the Beneficiary account currency specified.
            AC12: >-
              Account type missing or invalid. Generic usage if cannot specify
              between group and payment information levels.
            AC13: >-
              Debtor account type missing or invalid.<br/><br/><b>Error
              handling</b><br/>If the account type information is invalid, the
              Sending Member may repair the transaction by specifying the
              correct Originator account type.<br /><br /> If the account type
              information is missing, the Originator may reissue the payment
              with the Originator account type specified.
            AC14: >-
              Creditor account type missing or invalid.<br/><br/><b>Error
              handling</b><br/>If the account type information is invalid, the
              Sending Member may repair the transaction by specifying the
              correct Beneficiary account type.<br /><br /> If the account type
              information is missing, the Originator may reissue the payment
              with the Beneficiary account type specified.
            AC15: The account details for the counterparty have changed.
            AG01: >-
              Transaction forbidden on this type of account (formerly
              NoAgreement).<br/><br/><b>Error handling</b><br/>The Originator
              may contact the Beneficiary for details of an alternative account
              that can receive the transaction.
            AG02: >-
              Bank Operation code specified in the message is not valid for
              receiver.<br/><br/><b>Error handling</b><br/>If the bank code
              information is invalid, the Sending Member may repair the
              transaction by specifying the correct code.<br /><br /> If the
              bank code information is missing, the Originator may reissue the
              payment with the bank code specified.
            AG03: >-
              Transaction type not supported/authorized on this
              account.<br/><br/><b>Error handling</b><br/>The Originator may
              contact the Beneficiary to agree on a different payment
              instrument.
            AG05: >-
              Debtor agent country code is missing or invalid.<br/><br/><b>Error
              handling</b><br/>If the country code information is invalid, the
              Sending Member may repair the transaction by specifying the
              correct Sender Agent country code.<br /><br /> If the country code
              information is missing, the Originator may reissue the payment
              with the Sender Agent country code specified.
            AG06: >-
              Creditor agent country code is missing or
              invalid.<br/><br/><b>Error handling</b><br/>If the country code
              information is invalid, the Sending Member may repair the
              transaction by specifying the correct Beneficiary Agent country
              code.<br /><br /> If the country code information is missing, the
              Originator may reissue the payment with the Beneficiary Agent
              country code specified.
            AM02: >-
              Specific transaction/message amount is greater than allowed
              maximum.<br/><br/><b>Error handling</b><br/>The Sending Member or
              the Originator must adapt their internal RippleNet payment
              initiation process to ensure they do not transfer incorrect
              amounts.
            AM03: >-
              Specified message amount is a non-processable currency outside of
              existing agreement.<br/><br/><b>Error handling</b><br/>The Sending
              Member or the Originator must adapt their internal RippleNet
              payment initiation process to ensure they do not initiate payments
              in unsupported currency.
            AM04: >-
              Amount of funds available to cover specified message amount is
              insufficient. <br /><br />This error may occur due to the
              following reasons:<ul><li>The Originator's account does not have
              sufficient funds to debit the full amount of the
              payment.</li><li>There are insufficient funds in the
              Sending/Originating Bank's nostro settlement account at the Local
              Clearing/Receiver/Beneficiary bank to process the payment.
              </li></ul><br/><br/><b>Error handling</b><br/>If the Originator's
              account previously had insufficient funds, the Sending Member may
              reissue the payment after the Originator ensures that their
              account contains the funds required to process the payment.<br
              /><br />If the Sending/Originating Bank's nostro settlement
              account previously had insufficient funds, they can reissue the
              payment after ensuring that their settlement account contains
              sufficient funds to process the payment.
            AM11: Transaction currency information is invalid or missing.
            AM13: >-
              Transaction amount exceeds limits set by clearing
              system.<br/><br/><b>Error handling</b><br/>The Sending Member or
              the Originator must adapt their internal RippleNet payment
              initiation process to ensure they do not transfer incorrect
              amounts.
            AM14: >-
              Transaction amount exceeds limits agreed between bank and
              client.<br/><br/><b>Error handling</b><br/>The Beneficiary may
              request the Originator to initiate a payment whose transaction
              amount is within the agreed limits. Further, the Sending Member or
              the Originator must adapt their internal RippleNet payment
              initiation process to ensure they do not transfer incorrect
              amounts.
            AM15: >-
              Transaction amount below minimum set by clearing
              system.<br/><br/><b>Error handling</b><br/>The Beneficiary may
              request the Originator to initiate a payment whose transaction
              amount is within the agreed limits. Further, the Sending Member or
              the Originator must adapt their internal RippleNet payment
              initiation process to ensure they do not transfer incorrect
              amounts.
            AM21: Transaction amount exceeds limits agreed between bank and client.
            AM22: >-
              Unable to apply zero amount to designated account. For example,
              where the rules of a service allow the use of zero amount
              payments, however the back-office system is unable to apply the
              funds to the account. If the rules of a service prohibit the use
              of zero amount payments, then code AM01 is used to report the
              error condition.
            BE01: >-
              Identification of end customer is not consistent with associated
              account number (formerly CreditorConsistency). <br />This error
              typically occurs because the Originator entered an incorrect
              Beneficiary account number while initiating the
              payment.<br/><br/><b>Error handling</b><br/>The Sending Member may
              introduce additional prompts in the user interface during payment
              initiation to ensure that the Originator verifies the
              Beneficiary's account number.
            BE04: >-
              Specification of creditor's address, which is required for
              payment, is missing/not correct (formerly
              IncorrectCreditorAddress).<br/><br/><b>Error handling</b><br/>If
              the Beneficiary address is invalid, the Sending Member may repair
              the transaction by providing the correct Beneficiary address. <br
              /><br />If the Beneficiary address is missing, the Originator may
              reissue the payment with the Beneficiary address specified.
            BE05: >-
              Party who initiated the message is not recognized by the end
              customer.
            BE06: >-
              End customer specified is not known at associated Sort/National
              Bank Code or does no longer exist in the books.
            BE07: >-
              Specification of debtor's address, which is required for payment,
              is missing/not correct.<br/><br/><b>Error handling</b><br/>If the
              Originator's address is invalid, the Sending Member may repair the
              transaction by providing the correct Originator address. <br /><br
              /> If the Originator's address is missing, the Originator may
              reissue the payment with their address specified.
            BE08: >-
              Debtor name is missing.<br/><br/><b>Error handling</b><br/>If the
              Originator's name is invalid, the Sending Member may repair the
              transaction by providing the correct Originator name. <br /><br />
              If the Originator's name is missing, the Originator may reissue
              the payment with their name specified.
            BE09: >-
              Country code is missing or Invalid. Generic usage if cannot
              specifically identify debtor or creditor.
            BE10: >-
              Debtor country code is missing or invalid.<br/><br/><b>Error
              handling</b><br/>If the Originator's country code is invalid, the
              Sending Member may repair the transaction by providing the correct
              Originator country code. <br /><br /> If the Originator's country
              code is missing, the Originator may reissue the payment with the
              country code specified.
            BE11: >-
              Creditor country code is missing or invalid.<br/><br/><b>Error
              handling</b><br/>If the Beneficiary's country code is invalid, the
              Sending Member may repair the transaction by providing the correct
              Beneficiary country code. <br /><br /> If the Beneficiary's
              country code is missing, the Originator may reissue the payment
              with the Beneficiary country code specified.
            BE12: >-
              Country code of residence is missing or Invalid. This generic
              error code should be used only if the relevant party is not
              clearly identifiable or specified.
            BE13: >-
              Country code of debtor's residence is missing or
              Invalid.<br/><br/><b>Error handling</b><br/>If the country code
              for Originator's country of residence is invalid, the Sending
              Member may repair the transaction by providing the correct country
              code.<br /><br /> If the country code for Originator's country of
              residence is missing, the Originator may reissue the payment with
              the country code specified.
            BE14: >-
              Country code of creditor's residence is missing or
              Invalid.<br/><br/><b>Error handling</b><br/>If the country code
              for Beneficiary's country of residence is invalid, the Sending
              Member may repair the transaction by providing the correct country
              code.<br /><br /> If the country code for Beneficiary's country of
              residence is missing, the Originator may reissue the payment with
              the Beneficiary country code specified.
            BE15: >-
              Identification code missing or invalid. Generic usage if cannot
              specifically identify debtor or creditor.
            BE16: >-
              Debtor or Ultimate Debtor identification code missing or
              invalid.<br/><br/><b>Error handling</b><br/>If the Originator's
              identification code is invalid, the Sending Member may repair the
              transaction by providing the correct identification code. <br
              /><br />If the Originator's identification code is missing, the
              Originator may reissue the payment with the identification code
              specified.
            BE17: >-
              Creditor or Ultimate Creditor identification code missing or
              invalid.<br/><br/><b>Error handling</b><br/>If the Beneficiary's
              identification code is invalid, the Sending Member may repair the
              transaction by providing the correct identification code. <br
              /><br />If the Beneficiary's identification code is missing, the
              Originator may reissue the payment with the Beneficiary
              identification code specified.
            BE18: >-
              Contact details missing or invalid.<br/><br/><b>Error
              handling</b><br/>If the contact details are invalid, the Sending
              Member may repair the transaction by providing the correct contact
              details.<br /><br /> If the contact details are missing, the
              Originator may reissue the payment with the contact details
              specified.
            BE19: >-
              Charge bearer code for transaction type is
              invalid.<br/><br/><b>Error handling</b><br/>If the charge bearer
              code is invalid, the Sending Member may repair the transaction by
              providing the correct charge bearer code.<br /><br /> If the
              charge bearer code is missing, the Originator may reissue the
              payment with the charge bearer code specified.
            BE20: Name length exceeds local rules for payment type.
            BE21: >-
              Name missing or invalid. Generic usage if cannot specifically
              identify debtor or creditor.
            BE22: >-
              Creditor name is missing.<br/><br/><b>Error handling</b><br/>If
              the Beneficiary's name is invalid, the Sending Member may repair
              the transaction by providing the correct Beneficiary name. <br
              /><br />If the Beneficiary's name is missing, the Originator may
              reissue the payment with the Beneficiary's name specified.
            CERI: >-
              Credit transfer is not tagged as an Extended Remittance
              Information (ERI) transaction but contains ERI.
            CH11: Value in Creditor Identifier is incorrect.
            CH12: Creditor Identifier is ambiguous at Transaction Level.
            CH13: Original Debtor Account is not to be used.
            CH14: Original Debtor Agent is not to be used.
            CH21: Mandatory element is missing.
            CNOR: Creditor bank is not registered under this BIC in the CSM.
            CUST: Cancellation requested by the Debtor.
            DS24: >-
              Waiting time expired due to incomplete order.<br/><br/><b>Error
              handling</b><br/>The Originator may contact the Beneficiary and
              ask them to take the actions necessary to receive funds. <br /><br
              />If the payment is resubmitted, a new reference ID must be used.
            DU05: >-
              Instruction ID is not unique. <br /><br />This error typically
              occurs when the Sending Member submits a transaction with an
              Instruction ID that matches a previous transaction's Instruction
              ID.<br/><br/><b>Error handling</b><br/>The Sending Member must
              resubmit the transaction with a unique Instruction ID. <br /><br
              />The following measures may also be considered:<ul><li>Sending
              and Receiving Members agree on the criteria to identify duplicate
              payments, and the window within which Intermediaries or Receiving
              Members will check for duplicate payments.</li><li>The Sending
              Member may implement checks to avoid submitting duplicate
              payments.</li><li>If a duplicate payment occurs, the Sending
              Member may resubmit the payment with new reference information
              within the duplication window. If the window expires, the Sending
              Member may initiate a new payment.</li></ul>
            DUPL: >-
              Payment is a duplicate of another payment. <br /><br />This error
              typically occurs when the Sending Member submits a transaction
              with reference information that matches a previous transaction's
              reference information.<br/><br/><b>Error handling</b><br/>The
              Sending Member must resubmit the transaction with unique reference
              information. <br /><br />The following measures may also be
              considered:<ul><li>Sending and Receiving Members agree on the
              criteria to identify duplicate payments, and the window within
              which Intermediaries or Receiving Members will check for duplicate
              payments.</li><li>The Sending Member may implement checks to avoid
              submitting duplicate payments.</li><li>If a duplicate payment
              occurs, the Sending Member may resubmit the payment with new
              reference information within the duplication window. If the window
              expires, the Sending Member may initiate a new payment.</li></ul>
            ED06: >-
              Interbank settlement system not available. <br /><br />This error
              typically occurs when the connecting infrastructure of the local
              clearing rail at the Receiving Member is unavailable to process or
              transmit any payment messages.<br/><br/><b>Error
              handling</b><br/>The Sending Member may recommend that the
              Originator reissue the RippleNet payment at a later time.<br /><br
              />The Originator may contact the Beneficiary to determine an
              alternative solution to make the payment.
            FF03: >-
              Payment Type Information is missing or invalid. This generic error
              code should be used only if Service Level or Local Instrument code
              are not specified.<br/><br/><b>Error handling</b><br/>If the
              payment type information is invalid, the Sending Member may repair
              the transaction by providing the correct payment type
              information.<br /><br />If the payment type information is
              missing, the Originator may reissue the payment with the payment
              type information specified.
            FF04: >-
              Service Level code is missing or invalid.<br/><br/><b>Error
              handling</b><br/>If the service level code is invalid, the Sending
              Member may repair the transaction by providing the correct
              code.<br /><br />If the service level code is missing, the
              Originator may reissue the payment with the code specified.
            FF05: >-
              Local Instrument code is missing or invalid.<br/><br/><b>Error
              handling</b><br/>If the local instrument code is invalid, the
              Sending Member may repair the transaction by providing the correct
              code.<br /><br />If the local instrument code is missing, the
              Originator may reissue the payment with the code specified.
            FF06: >-
              Category Purpose code is missing or invalid.<br/><br/><b>Error
              handling</b><br/>If the category purpose code is invalid, the
              Sending Member may repair the transaction by providing the correct
              code.<br /><br />If the category purpose code is missing, the
              Originator may reissue the payment with the code specified.
            FF07: >-
              Purpose of payment is missing or invalid.<br/><br/><b>Error
              handling</b><br/>If the purpose of payment information is invalid,
              the Sending Member may repair the transaction by providing the
              correct information.<br /><br />If the purpose of payment
              information is missing, the Originator may reissue the payment
              with the purpose of payment specified.
            FF08: >-
              End to End Id missing or invalid.<br/><br/><b>Error
              handling</b><br/>If the end-to-end ID is invalid, the Sending
              Member may repair the transaction by providing the correct ID. <br
              /><br /> If the end-to-end ID is missing, the Originator may
              reissue the payment with the ID specified.
            FF10: >-
              File or transaction cannot be processed due to technical issues at
              the bank side.<br/><br/><b>Error handling</b><br/>The Sending
              Member may recommend that the Originator reissue the RippleNet
              payment at a later time.<br /><br />The Originator may contact the
              Beneficiary to determine an alternative solution to make the
              payment.
            MD06: Return of funds requested by end customer.
            MD07: End customer is deceased.
            MS02: Reason has not been specified by end customer.
            MS03: Reason has not been specified by agent.
            NARR: >-
              Reason is provided as narrative information in the additional
              reason information.
            RC01: >-
              Bank identifier code specified in the message has an incorrect
              format (formerly IncorrectFormatForRoutingCode).
            RC02: >-
              Bank identifier is invalid or missing. Generic usage if cannot
              specify between debit or credit account.
            RC04: >-
              Creditor bank identifier is invalid or missing.<br/><br/><b>Error
              handling</b><br/>If the Creditor Bank identifier is invalid, the
              Sending Member may repair the transaction by providing the correct
              identifier. <br /><br />If the Creditor Bank identifier is
              missing, the Originator may reissue the payment with the
              identifier specified.
            RC05: >-
              BIC identifier is invalid or missing. This generic error code
              should be used only if the relevant party is not clearly
              identifiable or specified.<br/><br/><b>Error handling</b><br/>If
              the BIC is invalid, the Sending Member may repair the transaction
              by providing the correct identifier. <br /><br />If the BIC is
              missing, the Originator may reissue the payment with the BIC
              identifier specified.
            RC07: >-
              Creditor BIC identifier is invalid or missing.<br/><br/><b>Error
              handling</b><br/>If the Beneficiary's BIC identifier is invalid,
              the Sending Member may repair the transaction by providing the
              correct BIC identifier.<br /><br /> If the Beneficiary's BIC
              identifier is missing, the Originator may reissue the payment with
              the BIC identifier specified.
            RC08: >-
              ClearingSystemMember identifier is invalid or missing. Generic
              usage if cannot specify between debit or credit account.
            RC10: >-
              Creditor ClearingSystemMember identifier is invalid or
              missing.<br/><br/><b>Error handling</b><br/>If the Beneficiary's
              ClearingSystemMember identifier is invalid, the Sending Member may
              repair the transaction by providing the correct identifier.<br
              /><br /> If the Beneficiary's ClearingSystemMember identifier is
              missing, the Originator may reissue the payment with the
              identifier specified.
            RC12: Creditor Scheme Id is invalid or missing.
            RF01: Transaction reference is not unique within the message.
            RR01: >-
              Specification of the debtor's account or unique identification
              needed for reasons of regulatory requirements is insufficient or
              missing.
            RR02: >-
              Specification of the debtor's name and/or address needed for
              regulatory requirements is insufficient or missing.
            RR03: >-
              Specification of the creditor's name and/or address needed for
              regulatory requirements is insufficient or
              missing.<br/><br/><b>Error handling</b><br/>If the Beneficiary's
              name and/or address information is invalid, the Sending Member may
              repair the transaction by providing the correct information.<br
              /><br /> If the Beneficiary's name and/or address information is
              missing, the Originator may reissue the payment with the
              Beneficiary's information specified.
            RR04: >-
              Regulatory Reason. This error typically occurs when there is a
              restriction due to Anti-Money Laundering (AML), embargo, or
              compliance reasons.<br/><br/><b>Error handling</b><br/>The
              Originator may contact the Sending Member to enquire about the
              reasons for the error and take remedial action as they see fit.
            RR05: >-
              Regulatory or Central Bank Reporting information missing,
              incomplete or invalid.<br/><br/><b>Error handling</b><br/>In case
              of a technical or human error, the Sending Member or the
              Originator must adapt their internal RippleNet payment initiation
              process to ensure they do not supply invalid or incomplete
              information. <br /><br />If the Beneficiary provided incorrect
              information, the Originator may contact the Beneficiary for
              accurate information.
            RR06: Tax information missing, incomplete or invalid.
            RR07: >-
              Remittance information structure does not comply with rules for
              payment type.
            RR10: >-
              Character set supplied not valid for the country and payment
              type.<br/><br/><b>Error handling</b><br/>In case of a technical or
              human error, the Sending Member or the Originator must adapt their
              internal RippleNet payment initiation process to ensure they do
              not supply an invalid character set. <br /><br />If the
              Beneficiary provided incorrect information, the Originator may
              contact the Beneficiary for accurate information.
            SL03: Due to a specific service offered by the clearing system.
        description:
          type: string
          example: No account / Unable to locate account
          description: User-defined string describing the reason for payment reversal.
      description: A structured object detailing reasons for a payment reversal.
    HealthRos:
      type: object
      required:
        - healthy
      properties:
        healthy:
          type: boolean
          description: >-
            If set to `true`, the ROS server is up and running. If set to
            `false`, the ROS server is down.
        details:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/HealthDetails'
          description: Contains the details of the ros components status.
      description: Provides a high-level status of the health of the ROS server.
    PageRos:
      type: object
      properties:
        first:
          type: boolean
          description: true if  this is the first page.
        last:
          type: boolean
          description: true if  this is the last page.
        number:
          type: integer
          description: Page number.
        numberOfElements:
          type: integer
          description: Number Of elements in this request.
        size:
          type: integer
          description: Page size.
        totalElements:
          type: integer
          description: Total number of elements for the given request.
          format: int64
        totalPages:
          type: integer
          description: Total number of pages for the given request.
      description: Paginated response base object.
