Modern Treasury PaymentOrder API

The PaymentOrder API from Modern Treasury — 4 operation(s) for paymentorder.

OpenAPI Specification

modern-treasury-paymentorder-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Modern Treasury AccountCapability PaymentOrder API
  version: v1
  contact:
    name: Modern Treasury Engineering Team
    url: https://moderntreasury.com
  description: The Modern Treasury REST API. Please see https://docs.moderntreasury.com for more details.
servers:
- url: http://localhost:3000
- url: https://app.moderntreasury.com
tags:
- name: PaymentOrder
paths:
  /api/invoices/{id}/payment_orders/{payment_order_id}:
    parameters:
    - name: id
      in: path
      description: id
      required: true
      schema:
        type: string
    - name: payment_order_id
      in: path
      description: payment_order_id
      required: true
      schema:
        type: string
    put:
      summary: add payment_order_id to invoice
      tags:
      - PaymentOrder
      operationId: addPaymentOrderToInvoice
      description: Add a payment order to an invoice.
      security:
      - basic_auth: []
      responses:
        '200':
          description: successful
        '404':
          description: not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
        '422':
          description: not unsuccessful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
  /api/payment_orders/create_async:
    post:
      summary: create async payment order
      tags:
      - PaymentOrder
      description: Create a new payment order asynchronously
      operationId: createAsyncPaymentOrder
      security:
      - basic_auth: []
      parameters:
      - name: Idempotency-Key
        in: header
        required: false
        description: This key should be something unique, preferably something like an UUID.
        schema:
          type: string
      responses:
        '202':
          description: successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/async_response'
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/payment_order_async_create_request'
  /api/payment_orders:
    get:
      summary: list payment orders
      tags:
      - PaymentOrder
      description: Get a list of all payment orders
      operationId: listPaymentOrders
      security:
      - basic_auth: []
      parameters:
      - name: after_cursor
        in: query
        schema:
          type: string
          nullable: true
        required: false
      - name: per_page
        in: query
        schema:
          type: integer
        required: false
      - name: type
        in: query
        schema:
          type: string
          enum:
          - ach
          - au_becs
          - bacs
          - book
          - card
          - chats
          - check
          - cross_border
          - dk_nets
          - eft
          - gb_fps
          - hu_ics
          - interac
          - masav
          - mx_ccen
          - neft
          - nics
          - nz_becs
          - pl_elixir
          - provxchange
          - ro_sent
          - rtp
          - se_bankgirot
          - sen
          - sepa
          - sg_giro
          - sic
          - signet
          - sknbi
          - stablecoin
          - wire
          - zengin
        required: false
      - name: priority
        in: query
        schema:
          type: string
          enum:
          - high
          - normal
        required: false
        description: Either `normal` or `high`. For ACH and EFT payments, `high` represents a same-day ACH or EFT transfer, respectively. For check payments, `high` can mean an overnight check rather than standard mail.
      - name: counterparty_id
        in: query
        schema:
          type: string
        required: false
      - name: originating_account_id
        in: query
        schema:
          type: string
        required: false
      - name: transaction_id
        in: query
        schema:
          type: string
        description: The ID of a transaction that the payment order has been reconciled to.
        required: false
      - name: external_id
        in: query
        schema:
          type: string
        required: false
      - name: status
        in: query
        schema:
          type: string
          enum:
          - approved
          - cancelled
          - completed
          - denied
          - failed
          - held
          - needs_approval
          - pending
          - processing
          - returned
          - reversed
          - sent
          - stopped
        required: false
      - name: direction
        in: query
        schema:
          type: string
          enum:
          - credit
          - debit
          _x-stainless-modelDefPath: $shared.transaction_direction
        required: false
      - name: reference_number
        in: query
        schema:
          type: string
        description: Query for records with the provided reference number
        required: false
      - name: effective_date_start
        in: query
        schema:
          type: string
          format: date
        required: false
        description: An inclusive lower bound for searching effective_date
      - name: effective_date_end
        in: query
        schema:
          type: string
          format: date
        required: false
        description: An inclusive upper bound for searching effective_date
      - name: created_at_start
        in: query
        schema:
          type: string
          format: date
        required: false
        description: An inclusive lower bound for searching created_at
      - name: created_at_end
        in: query
        schema:
          type: string
          format: date
        required: false
        description: An inclusive upper bound for searching created_at
      - name: process_after_start
        in: query
        schema:
          type: string
          format: date-time
        required: false
        description: An inclusive lower bound for searching process_after
      - name: process_after_end
        in: query
        schema:
          type: string
          format: date-time
        required: false
        description: An inclusive upper bound for searching process_after
      - $ref: '#/components/parameters/metadata_query'
      responses:
        '200':
          description: successful
          headers:
            X-After-Cursor:
              schema:
                type: string
                nullable: true
              required: false
              description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page.
            X-Per-Page:
              schema:
                type: integer
                nullable: true
              description: The current `per_page`.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/payment_order'
    post:
      summary: create payment order
      tags:
      - PaymentOrder
      description: Create a new Payment Order
      operationId: createPaymentOrder
      security:
      - basic_auth: []
      parameters:
      - name: Idempotency-Key
        in: header
        required: false
        description: This key should be something unique, preferably something like an UUID.
        schema:
          type: string
      responses:
        '201':
          description: successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/payment_order'
        '400':
          description: parameter_invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
        '401':
          description: unsuccessful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
        '409':
          description: conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
        '422':
          description: unsuccessful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/payment_order_create_request'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/payment_order_create_request'
  /api/payment_orders/{id}:
    parameters:
    - name: id
      in: path
      schema:
        type: string
      required: true
    get:
      summary: get payment order
      tags:
      - PaymentOrder
      description: Get details on a single payment order
      operationId: getPaymentOrder
      security:
      - basic_auth: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/payment_order'
        '404':
          description: not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
    patch:
      summary: update payment order
      tags:
      - PaymentOrder
      description: Update a payment order
      operationId: updatePaymentOrder
      security:
      - basic_auth: []
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/payment_order'
        '404':
          description: not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
        '409':
          description: conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
        '422':
          description: parameter_invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/payment_order_update_request'
components:
  schemas:
    payment_order_subtype:
      type: string
      enum:
      - 0C
      - 0N
      - 0S
      - CCD
      - CIE
      - CTX
      - IAT
      - PPD
      - TEL
      - WEB
      - au_becs
      - bacs
      - base
      - chats
      - dk_nets
      - eft
      - ethereum
      - hu_ics
      - masav
      - mx_ccen
      - neft
      - nics
      - nz_becs
      - pl_elixir
      - polygon
      - ro_sent
      - se_bankgirot
      - sepa
      - sg_giro
      - sic
      - sknbi
      - solana
      - zengin
      nullable: true
      description: An additional layer of classification for the type of payment order you are doing. This field is only used for `ach` payment orders currently. For `ach`  payment orders, the `subtype`  represents the SEC code. We currently support `CCD`, `PPD`, `IAT`, `CTX`, `WEB`, `CIE`, and `TEL`.
      x-stainless-renameMap:
        bacs_new_instruction: 0C
        bacs_cancellation_instruction: 0N
        bacs_conversion_instruction: 0S
    external_account_type:
      type: string
      enum:
      - base_wallet
      - cash
      - checking
      - crypto_wallet
      - ethereum_wallet
      - general_ledger
      - loan
      - non_resident
      - other
      - overdraft
      - polygon_wallet
      - savings
      - solana_wallet
      description: Can be `checking`, `savings` or `other`.
    account_capability:
      type: object
      properties:
        id:
          type: string
          format: uuid
        object:
          type: string
        live_mode:
          type: boolean
          description: This field will be true if this object exists in the live environment or false if it exists in the test environment.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        discarded_at:
          type: string
          format: date-time
          nullable: true
        direction:
          type: string
          enum:
          - credit
          - debit
          description: One of `debit` or `credit`. Indicates the direction of money movement this capability is responsible for.
          _x-stainless-modelDefPath: $shared.transaction_direction
        identifier:
          type: string
          nullable: true
          description: A unique reference assigned by your bank for tracking and recognizing payment files. It is important this is formatted exactly how the bank assigned it.
        payment_type:
          type: string
          enum:
          - ach
          - au_becs
          - bacs
          - book
          - card
          - chats
          - check
          - cross_border
          - dk_nets
          - eft
          - gb_fps
          - hu_ics
          - interac
          - masav
          - mx_ccen
          - neft
          - nics
          - nz_becs
          - pl_elixir
          - provxchange
          - ro_sent
          - rtp
          - se_bankgirot
          - sen
          - sepa
          - sg_giro
          - sic
          - signet
          - sknbi
          - stablecoin
          - wire
          - zengin
          description: Indicates the the type of payment this capability is responsible for originating.
      additionalProperties: true
      minProperties: 9
      maxProperties: 9
      required:
      - id
      - object
      - live_mode
      - created_at
      - updated_at
      - discarded_at
      - direction
      - identifier
      - payment_type
    ledger_account_create_request:
      type: object
      properties:
        name:
          type: string
          description: The name of the ledger account.
        description:
          type: string
          description: The description of the ledger account.
          nullable: true
        normal_balance:
          type: string
          enum:
          - credit
          - debit
          description: The normal balance of the ledger account.
          _x-stainless-modelDefPath: $shared.transaction_direction
        ledger_id:
          type: string
          format: uuid
          description: The id of the ledger that this account belongs to.
        currency:
          type: string
          description: The currency of the ledger account.
        currency_exponent:
          type: integer
          description: The currency exponent of the ledger account.
          nullable: true
        ledger_account_category_ids:
          type: array
          items:
            type: string
            format: uuid
          description: The array of ledger account category ids that this ledger account should be a child of.
        ledgerable_id:
          type: string
          format: uuid
          description: If the ledger account links to another object in Modern Treasury, the id will be populated here, otherwise null.
        ledgerable_type:
          type: string
          enum:
          - counterparty
          - external_account
          - internal_account
          - virtual_account
          description: If the ledger account links to another object in Modern Treasury, the type will be populated here, otherwise null. The value is one of internal_account or external_account.
        metadata:
          type: object
          description: Additional data represented as key-value pairs. Both the key and value must be strings.
          additionalProperties:
            type: string
          example:
            key: value
            foo: bar
            modern: treasury
        external_id:
          type: string
          nullable: true
          description: An optional user-defined 180 character unique identifier.
      required:
      - name
      - normal_balance
      - ledger_id
      - currency
    currency:
      type: string
      enum:
      - AED
      - AFN
      - ALL
      - AMD
      - ANG
      - AOA
      - ARS
      - AUD
      - AWG
      - AZN
      - BAM
      - BBD
      - BCH
      - BDT
      - BGN
      - BHD
      - BIF
      - BMD
      - BND
      - BOB
      - BRL
      - BSD
      - BTC
      - BTN
      - BWP
      - BYN
      - BYR
      - BZD
      - CAD
      - CDF
      - CHF
      - CLF
      - CLP
      - CNH
      - CNY
      - COP
      - CRC
      - CUC
      - CUP
      - CVE
      - CZK
      - DJF
      - DKK
      - DOP
      - DZD
      - EEK
      - EGP
      - ERN
      - ETB
      - ETH
      - EUR
      - EURC
      - FJD
      - FKP
      - GBP
      - GBX
      - GEL
      - GGP
      - GHS
      - GIP
      - GMD
      - GNF
      - GTQ
      - GYD
      - HKD
      - HNL
      - HRK
      - HTG
      - HUF
      - IDR
      - ILS
      - IMP
      - INR
      - IQD
      - IRR
      - ISK
      - JEP
      - JMD
      - JOD
      - JPY
      - KES
      - KGS
      - KHR
      - KMF
      - KPW
      - KRW
      - KWD
      - KYD
      - KZT
      - LAK
      - LBP
      - LKR
      - LRD
      - LSL
      - LTL
      - LVL
      - LYD
      - MAD
      - MDL
      - MGA
      - MKD
      - MMK
      - MNT
      - MOP
      - MRO
      - MRU
      - MTL
      - MUR
      - MVR
      - MWK
      - MXN
      - MYR
      - MZN
      - NAD
      - NGN
      - NIO
      - NOK
      - NPR
      - NZD
      - OMR
      - OP
      - PAB
      - PEN
      - PGK
      - PHP
      - PKR
      - PLN
      - PYG
      - PYUSD
      - QAR
      - RON
      - RSD
      - RUB
      - RWF
      - SAR
      - SBD
      - SCR
      - SDG
      - SEK
      - SGD
      - SHP
      - SKK
      - SLE
      - SLL
      - SOS
      - SRD
      - SSP
      - STD
      - STN
      - SVC
      - SYP
      - SZL
      - THB
      - TJS
      - TMM
      - TMT
      - TND
      - TOP
      - TRY
      - TTD
      - TWD
      - TZS
      - UAH
      - UGX
      - USD
      - USDB
      - USDC
      - USDG
      - USDP
      - USDT
      - UYU
      - UZS
      - VEF
      - VES
      - VND
      - VUV
      - WST
      - XAF
      - XAG
      - XAU
      - XBA
      - XBB
      - XBC
      - XBD
      - XCD
      - XCG
      - XDR
      - XFU
      - XOF
      - XPD
      - XPF
      - XPT
      - XTS
      - YER
      - ZAR
      - ZMK
      - ZMW
      - ZWD
      - ZWG
      - ZWL
      - ZWN
      - ZWR
      description: Three-letter ISO currency code.
    error_message:
      type: object
      properties:
        errors:
          type: object
          properties:
            code:
              type: string
              enum:
              - parameter_invalid
              - parameter_missing
              - resource_not_found
              - not_found
              - forbidden
              - invalid_ip
              - invalid_key
              - header_invalid
              - expired_key
              - conflict
              - too_many_requests
            message:
              type: string
            parameter:
              type: string
      required:
      - errors
    routing_detail:
      type: object
      properties:
        id:
          type: string
          format: uuid
        object:
          type: string
        live_mode:
          type: boolean
          description: This field will be true if this object exists in the live environment or false if it exists in the test environment.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        discarded_at:
          type: string
          format: date-time
          nullable: true
        routing_number:
          type: string
          description: The routing number of the bank.
        routing_number_type:
          type: string
          enum:
          - aba
          - au_bsb
          - br_codigo
          - ca_cpa
          - chips
          - cnaps
          - dk_interbank_clearing_code
          - gb_sort_code
          - hk_interbank_clearing_code
          - hu_interbank_clearing_code
          - id_sknbi_code
          - il_bank_code
          - in_ifsc
          - jp_zengin_code
          - mx_bank_identifier
          - my_branch_code
          - nz_national_clearing_code
          - pl_national_clearing_code
          - se_bankgiro_clearing_code
          - sg_interbank_clearing_code
          - swift
          - za_national_clearing_code
          description: The type of routing number. See https://docs.moderntreasury.com/platform/reference/routing-detail-object for more details.
        payment_type:
          type: string
          enum:
          - ach
          - au_becs
          - bacs
          - book
          - card
          - chats
          - check
          - cross_border
          - dk_nets
          - eft
          - gb_fps
          - hu_ics
          - interac
          - masav
          - mx_ccen
          - neft
          - nics
          - nz_becs
          - pl_elixir
          - provxchange
          - ro_sent
          - rtp
          - se_bankgirot
          - sen
          - sepa
          - sg_giro
          - sic
          - signet
          - sknbi
          - stablecoin
          - wire
          - zengin
          nullable: true
          description: If the routing detail is to be used for a specific payment type this field will be populated, otherwise null.
        bank_name:
          type: string
          description: The name of the bank.
        bank_address:
          $ref: '#/components/schemas/address'
      additionalProperties: false
      minProperties: 11
      required:
      - id
      - object
      - live_mode
      - created_at
      - updated_at
      - discarded_at
      - routing_number
      - routing_number_type
      - payment_type
      - bank_name
      - bank_address
    address_request:
      type: object
      properties:
        line1:
          type: string
          nullable: true
        line2:
          type: string
          nullable: true
        locality:
          type: string
          nullable: true
          description: Locality or City.
        region:
          type: string
          nullable: true
          description: Region or State.
        postal_code:
          type: string
          description: The postal code of the address.
          nullable: true
        country:
          type: string
          description: Country code conforms to [ISO 3166-1 alpha-2]
          nullable: true
    address:
      type: object
      properties:
        id:
          type: string
          format: uuid
        object:
          type: string
        live_mode:
          type: boolean
          description: This field will be true if this object exists in the live environment or false if it exists in the test environment.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        line1:
          type: string
          nullable: true
        line2:
          type: string
          nullable: true
        locality:
          type: string
          nullable: true
          description: Locality or City.
        region:
          type: string
          nullable: true
          description: Region or State.
        postal_code:
          type: string
          description: The postal code of the address.
          nullable: true
        country:
          type: string
          description: Country code conforms to [ISO 3166-1 alpha-2]
          nullable: true
      nullable: true
      additionalProperties: false
      minProperties: 11
      required:
      - id
      - object
      - live_mode
      - created_at
      - updated_at
      - line1
      - line2
      - locality
      - region
      - postal_code
      - country
    account_detail:
      type: object
      properties:
        id:
          type: string
          format: uuid
        object:
          type: string
        live_mode:
          type: boolean
          description: This field will be true if this object exists in the live environment or false if it exists in the test environment.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        discarded_at:
          type: string
          format: date-time
          nullable: true
        account_number:
          type: string
          description: The account number for the bank account.
        account_number_type:
          type: string
          enum:
          - au_number
          - base_address
          - card_token
          - clabe
          - ethereum_address
          - hk_number
          - iban
          - id_number
          - nz_number
          - other
          - pan
          - polygon_address
          - sg_number
          - solana_address
          - wallet_address
          description: One of `iban`, `clabe`, `wallet_address`, or `other`. Use `other` if the bank account number is in a generic format.
        account_number_safe:
          type: string
          description: The last 4 digits of the account_number.
      additionalProperties: false
      minProperties: 8
      maxProperties: 9
      required:
      - id
      - object
      - live_mode
      - created_at
      - updated_at
      - discarded_at
      - account_number_type
      - account_number_safe
    internal_account:
      type: object
      properties:
        id:
          type: string
          format: uuid
        object:
          type: string
        live_mode:
          type: boolean
          description: This field will be true if this object exists in the live environment or false if it exists in the test environment.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        account_type:
          type: string
          enum:
          - base_wallet
          - cash
          - checking
          - crypto_wallet
          - ethereum_wallet
          - general_ledger
          - loan
          - non_resident
          - other
          - overdraft
          - polygon_wallet
          - savings
          - solana_wallet
          nullable: true
          description: Can be checking, savings or other.
        party_name:
          type: string
          description: The legal name of the entity which owns the account.
        party_type:
          type: string
          enum:
          - business
          - individual
          nullable: true
          description: Either individual or business.
        party_address:
          $ref: '#/components/schemas/address'
          description: The address associated with the owner or null.
        name:
          type: string
          nullable: true
          description: A nickname for the account.
        account_details:
          type: array
          items:
            $ref: '#/components/schemas/account_detail'
          description: An array of account detail objects.
        account_capabilities:
          type: array
          description: An array of AccountCapability objects that list the originating abilities of the internal account and any relevant information for them.
          items:
            $ref: '#/components/schemas/account_capability'
        routing_details:
          type: array
          items:
            $ref: '#/components/schemas/routing_detail'
          description: An array of routing detail objects.
        connection:
          $ref: '#/components/schemas/connection'
          description: Specifies which financial institution the accounts belong to.
        currency:
          $ref: '#/components/schemas/currency'
          description: The currency of the account.
        metadata:
          type: object
          additionalProperties:
            type: string
          example:
            key: value
            foo: bar
            modern: treasury
          description: Additional data represented as key-value pairs. Both the key and value must be strings.
        parent_account_id:
          type: string
          format: uuid
          nullable: true
          description: The parent InternalAccount of this account.
        counterparty_id:
          type: string
          format: uuid
          nullable: true
          description: The Counterparty associated to this account.
        vendor_id:
          type: string
          format: string
          nullable: true
          description: The vendor ID associated with this account.
        legal_entity_id:
          type: string
          format: uuid
          nullable: true
          description: The Legal Entity associated to this account.
        status:
          type: string
          format: string
          nullable: true
          enum:
          - active
          - closed
          - pending_activation
          - pending_closure
          - suspended
          description: The internal account status.
        ledger_account_id:
          type: string
          format: uuid
          nullable: true
          description: If the internal account links to a ledger account in Modern Treasury, the id of the ledger account will be populated here.
        contra_ledger_account_id:
          type: string
          format: uuid
          nullable: true
          description: If the internal account links to a contra ledger account in Modern Treasury, the id of the contra ledger account will be populated here.
        external_id:
          type: string
          nullable: true
          description: An optional user-defined 180 character unique identifier.
      additionalProperties: false
      minProperties: 24
      required:
      - id
      - object
      - live_mode
      - created_at
      - updated_at
      - account_type
      - party_name
      - party_type
      - party_address
      - name
      - account_details
      - account_capabilities
      - routing_details
      - connection
      - currency
      - metadata
      - parent_account_id
      - counterparty_id
      - vendor_id
      - legal_entity_id
      - status
      - ledger_account_id
      - contra_ledger_account_id
      - external_id
    payment_order_create_request:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/payment_order_type'
        subtype:
          $ref: '#/components/schemas/payment_order_subtype'
        amount:
          type: integer
          description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000 (cents). For RTP, the maximum amount allowed by the network is $100,000.
        direction:
          type: string
          enum:
          - credit
          - debit
          description: One of `credit`, `debit`. Describes the direction money is flowing in the transaction. A `credit` moves money from your account to someone else's. A `debit` pulls money from someone else's account to your own. Note that wire, rtp, and check payments will always be `credit`.
        priority:
          type: string
          enum:
          - high
          - normal
          description: Either `normal` or `high`. For ACH and EFT payments, `high` represents a same-day ACH or EFT transfer, respectively. For check payments, `high` can mean an overnight check rather than standard mail.
        originating_account_id:
          type: string
          format: uuid
          description: The ID of one of your organization's internal accounts.
        receiving_account_id:
          type: string
          format: uuid
          description: Either `receiving_account` or `receiving_account_id` must be present. When using `receiving_account_id`, you may pass the id of an external account or an internal account.
        currency:
          $ref: '#/components/schemas/curre

# --- truncated at 32 KB (117 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/modern-treasury/refs/heads/main/openapi/modern-treasury-paymentorder-api-openapi.yml