Payment Initiation Service

Enable and manage payments, refunds, withdrawals, and provider connectivity across multiple markets using secure open banking infrastructure.

OpenAPI Specification

jp-morgan-chase-payment-initiation-service-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%2Fpay-by-bank%2Fpis-oas.md
# generated: '2026-07-28'
openapi: 3.0.1
info:
  title: Payment Initiation Service
  version: 2.0.8
  description: Enable and manage payments, refunds, withdrawals, and provider connectivity across multiple
    markets using secure open banking infrastructure.
  contact:
    name: JPMorgan Chase & Co. API Support
    url: https://apistore.jpmchase.net/support/contact
    email: imsd.security.operations@jpmorgan.com
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
tags:
- name: Payments
  description: Pay By Bank - Payments
- name: Payouts
  description: Pay By Bank - PayoutsPayments
- name: Connectivity
  description: Pay By Bank - Connectivity
paths:
  /payments:
    post:
      summary: Initiate Payments
      description: Initiates a payment request to setup the money movement.
      tags:
      - Payments
      operationId: createPayment
      parameters:
      - name: Idempotency-Key
        in: header
        required: true
        description: 'Client provided unique Idempotency Key.   **NOTE**:  *Creation of unique keys is
          up to the client, but usage of V4 UUIDs is suggested,   or another random string to avoid collisions.*'
        schema:
          $ref: '#/components/schemas/UniqueResourceIdentifier'
        examples:
          PaymentsUKRTP:
            value: 1b036f9c-8c84-4ce6-b1dd-5979472945a1
          PaymentsGermanyRTP:
            value: 1b036f9c-8c84-4ce6-b1dd-5979472945a2
          PaymentsFranceRTP:
            value: 1b036f9c-8c84-4ce6-b1dd-5979472945a3
          PaymentsItalyRTP:
            value: 1b036f9c-8c84-4ce6-b1dd-5979472945a4
          PaymentsSpainRTP:
            value: 1b036f9c-8c84-4ce6-b1dd-5979472945a5
          PaymentsSwedenRTP:
            value: 1b036f9c-8c84-4ce6-b1dd-5979472945a6
          PaymentsNorwayRTP:
            value: 1b036f9c-8c84-4ce6-b1dd-5979472945a7
      requestBody:
        description: Representation of a Payment Request
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Payments'
            examples:
              PaymentsUKRTP:
                summary: Sample Payment Request - RTP UK
                value:
                  paymentAmount:
                    value: '100.00'
                    currency: GBP
                  paymentType: REAL_TIME_PAYMENTS
                  market: GB
                  redirectURL: https://sites.obtest.com/sites/cib
                  debtor:
                    name: Bala Thandapani
                  creditor:
                    name: Newgen Media LLC
                    account:
                      accountId: 06090887654321
                      accountIdType: SORT_CODE
                  reference: 'subscription - #78004300'
              PaymentsGermanyRTP:
                summary: Sample Payment Request - RTP Germany
                value:
                  paymentAmount:
                    value: '150.00'
                    currency: EUR
                  paymentType: REAL_TIME_PAYMENTS
                  market: DE
                  redirectURL: https://sites.obtest.com/sites/cib
                  debtor:
                    name: Joshua Sundar
                    account:
                      accountId: DE89370400440532013000
                      accountIdType: IBAN
                  creditor:
                    name: Newgen Media LLC
                    account:
                      accountId: DE89370400440532013987
                      accountIdType: IBAN
                  reference: 'subscription - #99604300'
              PaymentsFranceRTP:
                summary: Sample Payment Request - RTP France
                value:
                  paymentAmount:
                    value: '90.00'
                    currency: EUR
                  paymentType: REAL_TIME_PAYMENTS
                  market: FR
                  redirectURL: https://sites.obtest.com/sites/cib
                  debtor:
                    name: Saheed Osupa
                    account:
                      accountId: FR1420041010050500013M02606
                      accountIdType: IBAN
                  creditor:
                    name: Newgen Media LLC
                    account:
                      accountId: FR1420041010050500013M02987
                      accountIdType: IBAN
                  reference: 'subscription - #12504300'
              PaymentsItalyRTP:
                summary: Sample Payment Request - RTP Italy
                value:
                  paymentAmount:
                    value: '50.00'
                    currency: EUR
                  paymentType: REAL_TIME_PAYMENTS
                  market: IT
                  redirectURL: https://sites.obtest.com/sites/cib
                  debtor:
                    name: Roberto Molli
                    account:
                      accountId: IT60X0542811101000000123456
                      accountIdType: IBAN
                  creditor:
                    name: Newgen Media LLC
                    account:
                      accountId: IT60X0542811101000000123987
                      accountIdType: IBAN
                  reference: 'subscription - #78158300'
              PaymentsSpainRTP:
                summary: Sample Payment Request - RTP Spain
                value:
                  paymentAmount:
                    value: '85.00'
                    currency: EUR
                  paymentType: REAL_TIME_PAYMENTS
                  market: ES
                  redirectURL: https://sites.obtest.com/sites/cib
                  debtor:
                    name: Abdul Rahman
                  creditor:
                    name: Newgen Media LLC
                    account:
                      accountId: ES9121000418450200051987
                      accountIdType: IBAN
                  reference: 'subscription - #79694300'
              PaymentsSwedenRTP:
                summary: Sample Payment Request - RTP Sweden
                value:
                  paymentAmount:
                    value: '105.00'
                    currency: EUR
                  paymentType: REAL_TIME_PAYMENTS
                  market: SE
                  redirectURL: https://sites.obtest.com/sites/cib
                  debtor:
                    name: Jenifer Laurence
                    account:
                      accountId: SE4550000000058398257466
                      accountIdType: IBAN
                  creditor:
                    name: Newgen Media LLC
                    account:
                      accountId: SE4550000000058398257987
                      accountIdType: IBAN
                  reference: 'subscription - #79694300'
              PaymentsNorwayRTP:
                summary: Sample Payment Request - RTP Norway
                value:
                  paymentAmount:
                    value: '105.00'
                    currency: EUR
                  paymentType: REAL_TIME_PAYMENTS
                  market: 'NO'
                  redirectURL: https://sites.obtest.com/sites/cib
                  debtor:
                    name: Mary KOM
                    account:
                      accountId: NO9386011117947
                      accountIdType: IBAN
                  creditor:
                    name: Newgen Media LLC
                    account:
                      accountId: NO9386011117987
                      accountIdType: IBAN
                  reference: 'subscription - #79694300'
      responses:
        '202':
          $ref: '#/components/responses/202-Accepted'
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '409':
          $ref: '#/components/responses/409-Conflict'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
      callbacks:
        paymentStatus:
          '{client-url}/status':
            post:
              description: Callback message to notify clients about the payment status
              requestBody:
                $ref: '#/components/requestBodies/PaymentsCallback'
              responses:
                '204':
                  description: Callback received successfully
  /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'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
  /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'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
  /payouts:
    post:
      tags:
      - Payouts
      summary: Create Payouts
      operationId: createPayout
      description: 'Creates a payout for a specific payment transaction as a refund or a withdrawal.


        > The Pay By Bank - Payouts API facilitates businesses to carry out payments to beneficiaries
        efficiently within the context of Open Banking. By capitalizing on the secure infrastructure of
        Open Banking, it offers a robust, streamlined, and secure mechanism to process payouts, categorized
        into two types - Refunds and Withdrawals.

        '
      requestBody:
        description: Representation of a Payout Request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Payout'
            examples:
              PayoutRefundRequest:
                value:
                  payoutReference: Refund 220-1z008
                  payoutType: REFUND
                  payoutReason: PARTIAL_REFUND
                  payoutAmount:
                    value: '10.50'
                    currency: EUR
                  paymentType: REAL_TIME_PAYMENTS
                  sourcePaymentId: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea
              PayoutWithdrawalRequest:
                value:
                  payoutReference: Payout 221-1x009
                  payoutType: WITHDRAWAL
                  payoutReason: WITHDRAWAL
                  payoutAmount:
                    value: '20.50'
                    currency: GBP
                  paymentType: REAL_TIME_PAYMENTS
                  sourcePaymentId: 1b036f9c-8c84-4ce6-b1dd-5979472945a1
      parameters:
      - name: Idempotency-Key
        in: header
        description: "Client provided unique Idempotency Key.\n          \n          \n**NOTE**:  *Creation\
          \ of unique keys is up to the client, but usage of V4 UUIDs is suggested, \n          \nor another\
          \ random string to avoid collisions.*"
        schema:
          $ref: '#/components/schemas/UniqueResourceIdentifier'
        examples:
          PayoutRefundRequest:
            value: 1b036f9c-8c84-4ce6-b1dd-5979472945a1
          PayoutWithdrawalRequest:
            value: 1b036f9c-8c84-4ce6-b1dd-5979472945a2
        required: true
      responses:
        '202':
          $ref: '#/components/responses/20x-PayoutResponse'
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '409':
          $ref: '#/components/responses/409-Conflict'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
      callbacks:
        payoutStatus:
          '{client-url}/status':
            post:
              description: Callback message to notify clients about the payout status
              requestBody:
                $ref: '#/components/requestBodies/PayoutsCallback'
              responses:
                '204':
                  description: Callback received successfully
  /payouts/{id}:
    get:
      tags:
      - Payouts
      summary: Retrieve Payouts
      operationId: getPayoutId
      description: 'Retrieves the details of a given payout by Id.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: A unique ID of the payout
        schema:
          $ref: '#/components/schemas/UniqueResourceIdentifier'
        examples:
          PayoutRefundCompleted:
            value: a14a49b4-b21e-416e-ab8d-c0e57efbd2ea
      responses:
        '200':
          $ref: '#/components/responses/200-PayoutStatusResponse'
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
  /providers:
    get:
      summary: List providers for a market
      responses:
        '200':
          $ref: '#/components/responses/200-OK-Providers'
      operationId: getProviders
      description: Lists all providers on a specified market.
      parameters:
      - name: market
        in: query
        description: The ISO 3166-1 alpha-2 market code.
        required: true
        schema:
          $ref: '#/components/schemas/Market'
        examples:
          ProviderListDE:
            value: DE
      tags:
      - Connectivity
components:
  requestBodies:
    PaymentsCallback:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PaymentResponse'
          examples:
            Sample Callback Request UK RTP:
              $ref: '#/components/examples/PaymentResponseUKRTP'
            Sample Callback Request Germany RTP:
              $ref: '#/components/examples/PaymentResponseGermanyRTP'
            Sample Callback Request Sweden RTP:
              $ref: '#/components/examples/PaymentResponseSwedenRTP'
            Sample Callback Request France RTP:
              $ref: '#/components/examples/PaymentResponseFranceRTP'
            Sample Callback Request Italy RTP:
              $ref: '#/components/examples/PaymentResponseItalyRTP'
            Sample Callback Request Spain RTP:
              $ref: '#/components/examples/PaymentResponseSpainRTP'
            Sample Callback Request Norway RTP:
              $ref: '#/components/examples/PaymentResponseNorwayRTP'
      required: true
      description: 'Representation of Payments Callback '
    PayoutsCallback:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Payout'
          examples:
            Sample Callback Request - Refund:
              $ref: '#/components/examples/PayoutRefundResponse'
            Sample Callback Request - Withdrawal:
              $ref: '#/components/examples/PayoutWithdrawalResponse'
      required: true
      description: Representation of Payout Callback
  parameters:
    PaymentId:
      in: path
      description: A unique ID of the payment
      name: id
      schema:
        $ref: '#/components/schemas/UniqueResourceIdentifier'
      required: true
    IdempotencyKey:
      in: header
      description: "Client provided unique Idempotency Key.\n              \n              \n**NOTE**:\
        \  *Creation of unique keys is up to the client, but usage of V4 UUIDs is suggested, \n      \
        \        \nor another random string to avoid collisions.*"
      name: Idempotency-Key
      schema:
        $ref: '#/components/schemas/UniqueResourceIdentifier'
      required: true
    PayoutId:
      name: id
      in: path
      description: A unique ID of the payout
      required: true
      schema:
        $ref: '#/components/schemas/UniqueResourceIdentifier'
    Market:
      name: market
      in: query
      description: The ISO 3166-1 alpha-2 market code.
      required: true
      schema:
        $ref: '#/components/schemas/Market'
  schemas:
    Payments:
      title: Payments
      type: object
      properties:
        paymentAmount:
          $ref: '#/components/schemas/PaymentAmount'
        paymentType:
          $ref: '#/components/schemas/PaymentType'
        market:
          $ref: '#/components/schemas/Market'
        redirectURL:
          type: string
          format: uri-reference
          description: An optional re-direct URL of the merchant where the end-user will be redirected
            to once they have successfully authorized the payment with their bank or financial institution.
        debtor:
          $ref: '#/components/schemas/Debtor'
        creditor:
          $ref: '#/components/schemas/Creditor'
        reference:
          $ref: '#/components/schemas/Reference'
        providerName:
          $ref: '#/components/schemas/ProviderName'
      required:
      - paymentAmount
      - paymentType
      - market
      - creditor
      - reference
    PaymentResponseMetadata:
      title: PaymentResponseMetadata
      type: object
      properties:
        id:
          $ref: '#/components/schemas/PaymentId'
        status:
          type: string
          description: "The status of the submitted payment request\n\n**Refer to the table below for\
            \ the supported statuses**:\n\n  | Status        | Description                           \
            \                                              |\n  | --------------|-------------------------------------------------------------------------------------|\n\
            \  | **NONE**      | The initial status for a payment. Indicates nothing has happened yet\
            \                |\n  | **SENT**      | Payment has been SENT                            \
            \                                   |\n  | **SETTLED**  | The Payment was seen on recipient's\
            \ account                                         |\n  | **FAILED**    | Attempt ended with\
            \ error status. The details can be found in statusMessage field    |\n  | **CANCELLED** |\
            \ The Payment was unsucessful due to an unexpected error e.g. a user fails to authorize a\
            \ payment. |"
        statusUpdatedAt:
          $ref: '#/components/schemas/StatusUpdatedAt'
        statusMessage:
          type: string
          description: 'A textual description of the status.


            ***NOTE: Only applicable when the status is FAILED or CANCELLED***'
          minLength: 1
          maxLength: 128
        createdAt:
          type: string
          format: date-time
          description: Indicates when the Payment request was created in the system. Follows ISO date
            time format.
        paymentLinkURL:
          type: string
          format: uri-reference
          description: An HTTPS URL to make the payment
        paymentQRCode:
          type: string
          description: An HTTPS URL to download the QR code image to make the payment.
        acknowledged:
          type: string
          description: Indicates if the payment has been acknowledged or not.
          readOnly: true
          default: UNKNOWN
          enum:
          - ACKNOWLEDGED
          - NOT_ACKNOWLEDGED
          - UNKNOWN
    PaymentResponse:
      allOf:
      - $ref: '#/components/schemas/PaymentResponseMetadata'
      - $ref: '#/components/schemas/Payments'
    PaymentId:
      allOf:
      - type: string
        description: A unique identifier of the payment
      - $ref: '#/components/schemas/UniqueResourceIdentifier'
    StatusUpdatedAt:
      title: StatusUpdatedAt
      type: string
      format: date-time
      description: The last updated date and time of the status, in ISO 8601 format.
    Reference:
      title: Reference
      type: string
      description: A free text field that can be used to provide a meaningful reference for a payment
        transaction
      minLength: 1
      maxLength: 35
    PaymentType:
      type: string
      description: "The type of payment.\n\n  List of supported payment types, their usage and categorization\
        \ by region:\n\n  Payment Type             | Description\n  -------------------------|-----------------------------------------------------------------------\n\
        \  **REAL_TIME_PAYMENTS**   | *Real-time Payments (Instant)* - `FASTER_PAYMENTS`, `SEPA_INSTANT_CREDIT_TRANSFER`\n\
        \  **LOW_VALUE_PAYMENTS**    | *Low-value Retail Payments* -  `BACS`, `SEPA_CREDIT_TRANSFER`\n\
        \  **HIGH_VALUE_PAYMENTS** | *High Value Business Payments* -  `CHAPS`\n  ---\n\n | | **Real-time\
        \ Payments (INSTANT)**       | **Low Value Payments** | **High-Value Payments**    |\n |:-----------------:|:--------------------------------------:|:--------------------------------------:|:----------------------------------:|\n\
        \ | **UK**            | Faster Payments                        |           BACS              \
        \       | CHAPS |\n | **SEPA**          | SEPA Instant Credit Transfer           | SEPA Credit\
        \ Transfer |                       |\n\n **Real-time payments**: refer to payment solutions that\
        \ process and settle financial transactions in real-time, typically within seconds, without any\
        \ waiting period.\n\n **Low-value payments**: pertain to high-volume, low-value transactions mainly\
        \ conducted by individuals or businesses for day-to-day expenses. These payments are usually processed\
        \ in batches, not in real-time.\n\n **High Value Payments**: refer to large-sum transactions that\
        \ are typically exchanged between banks or financial institutions."
      enum:
      - REAL_TIME_PAYMENTS
      - LOW_VALUE_PAYMENTS
      - HIGH_VALUE_PAYMENTS
    Creditor:
      title: Creditor
      type: object
      description: The recipient of funds in the context of a payment.
      allOf:
      - $ref: '#/components/schemas/Party'
      required:
      - name
      - account
    Party:
      title: Party
      type: object
      description: Representation of a **Sender** or **Recipient** of funds within the context of a payment.
      properties:
        name:
          $ref: '#/components/schemas/Name'
        account:
          $ref: '#/components/schemas/Account'
    ISOCurrencyCode:
      title: ISOCurrencyCode
      description: '**Currency of the money movement**: a 3 alpha character ISO 4217 currency code.'
      type: string
      minLength: 3
      maxLength: 3
      pattern: ^[A-Z]{3}$
      example: EUR
    Value:
      title: Value
      type: string
      minLength: 3
      maxLength: 18
      pattern: ^(\d{1,15})\.(\d{2})$
      example: '10.50'
      description: The value representation of a monetary amount. The amount value should be more than
        0.01 with maximum of two decimal places allowed.
    AccountId:
      title: AccountId
      type: string
      minLength: 6
      maxLength: 34
      description: "Debtor account number as identified by the bank or financial institution.\n\n**Maximum\
        \ length supported for each instrument and market. Refer to the table below**\n\n  | Market  \
        \                           | Maximum field length                                          |\n\
        \  | -----------------------------------|---------------------------------------------------------------|\n\
        \  | United Kingdom |\t14 ( 6 digit Sort Code and 8 digit Account Number - 7 digit A/C numbers\
        \ should be padded with a leading zero) |\n  | SEPA           |  34 (IBAN)                   \
        \                                 |"
    Debtor:
      title: Debtor
      type: object
      description: 'The party that pays for goods and services or sends funds.

        *The debtor IBAN can be prefilled by the payment initiator:*

        - If prefilled, the user will not be allowed to change the IBAN afterwards.

        - The account selection experience will be skipped.'
      allOf:
      - $ref: '#/components/schemas/Party'
    Name:
      title: Name
      type: string
      description: Name
      minLength: 1
      maxLength: 140
    AccountIdType:
      title: AccountIdType
      type: string
      description: The account identifier type
      enum:
      - SORT_CODE
      - IBAN
    Account:
      title: Account
      type: object
      description: Captures account information
      properties:
        accountId:
          $ref: '#/components/schemas/AccountId'
        accountIdType:
          $ref: '#/components/schemas/AccountIdType'
      required:
      - accountId
      - accountIdType
    Error:
      title: Error
      type: object
      description: The error object returned by the API.
      properties:
        title:
          type: string
          description: Short humanly-readable title of the error
          minLength: 1
          maxLength: 99
        httpStatus:
          type: integer
          format: int32
          description: HTTP Status Code
        traceId:
          type: string
          description: JPMC assigned trace identifier
          minLength: 1
          maxLength: 99
        requestId:
          type: string
          description: The client originated requestId
          minLength: 1
          maxLength: 99
        context:
          type: array
          description: Provides additional context and detail on the validation errors
          minItems: 1
          maxItems: 99
          items:
            $ref: '#/components/schemas/ErrorContext'
      required:
      - title
    ErrorContext:
      title: ErrorContext
      type: object
      properties:
        code:
          type: string
          description: JPMC Short code that identifies the error - publicly cataloged and documented
          minLength: 5
          maxLength: 5
        message:
          type: string
          description: Humanly readable textual description of the error
          minLength: 1
          maxLength: 99
        location:
          type: string
          description: The location of the error occurred in the request.
          enum:
          - BODY
          - PATH
          - QUERY
          - HEADER
          minLength: 1
          maxLength: 99
        field:
          type: string
          description: The field which caused the error. Where the location of error occurred is BODY
            the field would contain the JSON Path expression
          minLength: 1
          maxLength: 99
      required:
      - message
    PayoutDetails:
      title: PayoutDetails
      description: Representation of a Payout and associated metadata.
      allOf:
      - $ref: '#/components/schemas/PayoutMetadata'
      - $ref: '#/components/schemas/Payout'
    PayoutMetadata:
      title: PayoutMetadata
      description: Representation of a Payout Metadata
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the payout
          example: 0f7d8749-555e-41fc-a947-98bca7f7310b
          readOnly: true
        status:
          type: string
          description: "Status of the payout\r\n\r\n\r\n**VALUE**      | DESCRIPTION              | \r\
            \n-----------|--------------------------|\r\n **PENDING**   | Default status           |\r\
            \n **COMPLETED** | Payout was successful    |\r\n **FAILED**    | Payout failed to complete|\r\
            \n\t\r\n\r\n"
          example: PENDING
          readOnly: true
        statusUpdatedAt:
          $ref: '#/components/schemas/StatusUpdatedAt'
        createdAt:
          type: string
          format: date-time
          description: The date and time the payout was initiated, in ISO 8601 format.
          example: '2023-07-24T14:15:22Z'
          readOnly: true
      required:
      - id
    Payout:
      title: Payout
      description: Representation of a Payout
      type: object
      properties:
        payoutReference:
          type: string
          description: External Payout reference set by a merchant, must be between 6-18 characters long.
          minLength: 6
          maxLength: 18
          example: Refund 220-1z008
        payoutType:
          type: string
          description: "The type of payout being requested.\n\n  | Payout        | Description       \
            \                                                                                        \
            \                              |\n  | --------------|-----------------------------------------------------------------------------------------------------------------------------------------|\n\
            \  | **REFUND**      | This represents a repayment of a specific amount to a customer, usually\
            \ as a result of overpayment or product/service dissatisfaction.|\n  | **WITHDRAWAL**  | A\
            \ payment from a merchant account to the same payment details previously used to make a payment\
            \ to the merchant account. This is also known as a closed-loop payout."
          enum:
          - REFUND
          - WITHDRAWAL
        payoutAmount:
          $ref: '#/components/schemas/PayoutAmount'
        paymentType:
          $ref: '#/components/schemas/PaymentType'
        sourcePaymentId:
          allOf:
          - type: string
            description: The source payment identifier associated with an earlier initiated payment, which
              can be used to determine the payee.
          - $ref: '#/components/schemas/UniqueResourceIdentifier'
        payoutReason:
          description: Payout/refund reason
          type: string
          enum:
          - WITHDRAWAL
          - REFUND
          - PARTIAL_REFUND
          - DUPLICATE
      required:
      - payoutReference
      - payoutType
      - paymentType
      - payoutAmount
      - sourcePaymentId
    PayoutAmount:
      title: PayoutAmount
      description: The amount value and currency of a payout.Amount should be more than 0.01 with maximum
        of two decimal places allowed.
      type: object
      properties:
        value:
          $ref: '#/components/schemas/Value'
        currency:
          $ref: '#/components/schemas/ISOCurrencyCode'
      required:
      - value
      - currency
    PaymentAmount:
      title: PaymentAmount
      type: object
      description: "The amount value and currency of a payment amount should be more than 0.01 with maximum\
        \ of two decimal places allowed.\n\n**Payment amount limits vary depending upon markets and financial\
        \ institutions.**\n\n**Refer to the table below for current limits.**\n\n  | Market          \
        \                   | Payment limits (per transaction)| Reference|\n  | -----------------------------------|---------------------------------|----------|\n\
        \  | United Kingdom (FASTER_PAYMENTS)   | GBP 1,000,000                   | Refer to [Pay UK FPS\
        \ Transactio

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