JPMorgan Chase Payments API

API to initiate payments

Operations 5

POST /payments Initiate Payments #
GET /payments Query Payments by `endToEndId` or `paymentId` #
GET /payments/{paymentId} Retrieve Payment by `paymentId` #
POST /payments/{id}/acknowledge Acknowledge Payments #
GET /payments/{id} Retrieve Payments #

Documentation

📖
Documentation
https://developer.payments.jpmorgan.com/api
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fembedded-finance-solutions%2Fembedded-payments%2Fonboarding-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Foptimization-protection%2Fconsumer-profile%2Fconsumer-profile-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Foptimization-protection%2Ftokenization%2Ftokenization-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Foptimization-protection%2Freporting%2Freporting-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Ftreasury%2Freceivables%2Frequest-to-pay-api.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Fonline-payments%2Fcheckout%2Fcheckout-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Fdispute-management%2Fdispute-management-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Ffraud-solutions%2Falerts-and-decisioning%2Foas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Fproduct-configuration%2Fproduct-configuration-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Foptimization-protection%2F3-d-secure%2F3-d-secure-1.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Foptimization-protection%2Faccount-updater%2Faccount-updater-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Ftreasury%2Fglobal-payments%2Fglobal-payments%2Fglobal-payments-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fliquidity-account-solutions%2Fbda-balances%2Faccounts-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Ffraud-solutions%2Fvalidation-services%2Fvalidation-services-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Foptimization-protection%2Fwallet-decryption%2Fwallet-decryption-oas.md

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/jp-morgan-chase-payments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

jp-morgan-chase-payments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Jp Morgan Chase Payments API
  version: '1.0'
  description: 'Operations tagged Payments across 2 of this provider''s published API definitions: jp-morgan-chase-global-payments-openapi.yml, jp-morgan-chase-payment-initiation-service-openapi.yml. Each path carries the servers of the definition it was published in.'
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
- url: https://apigateway.jpmorgan.com/tsapi/paybybank/v2
  description: PRODUCTION
- url: https://apigatewayqaf.jpmorgan.com/tsapi/paybybank/v2
  description: CLIENT TESTING
- url: https://apigatewaycat.jpmorgan.com/tsapi/paybybank/v2
  description: CLIENT TESTING
- url: https://api-mock.payments.jpmorgan.com/tsapi/paybybank/v2
  description: MOCK
tags:
- name: Payments
  description: API to initiate payments
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'
    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
  /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'
    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
  /payments/{id}/acknowledge:
    post:
      summary: Acknowledge Payments
      description: Acknowledges the payment request that was previously setup.
      tags:
      - Payments
      operationId: acknowledgePayments
      parameters:
      - name: id
        in: path
        required: true
        description: A unique ID of the payment
        schema:
          $ref: '#/components/schemas/UniqueResourceIdentifier'
        examples:
          PaymentResponseGermanyRTP:
            value: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea
      responses:
        '200':
          $ref: '#/components/responses/200-Acknowledged'
        '400':
          $ref: '#/components/responses/400-BadRequest-Non-State-Change'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden_2'
        '404':
          $ref: '#/components/responses/404-NotFound_2'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable_2'
    servers:
    - url: https://apigateway.jpmorgan.com/tsapi/paybybank/v2
      description: PRODUCTION
    - url: https://apigatewayqaf.jpmorgan.com/tsapi/paybybank/v2
      description: CLIENT TESTING
    - url: https://apigatewaycat.jpmorgan.com/tsapi/paybybank/v2
      description: CLIENT TESTING
    - url: https://api-mock.payments.jpmorgan.com/tsapi/paybybank/v2
      description: MOCK
  /payments/{id}:
    get:
      summary: Retrieve Payments
      description: Retrieves the details of the payment request by Id.
      tags:
      - Payments
      operationId: retrievePaymentsDetails
      parameters:
      - name: id
        in: path
        required: true
        description: A unique ID of the payment
        schema:
          $ref: '#/components/schemas/UniqueResourceIdentifier'
        examples:
          PaymentResponseGermanyRTP:
            value: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea
      responses:
        '200':
          $ref: '#/components/responses/200-Successful'
        '400':
          $ref: '#/components/responses/400-BadRequest-Non-State-Change'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden_2'
        '404':
          $ref: '#/components/responses/404-NotFound_2'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable_2'
    servers:
    - url: https://apigateway.jpmorgan.com/tsapi/paybybank/v2
      description: PRODUCTION
    - url: https://apigatewayqaf.jpmorgan.com/tsapi/paybybank/v2
      description: CLIENT TESTING
    - url: https://apigatewaycat.jpmorgan.com/tsapi/paybybank/v2
      description: CLIENT TESTING
    - url: https://api-mock.payments.jpmorgan.com/tsapi/paybybank/v2
      description: MOCK
components:
  schemas:
    ChargesInformation:
      title: Charges Information
      description: Information regarding the charge bearer and the relevant charges
      type: object
      properties:
        chargeBearer:
          type: string
          enum:
          - CREDITOR
          - DEBTOR
          - SHARED
          description: Party bearing transaction fees
        value:
          $ref: '#/components/schemas/Value'
    UnstructuredInformation:
      type: object
      title: UnstructuredInformation
      description: Unstructured remittance information
      properties:
        text:
          type: string
          minLength: 1
          maxLength: 210
          description: "Maximum number of lines and characters supported per\nmarket/instrument :-\n\n| Market/Instrument             | Maximum length limits |\n|-------------------------------|-----------------------|\n| UK FPS         \t              | 1 line, 140 characters|\n| SEPA Instant                  | 1 line, 140 characters|\n|Singapore RTP                  | 1 line, 140 characters|\n| AUS RTP                       | 2 lines,140 characters|\n| HKG FPS                       | 1 line, 140 characters|\n| IND IMPS                      | 1 line, 140 characters|\n| Brazil RTP                   | 1 line, 140 characters|\n| Mexico RTP                    | 210 characters        |\n| Indonesia RTP                 | 1 line, 140 characters|\n| US RTP                        | 1 line, 140 characters|\n| Push To Card US and Push To Card CA | 1 line, 16 characters (Numbers, alphabets, SPACE and special chars  `-./,$@&amp;` allowed)                      \t|\n| Blockchain - Kinexys Digital Payments System  |1 line, 140 characters |\n| ACH US                        | 1 line, 80 characters |\n| ACH (BACS)                    | 1 line, 18 characters |\n| ACH (SEPA                     | 1 line, 140 characters|"
        valueType:
          type: string
          enum:
          - MARKET_PLACE_NAME
          - SERVICE_COUNTRY_CODE
          - YOUR_REFERENCE
          - TRAVEL_REASON
          - CARD_TRANSACTION_REFERENCE
          description: remittance information type.
    BirthDate:
      title: BirthDate
      type: object
      description: Date of Birth
      properties:
        birthDate:
          type: string
          format: date
          description: "Birth date in `YYYY-MM-DD` format eg. 1984-05-19. \n\n**ACH specific usage conditions:**\n  - When `birthDate` is provided, the country of birth becomes mandatory."
          example: '1984-05-19'
    OtherPaymentReferences:
      type: object
      title: OtherPaymentReferences
      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.
    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
    PaymentDetails:
      title: PaymentDetails
      type: object
      description: A collection of payment details.
      properties:
        payments:
          type: array
          items:
            $ref: '#/components/schemas/PaymentDetail'
          minItems: 1
          maxItems: 25
    Event:
      title: Event notification
      description: Event Notification Data Common Component
      type: object
      required:
      - id
      - specversion
      - type
      - time
      - source
      - data
      properties:
        specversion:
          type: string
          description: 'The version of the CloudEvents specification which the event uses

            '
          default: '1.0'
        id:
          type: string
          description: Unique Event Identifier
        time:
          description: event occurrence timestamp. An RFC-3339 compliant date-time format.
          type: string
          format: date-time
        type:
          description: Type of event being published
          type: string
          example: Payment.Completed
        source:
          description: Identifies the context in which an event happened. Often this will include information such as the type of the event source, the organization publishing the event or the process that produced the event.
          type: string
          format: uri-reference
        dataschema:
          description: URI of the event data schema
          type: string
          format: uri
        data:
          description: 'Data is an arbitrary object, that represents an underlying data being delivered through event notification

            e.g Payment outcome, User onboarding outcome, Beneficiary screening outcome'
          type: object
          title: EventData
    SignedContent:
      title: SignedContent
      type: string
      pattern: ^[A-Za-z0-9_-]+\.([A-Za-z0-9_-]+)\.[A-Za-z0-9_-]+$
      description: "A JWS (JSON Web Signature) Compact Serialization string with an **attached** payload.\n\n**JWS is a [JOSE specification](https://jose.readthedocs.io/en/latest/) that defines a compact,\n  URL-safe means of representing signed content using JSON-based data structures.\n  It ensures that the sender's identity can be verified and that the content has not\n  been tampered with during transmission, providing non-repudiation of interactions\n  between parties.**\n\n**Structure**: `Base64URL(header).Base64URL(payload).Base64URL(signature)`\n\n- **Base64URL(header)** – JOSE header containing `alg` (e.g. RS256), `typ` (JOSE) and optionally `kid`\n- **Base64URL(payload)** – The Request/Response body JSON object, Base64URL-encoded\n- **Base64URL(signature)** – Digital signature computed over the ASCII bytes of header.`payload`\n\n## Attached Payloads\n\n  This API uses **attached** JWS signatures: the payload is embedded in the JWS itself \n  (the middle `payload` segment), and the resulting compact serialization string is \n  sent as the HTTP request/response body. **Detached** payloads (*where the payload \n  is transmitted separately from the JWS*) are not supported.\n\n## Signed Example\n\n<details>\n<summary>Signed Request Payload</summary>\n`eyJhbGciOiJSUzI1NiIsImtpZCI6IjEyMzQ1Njc4OTAiLCJ0eXAiOiJKT1NFIn0.\neyJyZXF1ZXN0ZWRFeGVjdXRpb25EYXRlIjoiMjAyNC0xMC0yMiIsInBheW1lbnRJZGVudGlmaWVycyI6\neyJlbmRUb0VuZElkIjoiVUtGUFNURVNUIn0sInZhbHVlIjp7ImN1cnJlbmN5IjoiR0JQIiwiYW1vdW50\nIjoiMS4wMSJ9LCJ0cmFuc2ZlclR5cGUiOiJDUkVESVQiLCJwYXltZW50VHlwZSI6IlJUUCIsImRlYnRv\nciI6eyJhY2NvdW50Ijp7ImFjY291bnROdW1iZXIiOiIxMjM0NTY3ODkwIn19LCJkZWJ0b3JBZ2VudCI6\neyJmaW5hbmNpYWxJbnN0aXR1dGlvbklkcyI6W3siaWQiOiJDSEFTR0IyTCIsImlkVHlwZSI6IkJJQyJ9\nXX0sImNyZWRpdG9yIjp7ImFjY291bnQiOnsiYWNjb3VudE51bWJlciI6Ijk4NzY1NDMyMSJ9LCJuYW1l\nIjoiR0IgVGVzdCBBY2Njb3VudCJ9LCJjcmVkaXRvckFnZW50Ijp7ImZpbmFuY2lhbEluc3RpdHV0aW9u\nSWRzIjpbeyJpZCI6IjA0MjkyMCIsImlkVHlwZSI6IkNMRUFSSU5HX1NZU1RFTV9JRCJ9XX19.\nSflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c`\n</details>\n\n \n<details>\n<summary>Signed Response Payload</summary>\n`eyJhbGciOiJSUzI1NiIsImtpZCI6IjEyMzQ1Njc4OTAiLCJ0eXAiOiJKT1NFIn0.\n  eyJwYXltZW50SWQiOiI5NTM2NDAxOC1iZTMyLTRjNzEtOTYxOC1mMWNlYmE3OGYyOGMiLCJwYXltZW50\n  U3RhdHVzIjoiQUNDRVBURUQiLCJwYXltZW50U3ViU3RhdHVzIjoiQUNDRVBURUQiLCJzdGF0dXNVcGRh\n  dGVkQXQiOiIyMDI2LTAzLTE3VDA5OjE3OjIzWiIsInJlcXVlc3RlZEV4ZWN1dGlvbkRhdGUiOiIyMDI0\n  LTEwLTIyIiwicGF5bWVudElkZW50aWZpZXJzIjp7ImVuZFRvRW5kSWQiOiJVS0ZQU1RFU1QifSwidHJh\n  bnNmZXJUeXBlIjoiQ1JFRElUIiwicGF5bWVudFR5cGUiOiJSVFAifQ.\n  SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c`\n</details>"
      example: REDACTED.JWT.TOKEN
    IndividualIdentification:
      type: object
      title: Individual Identification
      description: Individual Identification Schemes
      required:
      - individualIds
      properties:
        individualIds:
          type: array
          minItems: 1
          maxItems: 16
          items:
            $ref: '#/components/schemas/IndividualId'
    UnstructuredAddress:
      title: UnstructuredAddress
      type: array
      description: Unstructured Addresses
      minItems: 1
      maxItems: 7
      items:
        type: string
        minLength: 1
        maxLength: 70
    FxInformationReadOnly:
      title: FX Information
      description: Provides information on foreign exchange details
      type: object
      properties:
        exchangeRate:
          $ref: '#/components/schemas/RateDecimal'
        exchangeRateType:
          type: string
          minLength: 1
          maxLength: 20
          description: Specifies the type used to complete the currency exchange.
          example: SPOT
        rateId:
          type: string
          minLength: 1
          maxLength: 36
          description: Rate identifier
        contractId:
          type: string
          minLength: 1
          maxLength: 36
          description: Contract identifier
        appliedRate:
          $ref: '#/components/schemas/Decimal'
    UltimateParty:
      type: object
      title: UltimateParty
      description: The Ultimate Party (*Ultimate Creditor or Ultimate Debtor*)
      additionalProperties: false
      properties:
        partyId:
          $ref: '#/components/schemas/PartyId'
        name:
          type: string
          minLength: 1
          maxLength: 140
          description: "- Mandatory for US RTP and US FEDNOW\n- Mandatory for CA ACH\n- Maximum length constraints:\n    - Push To Card  - 25"
        account:
          $ref: '#/components/schemas/UltimateDebtorAccount'
        countriesOfNationality:
          type: array
          description: ISO 3166-1 alpha-2 Country Code representing the Nationality of an individual.
          items:
            $ref: '#/components/schemas/IsoCountryCode'
          minItems: 1
          maxItems: 5
        dateAndPlaceOfBirth:
          $ref: '#/components/schemas/DateAndPlaceOfBirth'
        countryOfResidence:
          $ref: '#/components/schemas/IsoCountryCode'
        postalAddress:
          $ref: '#/components/schemas/Address'
        contactDetails:
          $ref: '#/components/schemas/ContactDetails'
      example:
        partyId:
          individualIds:
          - individualId: '87654321'
        name: Aisha Khan
        postalAddress:
          addressType: BIZZ
          streetName: Fratton Park
          buildingNumber: '411'
          postalCode: PO48RA
          city: Portsmouth
          country: GB
          countrySubDivision: HAM
    Error:
      type: object
      title: Error
      description: Common Error Model
      properties:
        title:
          type: string
          title: Short humanly-readable title of the error.
          minLength: 1
          maxLength: 100
        httpStatus:
          type: integer
          format: int32
          default: 400
          minimum: 400
          maximum: 503
          title: HTTP Status Code
        traceId:
          type: string
          title: JPMC Assigned traced identifier
          minLength: 55
          maxLength: 128
        requestId:
          type: string
          title: The 'client originated' requestId
          minLength: 1
          maxLength: 128
        context:
          type: array
          title: Provides additional context and detail on the validation errors
          items:
            $ref: '#/components/schemas/ErrorContext'
          minItems: 1
          maxItems: 100
      required:
      - title
      readOnly: true
    AdditionalInstitutions:
      title: AdditionalInstitutions
      type: array
      description: 'Additional Institutions:

        - Applicable to UK RTP and Mexico RTP (foreign remittances)'
      minItems: 1
      maxItems: 10
      items:
        $ref: '#/components/schemas/AdditionalInstitution'
    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       |"
    CreditorPrivateId:
      type: object
      title: Creditor Private Identification
      description: Private Party Identification of a Creditor within the context of a mandate amendment
      properties:
        partyId:
          $ref: '#/components/schemas/PartyId'
        name:
          type: string
          minLength: 1
          maxLength: 140
          description: Name of the party
      example:
        partyId:
          organizationIds:
          - organizationId: '123456'
            schemeName:
              proprietary: JPMCOID
        name: ABAC Plc
    SettlementAccountDetails:
      type: object
      description: Settlement Account Details
      title: Settlement Account Details
      required:
      - accountNumber
      properties:
        accountNumber:
          type: string
          minLength: 1
          maxLength: 128
        accountType:
          $ref: '#/components/schemas/DebtorAccountType'
        accountCurrency:
          $ref: '#/components/schemas/IsoCurrencyCode'
        companyId:
          type: string
          minLength: 1
          maxLength: 35
    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
    Purpose:
      type: object
      title: Purpose
      description: "This field is mandatory for Singapore Faster Payments. Underlying reason for the payment transaction, eg., a charity payment, or  a commercial agreement between the creditor and the debtor. \n\n**Not applicable for** :-\n - UK FPS\n - Push To Card"
      properties:
        code:
          type: string
          minLength: 1
          maxLength: 4
          description: Purpose of the payment in coded form
        proprietary:
          type: string
          minLength: 2
          maxLength: 24
          description: Purpose of the payment in proprietary form
      minProperties: 1
      maxProperties: 1
    PaymentIdentifiers:
      type: object
      title: PaymentIdentifiers
      description: Identifiers associated with the Payment Instruction throughout its lifecycle.
      required:
      - endToEndId
      properties:
        endToEndId:
          $ref: '#/components/schemas/EndToEndId'
        otherPaymentReferences:
          $ref: '#/components/schemas/OtherPaymentReferences'
    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."
    FinancialInstitutionIdType:
      type: string
      enum:
      - BIC
      - USABA
      - SORT_CODE
      - CLEARING_SYSTEM_ID
    View:
      type: string
      enum:
      - SUMMARY
      - FULL
      default: SUMMARY
    PaymentReadOnlyView:
      type: object
      title: Payment
      description: Representation of the payment instruction.
      required:
      - requestedExecutionDate
      - paymentIdentifiers
      - transferType
      - paymentType
      properties:
        requestedExecutionDate:
          type: string
          format: date
          description: "Requested execution date of the payment instruction (e.g. value date) in ISO 8601 `yyyy-mm-dd` format,\n must be either the current or future date.\n- This is the value date for EMEA ACH Payments "
        paymentIdentifiers:
          $ref: '#/components/schemas/PaymentIdentifiersReadOnly'
        value:
          $ref: '#/components/schemas/PaymentValue'
        transferType:
          $ref: '#/components/schemas/TransferType'
        paymentType:
          $ref: '#/components/schemas/PaymentType'
        paymentTypeInformation:
          $ref: '#/components/schemas/PaymentTypeInformation'
        debtor:
          $ref: '#/components/schemas/Party'
        debtorAgent:
          $ref: '#/components/schemas/DebtorAgent'
        creditor:
          $ref: '#/components/schemas/Party'
        creditorAgent:
          $ref: '#/components/schemas/CreditorAgent'
        additionalParties:
          $ref: '#/components/schemas/AdditionalParties'
        paymentPurpose:
          $ref: '#/components/schemas/PaymentPurpose'
        remittanceInformation:
          $ref: '#/components/schemas/RemittanceInformation'
        taxInformation:
          $ref: '#/components/schemas/TaxInformation'
        regulatoryReporting:
          $ref: '#/components/schemas/RegulatoryReporting'
        settlementInformation:
          $ref: '#/components/schemas/SettlementInformation'
        mandateInformation:
          $ref: '#/components/schemas/MandateInformation'
        fxInformation:
          $ref: '#/components/schemas/FxInformationReadOnly'
        secureVerification:
          type: array
          description: Applies only for Interac proxy payments
          minItems: 1
          maxItems: 100
          items:
            $ref: '#/components/schemas/SecureVerification'
        paymentExpiresAt:
          type: string
          format: date-time
          description: Applies only for Interac proxy Payments. Format expected - ISO 8601 `YYYY-MM-DDThh:mm:ss`+/-time offset to UTC
        chargesInformation:
          $ref: '#/components/schemas/ChargesInformation'
    RegulatoryReporting:
      title: RegulatoryReporting
      type: object
      description: Regulatory reporting information
      minProperties: 1
      properties:
        authority:
          type: object
          title: Authority
          description: Capture details about the authority requiring the regulatory reporting information
          properties:
            name:
              type: string
              description: Name of the authority
              minLength: 1
              maxLength: 140
            country:
              type: string
              description: ISO 3166-1 Alpha-2 Country Code
              minLength: 2
              maxLength: 2
              pattern: ^[A-Z]{2}$
              example: AU
        details:
          type: array
          description: Detailed information for the regulatory reporting
          items:
            type: object
            properties:
              type:
                type: string
                description: Type of information supplied
                minLength: 1
                maxLength: 35
              country:
                type: string
                description: ISO 3166-1 Alpha-2 Country Code
                minLength: 2
                maxLength: 2
                pattern: ^[A-Z]{2}$
                example: AU
              code:
                type: string
                description: Specifies the nature, purpose, and reason for the transaction to be reported for regulatory and statutory requirements in a coded form
                minLength: 1
                maxLength: 10
              additionalInfo:
                type: array
                description: Additional information that cater for specific domestic regulatory requirements
                items:
                  type: string
                  minLength: 1
                  maxLength: 35
                minItems: 0
                maxItems: 100
          minItems: 1
          maxItems: 100
    RemittanceInformation:
      type: object
      title: RemittanceInformation
      description: Mandatory for Malaysia NPP Payments, optional for other markets
      properties:
        unstructuredInformation:
          type: array
          description: Remittance information provided in an unstructured format
          minItems: 1
          maxItems: 100
          items:
            $ref: '#/components/schemas/UnstructuredInformation'
        structuredInformation:
          type: array
          description: 'Remittance information provided in a structured format


            Applicable Faster Payment Markets:

            - Malaysia

            - US'
          minItems: 1
          maxItems: 100
          items:
            $ref: '#/components/schemas/StructuredInformation'
        agentInstructions:
          title: Agent instructions
          type: object
          description: Agent instructions required for the payment transfer
          properties:
            nextAgentInstructions:
              $ref: '#/components/schemas/AgentInstructions'
            creditorAgentInstructions:
              $ref: '#/components/schemas/AgentInstructions'
            debtorAgentInstructions:
              $ref: '#/components/schemas/AgentInstructions'
        foreignCurrency:
          $ref: '#/components/schemas/IsoCurrencyCode'
          description: Only applicable for Mexico Faster Payments
        fx:
          $ref: '#/components/schemas/Fx'
    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
 

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