Global Payments API

Streamline your global payment operations by initiating, tracking, and managing multiple payment types across international markets through a single, unified interface, so you can handle everything from real-time payments to ACH and card payouts without juggling different systems.

OpenAPI Specification

jp-morgan-chase-global-payments-api-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%2Fglobal-payments-oas.md
# generated: '2026-07-28'
openapi: 3.0.0
info:
  title: Global Payments API
  version: 1.2.3
  description: Streamline your global payment operations by initiating, tracking, and managing multiple
    payment types across international markets through a single, unified interface, so you can handle
    everything from real-time payments to ACH and card payouts without juggling different systems.
  contact:
    name: JPMorgan Chase & Co. API Support
    email: imsd.security.operations@jpmorgan.com
    url: https://developer.payments.jpmorgan.com/contact/support
servers:
- url: https://apigateway.jpmorgan.com/tsapi/v1
  description: PRODUCTION - MTLS
- url: https://api-mtls.merchant.jpmorgan.com/tsapi/v1
  description: PRODUCTION - MTLS - Payment Card Industry
- url: https://apigatewaycat.jpmorgan.com/tsapi/v1
  description: CLIENT TESTING - MTLS
- url: https://apigatewaycat-pci.jpmorgan.com/tsapi/v1
  description: CLIENT TESTING - MTLS - Payment Card Industry
- url: https://api-mock.payments.jpmorgan.com/tsapi/v1
  description: JPM-PROD - Global Payments Sandbox
security:
- BearerAuth: []
tags:
- name: Payment Initiation
  description: API to initiate a payment
- name: Payment Information Retrieval
  description: APIs to retrieve status and details of a payment
paths:
  /payments:
    post:
      summary: Payments Initiation API
      operationId: initiatePayments
      description: Initiate Payments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentInitationDetails'
            examples:
              CBPR RTP SEPA Ultimate Debtor Hybrid:
                $ref: '#/components/examples/PaymentInitiationSEPAMinimalUltimateDebtorHybridAddress'
              CBPR RTP SEPA Creditor:
                $ref: '#/components/examples/PaymentInitiationSEPAMinimalCreditorAddress'
              CBPR RTP SEPA Ultimate Creditor:
                $ref: '#/components/examples/PaymentInitiationSEPAMinimalUltimateCreditorAddress'
      callbacks:
        paymentInitiationStatus:
          '{client-calback-url}/status':
            post:
              requestBody:
                content:
                  application/json:
                    schema:
                      type: object
                      properties:
                        callbacks:
                          $ref: '#/components/schemas/Callbacks'
                required: true
              responses:
                '200':
                  description: OK
                  content:
                    application/json:
                      schema:
                        type: object
      responses:
        '202':
          $ref: '#/components/responses/202-Accepted'
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
      tags:
      - Payment Initiation
    get:
      summary: Retrieve payment details
      operationId: getPaymentDetails
      tags:
      - Payment Information Retrieval
      description: Retrieve details of your transaction by either `firmRootId` or `endToEndId`.
      parameters:
      - $ref: '#/components/parameters/EndToEndId'
      - $ref: '#/components/parameters/FirmRootId'
      responses:
        '200':
          $ref: '#/components/responses/200-Details-OK'
        '400':
          $ref: '#/components/responses/400-Query-BadRequest'
        '403':
          $ref: '#/components/responses/403-Query-Forbidden'
        '503':
          $ref: '#/components/responses/503-Query-ServiceUnavailable'
  /payments/status:
    get:
      summary: Retrieve payment status
      description: Retrieve status of your transaction by either `firmRootId` or `endToEndId`.
      operationId: getPaymentStatus
      parameters:
      - $ref: '#/components/parameters/EndToEndId'
      - $ref: '#/components/parameters/FirmRootId'
      responses:
        '200':
          $ref: '#/components/responses/200-Status-OK'
        '400':
          $ref: '#/components/responses/400-Query-BadRequest'
        '403':
          $ref: '#/components/responses/403-Query-Forbidden'
        '503':
          $ref: '#/components/responses/503-Query-ServiceUnavailable'
      tags:
      - Payment Information Retrieval
components:
  x-jpmc-securitySchemes:
    MutualTLS:
      type: x509
      description: Mutual TLS authentication using client and server certificates.
  schemas:
    PaymentInitationDetails:
      type: object
      required:
      - payments
      properties:
        payments:
          $ref: '#/components/schemas/Payments'
    Payments:
      type: object
      required:
      - requestedExecutionDate
      - paymentIdentifiers
      - paymentAmount
      - paymentCurrency
      - debtor
      - debtorAgent
      - creditor
      - transferType
      properties:
        possibleDuplicateMessage:
          type: boolean
          description: Optional field to indicate a duplicate payment
        requestedExecutionDate:
          type: string
          pattern: '[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])'
          minLength: 0
          maxLength: 10
          description: Requested date on which/by which the transaction should be executed ISO Date format.
            (YYYY-MM-DD)
        paymentIdentifiers:
          $ref: '#/components/schemas/PaymentIdentifiers'
        paymentCurrency:
          type: string
          minLength: 3
          maxLength: 3
          description: 3- character ISO currency code e.g. `SGD`, `GBP`, `AUD`, `EUR`, `MXN`, `CLP`
        paymentAmount:
          type: number
          description: "Amount should be more than 0.`01` with maximum of two decimal places allowed.\n\
            \n**NOTE**: For Chile ACH, decimals are not accepted.\n\n**Maximum amount allowed per market/instrument**\
            \ :-\n\n  - **UK FPS** - GBP 1,000,000\n\n  - **SEPA INSTANT**  - EUR 100,000"
          example: 1000
        paymentType:
          $ref: '#/components/schemas/PaymentType'
        debtor:
          $ref: '#/components/schemas/Debtor'
        debtorAgent:
          $ref: '#/components/schemas/DebtorAgent'
        creditorAgent:
          $ref: '#/components/schemas/CreditorAgent'
        creditor:
          $ref: '#/components/schemas/Creditor'
        additionalParties:
          $ref: '#/components/schemas/AdditionalParties'
        transferType:
          type: string
          enum:
          - CREDIT
          - DEBIT
          description: "To indicate the transaction is a credit transfer or direct debit\ntransfer. This\
            \ indicator also determines the originator and receiver\nis the debit and credit side of this\
            \ transaction. \n\n**Supported value per market/instrument** :-\n  | Market |Value|\n  | --------------------|-------|\n\
            \  |  UK Faster Payments |CREDIT |\n  |  SEPA  INSTANT      |CREDIT |\n  |  US RTP       \
            \      |CREDIT |\n  |Singapore Faster Payments | CREDIT|\n  |Australia Faster Payments | CREDIT|\n\
            \  |Singapore Faster Payments | CREDIT|\n  |Hong Kong Faster Payments |CREDIT|\n  |Malaysia\
            \ Faster Payments  | CREDIT and DEBIT|\n  |Indonesia RTP             |CREDIT|\n  |Brazil RTP\
            \                |CREDIT|\n  |US RTP                    |CREDIT|\n  |Push To Card        \
            \      |CREDIT|\n  |ACH Chile Low Value       |CREDIT|\n  |Blockchain (Kinexys Digital Payments)\
            \ Payments | CREDIT|\n  |Push To Wallet (PayPal/Venmo)       |CREDIT|\n  |Interac (Canada)\
            \      |CREDIT|\n  |Zelle      |CREDIT|"
        purpose:
          $ref: '#/components/schemas/Purpose'
        categoryPurpose:
          $ref: '#/components/schemas/CategoryPurpose'
        remittanceInformation:
          $ref: '#/components/schemas/RemittanceInformation'
        taxInformation:
          $ref: '#/components/schemas/TaxInformation'
        secureVerification:
          type: array
          description: Applies only for Interac proxy payments
          minItems: 0
          maxItems: 100
          items:
            $ref: '#/components/schemas/SecureVerification'
        paymentExpiryDate:
          type: string
          format: date-time
          description: Applies only for Interac proxy Payments. Format expected - YYYY-MM-DDThh:mm:ss+/-time
            offset to UTC
        chargeBearer:
          type: string
          enum:
          - CREDITOR
          - DEBTOR
    SecureVerification:
      type: object
      properties:
        key:
          type: string
          minLength: 0
          maxLength: 256
          description: Key identifies the security question
        secret:
          type: string
          minLength: 0
          maxLength: 256
          description: Authenticate the key using secret answer to the question
    AdditionalParties:
      type: object
      title: Additional Parties
      description: Additional parties involved in the money movement.
      properties:
        initiatingParty:
          $ref: '#/components/schemas/InitiatingParty'
      minProperties: 1
      maxProperties: 1
    InitiatingParty:
      title: Initiating Party
      description: The initiating Party
      oneOf:
      - $ref: '#/components/schemas/OrganizationPartyDetails'
      - $ref: '#/components/schemas/IndividualPartyDetails'
      example:
        organizationIds:
        - organizationId: BANK
    OrganizationPartyDetails:
      title: OrganizationPartyDetails
      allOf:
      - $ref: '#/components/schemas/OrganizationIdentification'
      - $ref: '#/components/schemas/CoreInitiatingParty'
    IndividualPartyDetails:
      title: IndividualPartyDetails
      allOf:
      - $ref: '#/components/schemas/IndividualIdentification'
      - $ref: '#/components/schemas/CoreInitiatingParty'
    OrganizationIdentification:
      type: object
      title: Organization Identification
      description: Organization Identification Schemes
      properties:
        organizationIds:
          type: array
          minItems: 1
          maxItems: 5
          items:
            $ref: '#/components/schemas/OrganizationId'
    OrganizationId:
      title: OrganizationId
      type: object
      description: 'Collection of registration information held against the party.

        It can be used when the underlying payer is a Legal Entity.'
      minProperties: 1
      maxProperties: 4
      properties:
        organizationId:
          type: string
          description: Formally Issued Organization Identifier
          minLength: 1
          maxLength: 35
        bic:
          type: string
          description: "Business Identifier Code, mean a unique code to identify \nany business as defined\
            \ by the ISO9362 standard."
          minLength: 8
          maxLength: 11
        issuer:
          type: string
          description: Entity that assigns the identification
          minLength: 1
          maxLength: 35
        schemeName:
          description: Name of the identification scheme
          title: SchemeName
          type: object
          minProperties: 1
          maxProperties: 1
          properties:
            code:
              type: string
              description: Name of the identification scheme in a coded form
              minLength: 1
              maxLength: 4
            proprietary:
              type: string
              description: Specifies the type of scheme with a proprietary value
              minLength: 1
              maxLength: 35
    IndividualId:
      type: object
      title: IndividualId
      minProperties: 1
      maxProperties: 3
      description: Can be used if organization ID is not populated, when the underlying payer is an Individual.
      properties:
        individualId:
          type: string
          description: Unique and unambiguous identification of an individual
          minLength: 1
          maxLength: 35
        issuer:
          type: string
          description: Entity that assigns the identification
          minLength: 1
          maxLength: 35
        schemeName:
          description: Name of the identification scheme
          title: SchemeName
          type: object
          minProperties: 1
          maxProperties: 1
          properties:
            code:
              type: string
              description: Name of the identification scheme in a coded form
              minLength: 1
              maxLength: 4
            proprietary:
              type: string
              description: Specifies the type of scheme with a proprietary value.
              minLength: 1
              maxLength: 35
    CoreInitiatingParty:
      type: object
      title: CoreInitiatingParty
      description: Initiating party details
      required:
      - name
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 140
          description: Name of the party
    IndividualIdentification:
      type: object
      title: Individual Identification
      description: Individual Identification Schemes
      properties:
        individualIds:
          type: array
          minItems: 1
          maxItems: 5
          items:
            $ref: '#/components/schemas/IndividualId'
    TaxInformation:
      type: object
      description: 'mandatory for Brazil PIX and Chile Low value ACH payments

        Optional for Mexico RTP'
      properties:
        taxAmount:
          type: number
          description: Applicable only for Mexico RTP
          example: 1000
        creditorTaxInformation:
          type: object
          properties:
            taxId:
              type: string
              minLength: 0
              maxLength: 512
              description: 'Maximum lengths allowed per instrument/market :-

                ACH Chile - 35'
            taxpayerCategory:
              type: string
              enum:
              - INDIVIDUAL
              - CORPORATE
          required:
          - taxId
          - taxpayerCategory
        debtorTaxInformation:
          type: object
          required:
          - taxId
          properties:
            taxId:
              type: string
    PaymentType:
      type: string
      enum:
      - ACH.TRF
      - RTP
      - BLOCKCHAIN
      description: "Mandatory for RTP, ACH payments and and Kinexys Digital Payments.\n\nTo Specify the\
        \ payment type, use:\n\n  - **RTP** for Faster Payments\n\n  - **ACH.TRF** for Chile ACH Payments\n\
        \n  - **BLOCKCHAIN** for payments via Kinexys Digital Payments"
    DateAndPlaceOfBirth:
      type: object
      properties:
        birthDate:
          type: string
          pattern: '[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])'
        cityOfBirth:
          type: string
          minLength: 0
          maxLength: 35
        countryOfBirth:
          type: string
          minLength: 2
          maxLength: 2
    Callbacks:
      type: array
      description: "List of Error codes and Rule definitions. errorDescription is\ndynamically generated\
        \ hence not shown here.\n\n    | Error Code        |            Rule Definition              \
        \            |  \n    |-------------------|-----------------------------------------------------|\n\
        \    | `10001`           | Mandatory field is missing or invalid               | \n    | `10002`\
        \           | Minimum length validation failure                   | \n    | `10003`          \
        \ | Maximum length validation failure                   | \n    | `10004`           | Date validation\
        \ failure                             |  \n    | `10005`           | Amount validation failure\
        \ ~ value more than maximum |  \n    | `10006`           | Amount validation failure ~ value less\
        \ than minimum |  \n    | `10007`           | Amount validation failure ~ value is not a number\
        \   |  \n    | `10008`           | Validation failure ~ unexpected value provided      |  \n \
        \   | `10009`           | Invalid Id provided                                 |  \n    | `10010`\
        \           | Personal information validation failure             |  \n    | `11000`         \
        \  | Clearing/Regulatory failure                         |  \n    | `12000`           | System\
        \ error                                        | \n    | `13000`           | Uncategorized error\
        \                                 |  "
      minItems: 0
      maxItems: 100
      items:
        type: object
        properties:
          endToEndId:
            type: string
            minLength: 0
            maxLength: 128
          firmRootId:
            type: string
            minLength: 0
            maxLength: 128
          clearingSystemReference:
            type: string
            minLength: 0
            maxLength: 128
            description: The clearing system reference
          createDateTime:
            type: string
          paymentStatus:
            type: string
            enum:
            - PENDING
            - PENDING_POSTING
            - COMPLETED
            - COMPLETED_CREDITED
            - REJECTED
            - RETURNED
            - WAREHOUSED
            - BLOCKED
            - PENDING_JPM_REVIEW
            description: "Status of the payment.\n\nPENDING - Payment is pending processing\n\nPENDING_POSTING\
              \ - Payment is yet to be posted in the beneficiary\naccount\n\nCOMPLETED - Payment has successfully\
              \ completed\n\nCOMPLETED_CREDITED - Status indicating the beneficiary's account\nhas been\
              \ credited\n\nREJECTED - Payment has been rejected. Please refer to the\nexception object\
              \ for error details\n\nRETURNED - Payment has been retured to the debtor party\n\nWAREHOUSED\
              \ - Payment request was successfully received. The request will be processed in the next\
              \ available window, typically the next calendar day\n\nBLOCKED - Payment blocked due to\
              \ sanctions issue \n\nPENDING_JPM_REVIEW - Payment is pending JPMorgan review\n\n\nRTP Flows\
              \ (All Markets) - \n\nPENDING -> COMPLETED  \n\nPENDING -> REJECTED\n\n\nAdditional Flows(RTP)->\
              \ \n\nUS  - \n\nPENDING -> PENDING_POSTING -> COMPLETED\n\nPENDING -> BLOCKED\n\n\nHong\
              \ Kong - \n\nPENDING -> COMPLETED -> COMPLETED_CREDITED\n\n\nPush To Card Flows - \n\nPENDING\
              \ -> COMPLETED\n\nPENDING -> REJECTED\n\nPENDING -> COMPLETED -> RETURNED\n\n\nACH Flows\
              \ (Chile) - \n\nPENDING -> COMPLETED \n\nPENDING - REJECTED\n\n\nBlockchain (Kinexys Digital\
              \ Payments) Flows - \n\nPENDING -> PENDING_POSTING -> COMPLETED \n\nPENDING -> REJECTED"
          exceptions:
            type: array
            minItems: 0
            maxItems: 100
            items:
              type: object
              properties:
                errorCode:
                  type: string
                  minLength: 0
                  maxLength: 32
                errorDescription:
                  type: string
                  minLength: 0
                  maxLength: 1024
                ruleDefinition:
                  type: string
                  minLength: 0
                  maxLength: 128
                externalCode:
                  type: string
                  minLength: 0
                  maxLength: 32
                externalDescription:
                  type: string
                  minLength: 0
                  maxLength: 1024
                  description: This field is currently not available for client usage *****
          fx:
            $ref: '#/components/schemas/FxApplied'
          paymentRedirected:
            $ref: '#/components/schemas/PaymentRedirected'
    PaymentRedirected:
      type: object
      description: Object capturing details of a payment that has been redirected to another account Applicable
        to UK FPS
      properties:
        isPaymentRedirected:
          type: boolean
          description: Flag to indicate if a payment has been redirected to another account
        redirectedAccountId:
          type: string
          minLength: 0
          maxLength: 128
          description: Account id to which payment is redirected
        redirectedBankId:
          type: string
          description: Bank identifier of the redirected account id.
    FxApplied:
      type: object
      properties:
        appliedRate:
          $ref: '#/components/schemas/Decimal'
    PaymentStatus:
      type: object
      properties:
        paymentStatus:
          $ref: '#/components/schemas/CoreStatus'
    CoreStatus:
      type: object
      properties:
        createDateTime:
          type: string
        status:
          type: string
          enum:
          - PENDING
          - PENDING_POSTING
          - COMPLETED
          - COMPLETED_CREDITED
          - REJECTED
          - RETURNED
          - WAREHOUSED
          - BLOCKED
          - PENDING_JPM_REVIEW
          description: "Status of the payment.\n\nPENDING - Payment is pending processing\n\nPENDING_POSTING\
            \ - Payment is yet to be posted in the beneficiary\naccount\n\nCOMPLETED - Payment has successfully\
            \ completed\n\nCOMPLETED_CREDITED - Status indicating the beneficiary's account has\nbeen\
            \ credited\n\nREJECTED - Payment has been rejected. Please refer to the exception\nobject\
            \ for error details\n\nRETURNED - Payment has been retured to the debtor party\n\nWAREHOUSED\
            \ - Payment request was successfully received. The request will be processed in the next available\
            \ window, typically the next calendar day\n\nBLOCKED - Payment blocked due to sanctions issue\
            \ \n\nPENDING_JPM_REVIEW - Payment is pending JPMorgan review\n\nRTP Flows (All Markets) -\
            \ \n\nPENDING -> COMPLETED  \n\nPENDING -> REJECTED\n\n\nAdditional Flows(RTP)-> \n\nUS  -\
            \ \n\nPENDING -> PENDING_POSTING -> COMPLETED\n\nPENDING -> BLOCKED\n\n\nHong Kong - \n\n\
            PENDING -> COMPLETED -> COMPLETED_CREDITED\n\n\nPush To Card Flows - \n\nPENDING -> COMPLETED\n\
            \nPENDING -> REJECTED\n\nPENDING -> COMPLETED -> RETURNED\n\n\nBlockchain (Kinexys Digital\
            \ Payments) Flows - \n\nPENDING -> PENDING_POSTING -> COMPLETED \n\nPENDING -> REJECTED"
        fx:
          $ref: '#/components/schemas/FxApplied'
        clearingSystemReference:
          type: string
          minLength: 0
          maxLength: 256
        exception:
          type: array
          minItems: 0
          maxItems: 100
          items:
            type: object
            properties:
              errorCode:
                type: string
                minLength: 0
                maxLength: 32
              errorDescription:
                type: string
                minLength: 0
                maxLength: 1024
              ruleDefinition:
                type: string
                minLength: 0
                maxLength: 128
              externalCode:
                type: string
                minLength: 0
                maxLength: 32
              externalDescription:
                type: string
                minLength: 0
                maxLength: 1024
                description: This field is currently not available for client usage *****
        paymentRedirected:
          $ref: '#/components/schemas/PaymentRedirected'
    ServiceLevelCode:
      type: string
      minLength: 0
      maxLength: 32
      description: service Level in coded form.
    PostalAddress:
      type: object
      description: "Address of the party\n\n- For **UK FPS** it is recommended that the combined length\
        \ of all structured\nfields should be less than 140 characters\n\n- **SEPA Instant** :\n\n  -\
        \ `creditor`, `ultimateCreditor` and `ultimateDebtor` - unstructured address field, up to 2 lines,\
        \ 70 characters each including spaces.\n\n  - **FOLLOWING 2023 RULEBOOK GO LIVE IN MARCH 2024**\
        \ \n    - Structured address fields will be supported\n    - If client elects to use the structured\
        \ address fields populate:\n      - Address Line + Country + Town Name *OR*\n      - Town Name\
        \ + Country *OR*\n      - (Postal Address fields except Address Line) + Town Name + Country\n\n\
        \  - **THE FOLLOWING SEPA RULEBOOK GUIDELINES GO LIVE IN NOVEMBER 2026:**\n    - Fully unstructured\
        \ (free-text) postal addresses will be not supported.\n    - Town Name and Country are mandatory\
        \ when Postal Address is present.\n\n*For ultimateDebtor postalAddress is only required for cross-border\
        \ flows to be compliant with FTR regulation, not required for intra-EEA flows*\n\n**Push To Card**\
        \ - Include buildingNumber and streetName"
      properties:
        addressType:
          type: string
          enum:
          - ADDR
          - BIZZ
          - DLVY
          - HOME
          - MLTO
          - PBOX
          description: "| Address Type  |            Description                                     \
            \          |  \n|---------------|----------------------------------------------------------------------|\n\
            | `ADDR`        | Postal Address is the complete postal address.                       | \n\
            | `BIZZ`        | Business Address is the business address.                            | \n\
            | `DLVY`        | DeliveryTo Address is the address to which delivery is to take place.| \
            \ \n| `HOME`        | Residential Address is the home address.                           \
            \  |  \n| `MLTO`        | MailTo Address is the address to which mail is sent.           \
            \      | \n| `PBOX`        | PO Box Address is a postal office (PO) box.                 \
            \         | "
        streetName:
          type: string
          description: 'Name of street. Mandatory for US RTP

            Maximum length applicable :-

            Push To Card - 35'
          minLength: 0
          maxLength: 70
        buildingNumber:
          type: string
          description: 'Building name or number.

            Maximum length applicable :-

            Push To Card - 35'
          minLength: 0
          maxLength: 16
        postalCode:
          type: string
          description: 'Zip code. Mandatory for Wallet Payments and US RTP

            Maximum length applicable :-

            Push To Card - 9'
          minLength: 0
          maxLength: 16
        townName:
          type: string
          description: 'Name of the town. Mandatory for US RTP and SEPA Instant.

            Maximum length applicable :-

            Push To Card - 25'
          minLength: 0
          maxLength: 35
        countrySubDvsn:
          type: string
          minLength: 0
          maxLength: 35
          description: Mandatory for US RTP
        country:
          type: string
          description: '2 character ISO country code.

            Mandatory for Wallet Payments, US RTP, SEPA Instant and Interac'
          minLength: 2
          maxLength: 2
        addressLine:
          type: array
          minItems: 0
          maxItems: 100
          items:
            type: string
            minLength: 0
            maxLength: 1024
          description: "Not applicable to Wallet Payments. Free form text address lines Up\nto 4 lines.\n\
            \n**Maximum number of characters allowed per instrument/market** :-\n\n  | Market        \
            \  | Max Lines and length limits    |\n  | ----------------|--------------------------------|\n\
            \  | **UK FPS**      |4 lines, 140 characters including spaces |\n  | **SEPA INSTANT**| 2\
            \ lines, 70 characters each including spaces |\n  | **Brazil RTP** |7 lines, 70 characters\
            \          |\n  | **Chile ACH**   |2 lines, 35 characters + 1 additional line containing 32\
            \ characters|"
    AccountType:
      type: string
      description: '- Mandatory for SEPA Instant - Use IBAN

        - Mandatory for Blockchain Payments (Kinexys Digital Payments)- DDA, BDA (Blockchain Deposit

        Account)

        - Field not applicable to Alternate Payments (Cards)'
      enum:
      - DDA
      - VAM
      - IBAN
      - BDA
      - CACC
      - SVGS
      - CARD
      - LIMITED_DDA
      - EMBEDDED_DDA
      - WALLET
    AccountCurrency:
      type: string
      minLength: 3
      maxLength: 3
      pattern: ^[A-Z]{3}$
      description: 'Originator account currency in 3 character ISO currency code. Field not applicable
        to Alternate Payments (Cards)

        UK FPS - GBP only

        SEPA INSTANT - EUR only '
    AccountIdentification:
      type: string
      minLength: 0
      maxLength: 128
      description: '**Maximum length supported for each instrument and market** :-

        | Market |Maximum length limits|

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

        |  US RTP       |9 (**Routing and Transit Number**: alphabetic characters may be present)|

        |  SEPA INSTANT |8 (numeric only)  |

        |  Brazil RTP   |8                 |

        |  UK FPS       |6 (numeric only)  |'
    CountryOfResidence:
      type: string
      minLength: 2
      maxLength: 2
      description: 2 character `ISO country code` of residence. **Mandatory** for Interac payments.
    PaymentInitiationResponse:
      type: object
      properties:
        paymentInitiationResponse:
          type: object
          properties:
            endToEndId:
              $ref: '#/components/schemas/EndToEndId'
            firmRootId:
              $ref: '#/components/schemas/FirmRootId'
    EndToEndId:
      type: string
      minLength: 0
      maxLength: 128
    FirmRootId:
      type: string
      minLength: 0
      maxLength: 128
    ErrorsInit:
      type: object
      properties:
        endToEndId:
          type: string
          minLength: 0
          maxLength: 128
        errorDetails:
          type: array
          minItems: 0
          maxItems: 100
          items:
            $ref: '#/components/schemas/ErrorDetails'
    ErrorDetails:
      type: object
      properties:
        errorCode:
          type: string
          minLength: 0
          maxLength: 32
        errorDescription:
          type: string
          minLength: 0
          maxLength: 1024
        ruleDefinition:
          type: string
          minLength: 0
          maxLength: 128
    Error:
      type: object
      properties:
        errorCode:
          type: string
          minLength: 0
          maxLength: 32
        errorDescription:
          type: string
          minLength: 0
          maxLength: 1024
    Errors:
      type: object
      properties:
        errorDetails:
          type: array
          minItems: 0
          maxItems: 100
          items:
            $ref: '#/components/schemas/Error'
    DebtorFinancialInstitutionId:
      type: object
      description: Financial institution identifier of debtor
      properties:
        bic:
          type: string
          description: "**Credit Transfer Payment** Not applicable for **US RTP**\n\n**Mandatory RTP markets**:-\n\
            \n  | Market     |\n  |------------|\n  |  UK        |\n  |  India     |\n  |  Singapore |\n\
            \  |Australia   |\n  |Malaysia    |\n  |Hong Kong   |\n  |SEPA INSTANT|\n  |Brazil      |\n\
            \  |Mexico      |\n\n**Alternate Payments**:-\n  - **Push To Card**: US/Canada\n  - **Interac**:\
            \ Canada\n  - **Push To Wallet: Venmo/PayPal \n  - ** Zelle\n\n**ACH**:- \n  - Chile\n\n**Mandatory\
            \ Blockchain (Kinexys Digital Payments) Payment markets**:-\n  - US\n  - SEPA"
          enum:
          - CHASGB2L
          - CHASINBX
          - CHASAU2X
          - CHASSGSG
          - CHASUS33
          - CHASMYKX
          - CHASHKHH
          - CHASBRSP
          - CHASDEFX
          - CHASLULX
          - CHASNL2X
          - CHASIE4L
          - CHASMXMX
          - CHASCATT
          - CHASIDJX
          - CHASUS33MCY
          - CHASDEFXONX
          - CHASCLRM
          - CHASFRPP
          - CHASITMX
          - CHASESM3
          - CHASBE

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