Global Payments

Initiate, track, and manage payments and payment returns across a wide range of payment types, including ACH, wires, real-time payments, cards, and digital wallets, so you can automate your payment workflows and easily retrieve detailed status and transaction information for reconciliation and reporting.

OpenAPI Specification

jp-morgan-chase-global-payments-openapi.yml Raw ↑
# Harvested verbatim from the J.P. Morgan Payments Developer Portal.
# method: searched
# source: https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Ftreasury%2Fglobal-payments%2Fglobal-payments-2%2Fglobal-payments-2-oas.md
# generated: '2026-07-28'
openapi: 3.0.1
info:
  title: Global Payments
  description: Initiate, track, and manage payments and payment returns across a wide range of payment
    types, including ACH, wires, real-time payments, cards, and digital wallets, so you can automate your
    payment workflows and easily retrieve detailed status and transaction information for reconciliation
    and reporting.
  version: 2.5.2
  contact:
    name: JPMorgan Chase & Co. API Support
    email: imsd.security.operations@jpmorgan.com
    url: https://developer.payments.jpmorgan.com/contact/support
  license:
    name: Contact JPMorgan Chase & Co. API Support for licensing terms.
    url: https://developer.payments.jpmorgan.com/contact/support
servers:
- url: https://api.payments.jpmorgan.com/payment/v2
  description: PRODUCTION - MTLS
- url: https://api-mock.payments.jpmorgan.com/payment/v2
  description: MOCK
- url: https://api-sandbox.payments.jpmorgan.com/payment/v2
  description: CLIENT TESTING - MTLS
tags:
- name: Payments
  description: API to initiate payments
- name: Payment Returns
  description: API to initiate payment returns
paths:
  /payments:
    summary: Payments Initiation API
    description: Initiate and retrieve payments
    post:
      summary: Initiate Payments
      description: 'Initiate Payments


        > Mock responses displayed with JOSE are signed and encrypted and may not be human-readable. Use
        the JSON toggle to view the underlying mock payload data in a readable format.

        >

        > Payment Initiation requests must use the `Content-Type: application/jose` header'
      tags:
      - Payments
      operationId: createPayment
      parameters:
      - $ref: '#/components/parameters/IdempotencyKey'
      - $ref: '#/components/parameters/RequestId'
      requestBody:
        $ref: '#/components/requestBodies/InitiatePayment'
      responses:
        '200':
          $ref: '#/components/responses/200-PaymentInitiationDuplicate'
        '201':
          $ref: '#/components/responses/201-PaymentInitiationCreated'
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '401':
          $ref: '#/components/responses/401-UnAuthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '422':
          $ref: '#/components/responses/422-UnprocessableEntity'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
      callbacks:
        paymentEvent:
          x-tags:
          - Webhooks
          webhooks:
            post:
              summary: Payment Webhooks
              operationId: publishWebhook
              requestBody:
                description: 'Payment Events


                  | type | description |

                  |---|---|

                  | Payment.`Accepted` | Payment instruction initiation has been accepted and will be
                  processed |

                  | Payment.`Canceled` | Payment instruction has been canceled by instruction of the customer
                  |

                  | Payment.`Rejected` | Payment Instruction has been rejected |

                  | Payment.`Completed` | Payment Instruction has been fully processed |

                  | Payment.`Returned` | Payment Returned |

                  | Payment.`Processing` | Payment Processing |

                  '
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/Webhook'
                    examples:
                      Alternate Payments - Push To Card Status:
                        $ref: '#/components/examples/AlternateP2CPaymentStatusWebhook-CE'
                      Alternate Payments - Push To Card - TP3 Status:
                        $ref: '#/components/examples/AlternateP2CTP3PaymentStatusWebhook-CE'
                      Alternate Payments - Push To Card - TP3 Rejected Status:
                        $ref: '#/components/examples/AlternateP2CRejectedStatusWebhook-CE'
                      Alternate Payments - Kinexys Digital Payments (DDA to BDA) Completed Status:
                        $ref: '#/components/examples/AlternateKinexysDigitalPaymentsDDAtoBDAStatusWebhook-CE'
                      ACH Batch:
                        $ref: '#/components/examples/ACHBatch-CE'
              responses:
                '204':
                  description: Success - No Content
    get:
      summary: Query Payments by `endToEndId` or `paymentId`
      description: "<!-- theme: success -->\n\n> Query Payments by `endToEndId` or `paymentId`. \n\n>\
        \ Optionally, specify `view=FULL` to get an expanded representation for each payment."
      tags:
      - Payments
      operationId: getPayments
      parameters:
      - $ref: '#/components/parameters/EndToEndId'
      - $ref: '#/components/parameters/PaymentIdQuery'
      - $ref: '#/components/parameters/View'
      - $ref: '#/components/parameters/PaymentType'
      - $ref: '#/components/parameters/ViewOnlyRequestId'
      responses:
        '200':
          $ref: '#/components/responses/200-PaymentQueryOK'
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '401':
          $ref: '#/components/responses/401-UnAuthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
  /payments/{paymentId}:
    get:
      summary: Retrieve Payment by `paymentId`
      description: "Retrieves a payment resource by providing the `paymentId`; \noptionally, specify `view=FULL`\
        \ to get an expanded representation for the payment."
      operationId: getPayment
      tags:
      - Payments
      parameters:
      - $ref: '#/components/parameters/PaymentId'
      - $ref: '#/components/parameters/View'
      - $ref: '#/components/parameters/ViewOnlyRequestId'
      responses:
        '200':
          $ref: '#/components/responses/200-PaymentDetailOK'
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '401':
          $ref: '#/components/responses/401-UnAuthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
  /payments/returns:
    summary: Payment Returns API
    description: Initiate payment returns
    post:
      summary: Payment Returns
      description: Payment Returns
      tags:
      - Payment Returns
      operationId: createPaymentReturns
      parameters:
      - $ref: '#/components/parameters/IdempotencyKey'
      - $ref: '#/components/parameters/RequestId'
      requestBody:
        $ref: '#/components/requestBodies/PaymentReturn'
      responses:
        '200':
          $ref: '#/components/responses/200-PaymentReturnDuplicate'
        '201':
          $ref: '#/components/responses/201-PaymentReturnCreated'
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '401':
          $ref: '#/components/responses/401-UnAuthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '422':
          $ref: '#/components/responses/422-UnprocessableEntityPaymentReturns'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
      callbacks:
        paymentReturnEvent:
          x-tags:
          - Webhooks
          webhooks:
            post:
              summary: Payment Return Webhook
              operationId: publishReturnWebhook
              requestBody:
                description: Payment Return Event
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/PaymentReturnWebhook'
                    examples:
                      RTP - BR PIX Payment Return:
                        $ref: '#/components/examples/RealTimeBRPIXPaymentReturnWebhook-CE'
              responses:
                '204':
                  description: Success - No Content
  /payments/returns/{returnId}:
    summary: Retrieve payment return
    description: Retrieve payment return details using ReturnId
    get:
      summary: Retrieve Payment Return
      description: '<!-- theme: success -->

        Retrieve payment return details using ReturnId'
      tags:
      - Payment Returns
      operationId: getPaymentReturn
      parameters:
      - $ref: '#/components/parameters/ReturnId'
      responses:
        '200':
          $ref: '#/components/responses/200-PaymentReturnOk'
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '401':
          $ref: '#/components/responses/401-UnAuthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    EndToEndId:
      type: string
      title: EndToEndId
      minLength: 1
      maxLength: 128
      x-faker: random.uuid
      description: 'Customer assigned Unique identifier to unambiguously identify the Payment transaction.

        This identification is passed on, unchanged, throughout the entire end-to-end chain.'
      example: AD202109311354152
    PaymentId:
      title: PaymentId
      type: string
      minLength: 1
      maxLength: 128
      description: Unique payment initiation identification number
      example: 253f67f3-b640-44cb-aabd-2cc348b52678
    View:
      type: string
      enum:
      - SUMMARY
      - FULL
      default: SUMMARY
    PaymentType:
      title: PaymentType
      type: string
      enum:
      - RTP
      - WIRE
      - ACH
      - CARD
      - VENMO
      - PAYPAL
      - BLOCKCHAIN
      - INTERAC
      - ZELLE
      - DEFAULT
      default: DEFAULT
      description: "The type of payment being initiated\n      \n**Use**:\n  - **RTP** for Realtime Payments\n\
        \  - **ACH** for  ACH Payments\n  - **BLOCKCHAIN** for payments via Kinexys Digital Payments\n\
        \  - **WIRE** for Wire Payments\n  - **CARD** for Push to Card Payments\n  - **VENMO** for Venmo\
        \ payments\n  - **PAYPAL** for Paypal payments\n  - **INTERAC** for Interac Payments\n  - **ZELLE**\
        \ for Zelle Payments\n   - **DEFAULT** for other payments."
    RequestId:
      type: string
      minLength: 1
      maxLength: 128
      description: Client provided unique identifier for the current request invocation
    StandardCodeContext:
      title: Standard Code Context
      description: Schema representing a standard code context such as ISO or Clearing codes
      type: object
      required:
      - code
      - message
      - type
      properties:
        type:
          title: CategoryType
          type: string
          description: 'Category of the error code such as ISO or a Clearing Code (NACHA, BACS etc)

            |Category Type | Description

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

            |**ISO20022**       | ISO Codes based on an ISO standard e.g. ISO20022

            |**CLEARING_NACHA**  | Clearing codes

            |**EXTERNAL**  | External code sets '
          minLength: 2
          maxLength: 16
        code:
          type: string
          description: Short code that identifies the error - publicly cataloged and documented
          minLength: 2
          maxLength: 10
          pattern: ^[a-zA-Z0-9]+$
        message:
          type: string
          description: Human readable textual description of the error
          minLength: 1
          maxLength: 140
    AdditionalContext:
      title: Additional Context
      type: array
      description: Additional details about the error based on a standard (e.g. ISO or Clearing codes)
      items:
        $ref: '#/components/schemas/StandardCodeContext'
      minItems: 1
      maxItems: 5
    ErrorContext:
      title: ErrorContext
      type: object
      required:
      - message
      properties:
        code:
          type: string
          description: JPMC Short code that identifies the error - publicly cataloged and documented
          minLength: 5
          maxLength: 5
          pattern: ^[0-9]+$
        message:
          type: string
          description: Human readable textual description of the error
          minLength: 1
          maxLength: 140
        location:
          type: string
          title: The component of the request impacted, can either be 'body', 'query', 'header', or 'path'
          description: The location of the error occurred in the request.
          minLength: 1
          maxLength: 99
          enum:
          - BODY
          - PATH
          - QUERY
          - HEADER
        field:
          type: string
          description: The field which caused the error. Where the location of the error occurred is BODY,
            the field would contain the JSON Path expression
          minLength: 1
          maxLength: 99
          pattern: ^[\$0-9a-zA-Z-_.()\[\]{}'"\s@=><!?,]+$
        additionalContext:
          $ref: '#/components/schemas/AdditionalContext'
      description: Error Context
    ClearingSystem:
      type: object
      description: Details of the clearing system used to process the payment instruction
      title: ClearingSystem
      properties:
        name:
          type: string
          description: Name of the clearing system
          minLength: 3
          maxLength: 10
        reference:
          type: string
          description: A unique reference assigned by the clearing system to unambiguously identify the
            instruction
          minLength: 1
          maxLength: 128
    FinancialInstitutionIdType:
      type: string
      enum:
      - BIC
      - USABA
      - SORT_CODE
      - CLEARING_SYSTEM_ID
    CreditorFinancialInstitutionId:
      type: object
      title: CreditorFinancialInstitutionId
      description: Creditor Financial InstitutionId
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 11
          description: "**BIC**:\n\nSWIFT BIC. Applicable and Mandatory for RTP markets:\n  - Singapore\n\
            \  - Malaysia\n\nOptional markets:\n  - SEPA Instant\n  - Mexico\n\nMandatory for Blockchain(Kinexys)\
            \ Payments:\n  - US\n  - SEPA\n\n**CLEARING_SYSTEM_ID**:\n\nClearing system identifier/member\
            \ identifier. Applicable and Mandatory for\nRTP markets:\n\n  - UK\n  - Australia\n  - India\n\
            \  - Hong Kong\n  - US\n  - Brazil\n\n**ACH**: \n  - Chile\n  - Canada \n\n**WIRE**:\n  -\
            \ BRAZIL TED"
        idType:
          $ref: '#/components/schemas/FinancialInstitutionIdType'
        branchNumber:
          type: string
          minLength: 1
          maxLength: 5
          description: Branch of the bank or financial institution.
      required:
      - id
      - idType
    PaymentRedirection:
      title: PaymentRedirection
      type: object
      description: 'Represents details of a payment that has been redirected to another bank account


        **Applicable only for UK FPS**'
      properties:
        accountNumber:
          type: string
          description: Account number
          minLength: 1
          maxLength: 8
        financialInstitutionIds:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/CreditorFinancialInstitutionId'
      required:
      - accountNumber
      - financialInstitutionIds
    PaymentStatusBasic:
      type: object
      title: PaymentStatusBasic
      description: Representation of the basic payment status
      properties:
        paymentId:
          $ref: '#/components/schemas/PaymentId'
        valueDate:
          type: string
          format: date
          description: The value date of the payment in YYYY-MM-DD format
        paymentStatus:
          type: string
          enum:
          - RECEIVED
          - ACCEPTED
          - PROCESSING
          - CANCELED
          - REJECTED
          - COMPLETED
          - RETURNED
          description: The payment status indicates the current state of the payment
        paymentSubStatus:
          type: string
          description: The payment sub status provides the granular level payment status
          enum:
          - RECEIVED
          - ACCEPTED
          - PROCESSING_BY_JPM
          - PENDING_CLIENT_ACTION
          - PENDING_COMPLIANCE_REVIEW
          - PENDING_FRAUD_REVIEW
          - PENDING_FUNDING_REVIEW
          - PENDING_JPM_REVIEW
          - SCHEDULED
          - PENDING_POSTING
          - CANCELED
          - REJECTED
          - REJECTED_BY_JPM
          - COMPLETED_BY_JPM
          - SENT_TO_CLEARING
          - DELIVERED_TO_RECIPIENT
          - RETURNED
        statusUpdatedAt:
          type: string
          format: date-time
          description: 'The last updated date and time of the payment status in ISO 8601 format.

            The date &amp; time are expressed in UTC timezone (without offset)'
        gpi:
          type: object
          title: GPIStatus
          description: GPI status as provided by SWIFT network
          properties:
            status:
              type: string
              minLength: 4
              maxLength: 4
              description: Specifies the status of a single payment transaction
            statusDescription:
              type: string
              minLength: 1
              maxLength: 35
            reason:
              type: string
              minLength: 4
              maxLength: 4
              description: Provides the reason for a payment status
        exceptions:
          type: array
          minItems: 1
          maxItems: 100
          items:
            $ref: '#/components/schemas/ErrorContext'
        clearingSystem:
          $ref: '#/components/schemas/ClearingSystem'
        paymentRedirection:
          $ref: '#/components/schemas/PaymentRedirection'
      required:
      - paymentId
      - paymentStatus
      - statusUpdatedAt
    TransactionIdentifier:
      type: string
      minLength: 1
      maxLength: 128
      title: transactionIdentifier
      description: "Unique identification, as assigned by the first instructing agent, to unambiguously\
        \ identify the transaction that is passed on, unchanged, throughout the entire interbank chain.\
        \ \n\n> This is the Transaction Reference Number (**TRN**) for a **WIRE** payment."
    OtherPaymentReferencesReadOnly:
      type: object
      title: OtherPaymentReferencesReadOnly
      description: Other Payment Reference Identifiers
      properties:
        relatedReferenceId:
          type: string
          minLength: 1
          description: Related reference Identifier, applicable for *ACH* and **WIRES** only.
        uetr:
          type: string
          minLength: 36
          maxLength: 36
          description: A Unique End-to-end Transaction Reference (commonly known as a UETR) is a string
            of 36 unique characters featured in all payment instruction messages carried over SWIFT.
        transactionIdentifier:
          $ref: '#/components/schemas/TransactionIdentifier'
    PaymentIdentifiersReadOnly:
      type: object
      title: PaymentIdentifiersReadOnly
      description: Identifiers associated with the Payment Instruction throughout its lifecycle.
      required:
      - endToEndId
      properties:
        endToEndId:
          $ref: '#/components/schemas/EndToEndId'
        paymentBatchId:
          type: string
          minLength: 1
          description: "JPMC issued batch Id for the payment \n**NOTE: Applicable only for payments batched\
            \ by JPMC. i.e ACH**"
        achTraceNumber:
          type: string
          minLength: 1
          description: Original ACH transaction JPMC trace number
        otherPaymentReferences:
          $ref: '#/components/schemas/OtherPaymentReferencesReadOnly'
    IsoCurrencyCode:
      title: IsoCurrencyCode
      type: string
      description: ISO 4217 Alpha-3 Currency Code
      minLength: 3
      maxLength: 3
      pattern: ^[A-Z]{3}$
      example: AUD
    AmountDecimal:
      title: PaymentAmountDecimal
      type: string
      description: A String representation of a (potentially) whole number or decimal positive number.
        - Amount should be more than 0.01 with maximum of two decimal places allowed in most markets.
      minLength: 1
      maxLength: 40
      pattern: ^\d+(\.\d+)?$
    AmountValue:
      description: Instructed Amount Value in a given currency.
      title: Amount Value
      type: object
      required:
      - currency
      - amount
      properties:
        currency:
          $ref: '#/components/schemas/IsoCurrencyCode'
        amount:
          $ref: '#/components/schemas/AmountDecimal'
    Decimal:
      title: Decimal
      type: string
      description: A String representation of a (potentially) whole number or decimal positive number.
        - *Amount should be more than 0.01 with maximum of two decimal places allowed in most markets.*
      minLength: 1
      maxLength: 40
      pattern: ^\d+(\.\d+)?$
    EquivalentValue:
      title: Equivalent Value
      type: object
      description: 'Amount of money to be moved between debtor and creditor, before deduction of charges,

        expressed in the currency of the debtor''s account, and to be moved in a different currency.

        **Usage**: The debtor agent will convert the equivalent amount into the amount to be moved.'
      required:
      - equivalentAmount
      properties:
        equivalentAmount:
          type: object
          title: EquivalentAmount
          description: The equivalent amount
          properties:
            currency:
              $ref: '#/components/schemas/IsoCurrencyCode'
            amount:
              $ref: '#/components/schemas/Decimal'
            currencyOfTransfer:
              type: string
              description: Specifies the currency of the transferred amount, which is different from the
                currency of the debtor's account.
              minLength: 3
              maxLength: 3
              pattern: ^[A-Z]{3}$
              example: EUR
          required:
          - currency
          - amount
          - currencyOfTransfer
    PaymentValue:
      title: PaymentValue
      type: object
      description: Payment value
      oneOf:
      - $ref: '#/components/schemas/AmountValue'
      - $ref: '#/components/schemas/EquivalentValue'
    TransferType:
      title: TransferType
      type: string
      enum:
      - CREDIT
      - DEBIT
      description: "Indicates the direction of the money movement. The transaction is either a `credit`\
        \ push transfer or a direct `debit` pull transfer.\n**Supported values**:-\n  | Market/Instrument\
        \    | Transfer type \t |\n  |----------------------|-----------------|\n  | Credit Transfers\
        \     |     CREDIT      |\n  | Direct-Debits        |     DEBIT       |"
    LocalInstrument:
      title: Local Instrument
      type: object
      description: Specifies a user community specific instrument
      properties:
        code:
          type: string
          pattern: ^[-_.A-Z0-9]{2,10}$
          description: "Specifies the local instrument, as published in an external local instrument code\
            \ list.\n|LocalInstrumentCode  | Meaning\n|--------------------|-----------------\n|**SDCL**\
            \            | Same Day Clearing\n|**IN**              | International Payments\n|**CCD**\
            \             | Urgent Payment Net Settlement Corporate Credit or Debit (**CCD**)\n|**IAT**\
            \             | Same Day Value International ACH Transactions (**IAT**)\n|**PPD**        \
            \     | Pre-arranged Payments or Deposit Transfer(**PPD**) \n|**CTX**             | Corporate\
            \ Trade Exchange\n|**CIE**             | Customer Initiated Entry\n|**ARC**             |\
            \ Accounts Receivable Entry\n|**POP**             | Point of Purchase\n|**RCK**          \
            \   | Re-presented Check Entry\n|**BOC**             | Back office Conversion\n|**POS**  \
            \           | Point of Sale\n|**WEB**             | **WEB** Initiated Entry - Used for authorizing\
            \ payment over the internet.\n|**TEL**             | **TELEPHONE** Initiated Entry - Used\
            \ for authorizing payment via telephone.\n\n- For **US ACH**: it is mandatory to include a\
            \ 3 character **SEC** code.\n\n> A Standard Entry Class (**SEC**) code is a mandatory three-letter\
            \ code that describes how a payment was authorized\nby the consumer or business receiving\
            \ an ACH transaction. This is meant to be specified as a localInstructment code for \nACH\
            \ transactions."
        proprietary:
          type: string
          pattern: ^[-_.A-Z0-9]{1,35}$
          description: Specifies the local instrument, as a proprietary code.
    PaymentContext:
      title: Payment Context
      type: string
      description: 'Specifies the context of the payment flow:

        - **WIRES** Specific payment context:

        |Payment Context  | description

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

        |**FI**           | Financial Instition initiated flow

        |**CUSTOMER**     | CUSTOMER  Initated flow'
      enum:
      - FI
      - CUSTOMER
    ClearingSystemClientVersion:
      type: object
      title: ClearingSystem
      description: Clearing system used for the payment. The clearing system is a network that facilitates
        the transfer of funds between banks or financial institutions. It acts as an intermediary, ensuring
        that transactions are processed securely and efficiently.
      properties:
        name:
          type: string
          description: Name of the clearing system
          minLength: 3
          maxLength: 10
    PaymentTypeInformation:
      type: object
      title: Payment Type information
      description: A set of coded elements that further specifies the type of Payment
      minProperties: 1
      properties:
        serviceLevelCode:
          type: string
          description: 'Specifies an agreed service level under which the payment should be processed
            based on a set of pre-defined categories.


            |ServiceLevelCode | Meaning

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

            |**NURG**         | Non Urgent

            |**URGP**         | Urgent

            |**SDVA**         | Same Day Value

            |**URNS**         | Urgent Payment Net Settlement

            |**BKTR**         | Book'
          enum:
          - NURG
          - SEPA
          - SDVA
          - URNS
          - BKTR
          - URGP
        localInstrumentCode:
          $ref: '#/components/schemas/LocalInstrument'
        paymentContext:
          $ref: '#/components/schemas/PaymentContext'
        clearingSystem:
          $ref: '#/components/schemas/ClearingSystemClientVersion'
    AccountId:
      title: AccountId
      type: string
      minLength: 1
      maxLength: 128
      description: "This field captures a regular account number .\n\n**Maximum length supported for different\
        \ instruments and markets**:\n\n  | Market/Instrument               \t| Maximum length limits\
        \                                         |\n  |-----------------------------------|---------------------------------------------------------------|\n\
        \  | UK FPS                          \t| 8 (7 digit A/C numbers should be padded with a leading\
        \ zero) \t|\n  | SGP RTP                         \t| 35                                      \
        \                     \t|\n  | AUS RTP                         \t| 35                        \
        \                                   \t|\n  | HKG FPS                         \t| 35          \
        \                                                 \t|\n  | IND IMPS                        \t\
        | 35                                                           \t|\n  | P2C US/CA            \
        \           \t| 16                                                           \t|\n  | BRA PIX\
        \                         \t| 34                                                           \t\
        |\n  | MEX SPEI                        \t| 16                                                \
        \           \t|\n  | USA RTP                         \t| 31                                  \
        \                         \t|\n  | SEPA Instant                    \t| 34 (IBAN)             \
        \                                        |\n  | P2I INTERAC                     \t| 35       \
        \                                                     |\n  | Blockchain (Kinexys) Payments   \
        \  | 34                                                            |\n  | Chile ACH          \
        \             \t| 34                                                            |\n  | US ACH\
        \ IAT                       \t| 35                                                           \
        \ |\n  | US ACH NON-IAT                   \t| 17                                             \
        \               |\n  | CAD ACH                          \t| 12                               \
        \                             |\n  | ACH (BACS)                       \t| 8                  \
        \                                           |\n  | ACH (SEPA)                       \t| 34 (IBAN)\
        \                                                     |"
    AccountType:
      title: AccountType
      type: string
      enum:
      - DDA
      - BDA
      - CARD
      - LOAN
      - ODFT
      - NREX
      - CACC
      - SVGS
      - CACR
      - NROR
      - SNRR
      - TRAN
      - CLABE
      - VOSTRO
      - IBAN
      - BBAN
      - DFLT
      - SLRY
      - EMBEDDED_DDA
      - LIMITED_DDA
      - WALLET
      - VAM
      - INTERAC
      - PAYPAL
      - VENMO
      - OTHER
      description: "**Mandatory for** :\n - India IMPS\n - Malaysia NPP \n - Brazil RTP (Pay to account\
        \ only)\n - Blockchain Payments \n - US ACH (IAT and NON IAT)\n\n**India IMPS**:\n  - LOAN - Loan\
        \ account\n  - ODFT - Overdraft\n  - NREX - NonResidentExternal\n  - OTHER - For Book and cross\
        \ branch with VRN accounts\n  - CACC - Cash Credit/Current account\n  - DDA - DDA account\n  -\
        \ SVGS - Savings account\n  - CACR - Cash Credit Account\n  - NROR - Non-Resident Ordinary Account\n\
        \  - SNRR - Special Non-Resident Rupee Account\n\n**SEPA Instant**: IBAN\n\n**Hong Kong RTP**:\
        \ BBAN\n\n**Malaysia NPP**:\n  - LOAN\n  - DFLT\n  - SVGS\n  - CACC\n\n**Brazil RTP**: \n  - CACC\n\
        \  - SLRY\n  - TRAN\n  - SVGS\n\n**Mexico RTP**: \n  - CLABE\n  - VOSTRO\n  - DDA\n\n**Blockchain\
        \ Payments**:\n  - DDA\n  - BDA - Blockchain Deposit Account\n\n**US ACH**: \n  - CACC \n  - SVGS\
        \ \n  - LOAN\n\nOptional for:\n  - CAD ACH\n\n**Not supported for**:\n- US RTP\n- Alternate Payments\
        \ (Wallet, Cards)"
    PrimaryAccountDetails:
      type: object
      title: Primary Account Details
      description: Account Details
      required:
      - accountNumber
      properties:
        accountNumber:
          $ref: '#/components/schemas/AccountId'
        accountType:
          $ref: '#/components/schemas/AccountType'
        accountCurrency:
          $ref: '#/components/schemas/IsoCurrencyCode'
        companyId:
          type: string
          description: Applicable to ACH Payments. Special reference on certain payment types for returns
            routing.
          minLength: 1
          maxLength: 35
    AlternateAccountIdentifier:
      title: AlternateAccountIdentifier
      type: object
      description: "- Alternate Account Identifier eg. email, program id, proprietary.\n\n- Mandatory\
        \ for **Push To Card**:\n  - Use program id while specifying the identifier for debtor details\n\
        \n- Each 

# --- truncated at 32 KB (214 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/jp-morgan-chase/refs/heads/main/openapi/jp-morgan-chase-global-payments-openapi.yml