Accounts API

Manage your accounts programmatically. Create new accounts, retrieve details and balances, and organize all your client accounts in one place. This allows you to automate account operations and keep your financial data up to date with ease.

OpenAPI Specification

jp-morgan-chase-accounts-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%2Fembedded-finance-solutions%2Fembedded-payments%2Fembedded-payments%2Faccounts.md
# generated: '2026-07-28'
openapi: 3.0.1
info:
  title: Accounts API
  version: 2.0.55
  description: Manage your accounts programmatically. Create new accounts, retrieve details and balances,
    and organize all your client accounts in one place. This allows you to automate account operations
    and keep your financial data up to date with ease.
  contact:
    name: JPMC Technical Services Support
servers:
- url: https://api.payments.jpmorgan.com/embedded/v2
  description: PRODUCTION - MTLS
- url: https://api-mock.payments.jpmorgan.com/embedded/v2
  description: MOCK
- url: https://api-sandbox.payments.jpmorgan.com/embedded/v2
  description: CLIENT TESTING - MTLS
tags:
- name: Accounts
  description: Create, organize and manage accounts.
- name: Account Restrictions
  description: Add, Remove restrictions on the accounts.
paths:
  /accounts:
    get:
      summary: List accounts
      description: Returns a list of accounts for a specific client.
      operationId: getAccountsListV2
      parameters:
      - $ref: '#/components/parameters/clientIdInQuery'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageNo'
      tags:
      - Accounts
      responses:
        '200':
          description: List of accounts for a specific client
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAccountsListResponseV2'
              examples:
                GetAccountsListResponseV2:
                  $ref: '#/components/examples/GetAccountsListResponseV2'
        '400':
          $ref: '#/components/responses/400V2'
        '401':
          $ref: '#/components/responses/401V2'
        '403':
          $ref: '#/components/responses/403V2'
        '404':
          $ref: '#/components/responses/404V2'
        '500':
          $ref: '#/components/responses/500V2'
        '503':
          $ref: '#/components/responses/503V2'
    post:
      summary: Create account
      description: Create an account for a specific client
      operationId: postAccountsV2
      parameters:
      - $ref: '#/components/parameters/configurationIdInHeader'
      - $ref: '#/components/parameters/requestIdInHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAccountRequestV2'
            examples:
              Create an account of type SUMMARY_ACCOUNT:
                $ref: '#/components/examples/CreateSummaryAccount'
              Create an account of type TRANSACTION_ACCOUNT:
                $ref: '#/components/examples/CreateTransactionAccount'
              Create an account of type LIMITED_DDA:
                $ref: '#/components/examples/CreateLimitedDdaAccount'
              Create an account of type LIMITED_DDA_PAYMENTS:
                $ref: '#/components/examples/CreateLimitedDdaPaymentsAccount'
      tags:
      - Accounts
      responses:
        '202':
          description: Account Request Accepted
          headers:
            request-id:
              $ref: '#/components/headers/requestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAccountResponseV2'
              examples:
                Create an account of type SUMMARY_ACCOUNT:
                  $ref: '#/components/examples/CreateSummaryAccountRequestResponse'
                Create an account of type TRANSACTION_ACCOUNT:
                  $ref: '#/components/examples/CreateTransactionAccountRequestResponse'
                Create an account of type LIMITED_DDA:
                  $ref: '#/components/examples/CreateLimitedDdaAccountResponse'
                Create an account of type LIMITED_DDA_PAYMENTS:
                  $ref: '#/components/examples/CreateLimitedDdaPaymentsAccountResponse'
        '400':
          $ref: '#/components/responses/400V2'
        '401':
          $ref: '#/components/responses/401V2'
        '403':
          $ref: '#/components/responses/403V2'
        '404':
          $ref: '#/components/responses/404V2'
        '500':
          $ref: '#/components/responses/500V2'
        '503':
          $ref: '#/components/responses/503V2'
  /accounts/{id}:
    parameters:
    - $ref: '#/components/parameters/configurationIdInHeader'
    - $ref: '#/components/parameters/requestIdInHeader'
    - $ref: '#/components/parameters/accountIdInPath'
    get:
      summary: Get account
      description: Look up a single account by account ID
      operationId: getAccountsV2
      tags:
      - Accounts
      responses:
        '200':
          description: Account Details
          headers:
            request-id:
              $ref: '#/components/headers/requestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAccountResponseV2'
              examples:
                Get an account details (SUMMARY_ACCOUNT):
                  $ref: '#/components/examples/GetSummaryAccountResponse'
                Get an account details (TRANSACTION_ACCOUNT):
                  $ref: '#/components/examples/GetTransactionAccountResponse'
                Get an account details (PAYIN account):
                  $ref: '#/components/examples/GetPayinAccountResponse'
                Get an account details (DEFAULT account):
                  $ref: '#/components/examples/GetDefaultAccountResponse'
                Get an account details (MANAGEMENT account):
                  $ref: '#/components/examples/GetManagementAccountResponse'
                Get an account details (PROCESSING account):
                  $ref: '#/components/examples/GetProcessingAccountResponse'
                Get an account details (PROCESSING_OFFSET account):
                  $ref: '#/components/examples/GetProcessingOffsetAccountResponse'
                Get an account details (CLIENT_OFFSET account):
                  $ref: '#/components/examples/GetClientOffsetAccountResponse'
                Get an account details (DDA account):
                  $ref: '#/components/examples/GetDdaAccountResponse'
                Get an account details (CLIENT_DDA account):
                  $ref: '#/components/examples/GetClientDdaAccountResponse'
                Get an account details (LIMITED_DDA account):
                  $ref: '#/components/examples/GetLimitedDDAAccountResponse'
                Get closed account details (LIMITED_DDA account):
                  $ref: '#/components/examples/GetClosedLimitedDDAAccountResponse'
                Get an account details (LIMITED_DDA_PAYMENTS account):
                  $ref: '#/components/examples/GetLimitedDdaPaymentsAccountResponse'
        '400':
          $ref: '#/components/responses/400V2'
        '401':
          $ref: '#/components/responses/401V2'
        '403':
          $ref: '#/components/responses/403V2'
        '404':
          $ref: '#/components/responses/404V2'
        '500':
          $ref: '#/components/responses/500V2'
        '503':
          $ref: '#/components/responses/503V2'
    patch:
      summary: Manage account
      description: Manage account
      operationId: manageAccountsV2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageAccountRequestV2'
            examples:
              Manage an account of type TRANSACTION_ACCOUNT:
                $ref: '#/components/examples/ManageTransactionAccount'
      tags:
      - Accounts
      responses:
        '202':
          description: Account request accepted
          headers:
            request-id:
              $ref: '#/components/headers/requestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageAccountResponseV2'
              examples:
                Manage an account of type TRANSACTION_ACCOUNT:
                  $ref: '#/components/examples/examples-ManageTransactionAccount'
        '400':
          $ref: '#/components/responses/400V2'
        '401':
          $ref: '#/components/responses/401V2'
        '403':
          $ref: '#/components/responses/403V2'
        '404':
          $ref: '#/components/responses/404V2'
        '500':
          $ref: '#/components/responses/500V2'
        '503':
          $ref: '#/components/responses/503V2'
  /accounts/{id}/balances:
    parameters:
    - $ref: '#/components/parameters/configurationIdInHeader'
    - $ref: '#/components/parameters/requestIdInHeader'
    - $ref: '#/components/parameters/accountIdInPath'
    get:
      summary: Get an account balance
      description: Get the balance details for an account
      operationId: getAccountBalance
      tags:
      - Accounts
      responses:
        '200':
          description: Account balance details
          headers:
            request-id:
              $ref: '#/components/headers/requestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountBalanceResponseV2'
              examples:
                GetAccountBalanceDetailsTransactionAccount:
                  $ref: '#/components/examples/GetAccountBalanceDetailsTransactionAccount'
                GetAccountBalanceDetailsPayin:
                  $ref: '#/components/examples/GetAccountBalanceDetailsPayin'
                GetAccountBalanceDetailsDefault:
                  $ref: '#/components/examples/GetAccountBalanceDetailsDefault'
                GetAccountBalanceDetailsManagement:
                  $ref: '#/components/examples/GetAccountBalanceDetailsManagement'
                GetAccountBalanceDetailsProcessing:
                  $ref: '#/components/examples/GetAccountBalanceDetailsProcessing'
                GetAccountBalanceDetailsProcessingOffset:
                  $ref: '#/components/examples/GetAccountBalanceDetailsProcessingOffset'
                GetAccountBalanceDetailsClientOffset:
                  $ref: '#/components/examples/GetAccountBalanceDetailsClientOffset'
                GetAccountBalanceDetailsLimitedDDA:
                  $ref: '#/components/examples/GetAccountBalanceDetailsLimitedDDA'
                GetAccountBalanceDetailsLimitedDDAPayments:
                  $ref: '#/components/examples/GetAccountBalanceDetailsLimitedDDAPayments'
        '400':
          $ref: '#/components/responses/400V2'
        '401':
          $ref: '#/components/responses/401V2'
        '403':
          $ref: '#/components/responses/403V2'
        '404':
          $ref: '#/components/responses/404V2'
        '500':
          $ref: '#/components/responses/500V2'
        '503':
          $ref: '#/components/responses/503V2'
  /accounts/{id}/restrictions:
    parameters:
    - $ref: '#/components/parameters/configurationIdInHeader'
    - $ref: '#/components/parameters/requestIdInHeader'
    - $ref: '#/components/parameters/accountIdInPath'
    post:
      summary: Add a new restriction on an account
      description: Post an account restriction request to add a new restriction on an account.
      operationId: addAccountRestriction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddAccountRestrictionRequestV2'
            examples:
              Add a DIRECT_DEBIT restriction on a LIMITED_DDA_PAYMENTS account:
                $ref: '#/components/examples/AddDirectDebitRestrictionRequest'
              Add a DEBITS restriction on a TRANSACTION_ACCOUNT:
                $ref: '#/components/examples/AddDebitsRestrictionRequest'
              Add a CREDITS restriction on a TRANSACTION_ACCOUNT:
                $ref: '#/components/examples/AddCreditsRestrictionRequest'
              Add a DEBIT_CREDIT restriction on a TRANSACTION_ACCOUNT:
                $ref: '#/components/examples/AddDebitCreditRestrictionRequest'
      tags:
      - Account Restrictions
      responses:
        '202':
          description: Accepted
          headers:
            request-id:
              $ref: '#/components/headers/requestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddAccountRestrictionResponseV2'
              examples:
                Add a DIRECT_DEBIT restriction on a LIMITED_DDA_PAYMENTS account:
                  $ref: '#/components/examples/AddDirectDebitRestrictionResponse'
                Add a DEBITS restriction on a TRANSACTION_ACCOUNT:
                  $ref: '#/components/examples/AddDebitsRestrictionResponse'
                Add a CREDITS restriction on a TRANSACTION_ACCOUNT:
                  $ref: '#/components/examples/AddCreditsRestrictionResponse'
                Add a DEBIT_CREDIT restriction on a TRANSACTION_ACCOUNT:
                  $ref: '#/components/examples/AddDebitCreditRestrictionResponse'
        '400':
          $ref: '#/components/responses/400V2'
        '401':
          $ref: '#/components/responses/401V2'
        '403':
          $ref: '#/components/responses/403V2'
        '404':
          $ref: '#/components/responses/404V2'
        '500':
          $ref: '#/components/responses/500V2'
        '503':
          $ref: '#/components/responses/503V2'
  /accounts/{id}/restrictions/{restrictionId}:
    parameters:
    - $ref: '#/components/parameters/configurationIdInHeader'
    - $ref: '#/components/parameters/requestIdInHeader'
    - $ref: '#/components/parameters/accountIdInPath'
    - $ref: '#/components/parameters/restrictionIdInPath'
    delete:
      summary: Remove an account restriction
      description: Remove the given restriction for an account
      operationId: removeAccountRestriction
      tags:
      - Account Restrictions
      responses:
        '202':
          description: Accepted
          headers:
            request-id:
              $ref: '#/components/headers/requestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoveAccountRestrictionResponseV2'
              examples:
                Remove a DIRECT_DEBIT restriction on a LIMITED_DDA_PAYMENTS account:
                  $ref: '#/components/examples/RemoveDirectDebitRestrictionResponse'
                Remove a DEBITS restriction on a TRANSACTION_ACCOUNT:
                  $ref: '#/components/examples/RemoveDebitsRestrictionResponse'
                Remove a CREDITS restriction on a TRANSACTION_ACCOUNT:
                  $ref: '#/components/examples/RemoveCreditsRestrictionResponse'
                Remove a DEBIT_CREDIT restriction on a TRANSACTION_ACCOUNT:
                  $ref: '#/components/examples/RemoveDebitCreditRestrictionResponse'
        '400':
          $ref: '#/components/responses/400V2'
        '401':
          $ref: '#/components/responses/401V2'
        '403':
          $ref: '#/components/responses/403V2'
        '404':
          $ref: '#/components/responses/404V2'
        '500':
          $ref: '#/components/responses/500V2'
        '503':
          $ref: '#/components/responses/503V2'
components:
  parameters:
    clientIdInQuery:
      name: clientId
      in: query
      description: Unique Client identifier
      required: false
      example: '9000000001'
      schema:
        type: string
        pattern: ^\d{10}$
        minLength: 10
        maxLength: 10
    pageSize:
      name: limit
      in: query
      description: Number of records per page.
      schema:
        type: integer
        minimum: 1
        maximum: 25
        default: 25
        format: int32
      required: false
    pageNo:
      name: page
      in: query
      description: Page Number
      schema:
        type: integer
        default: 0
        minimum: 0
        maximum: 1000000
        format: int32
      required: false
    configurationIdInHeader:
      name: configuration-id
      in: header
      description: Unique identifier for the program configuration used for the request.
      required: false
      example: 549ccb74-708d-4f6b-ab21-64054abd828d
      schema:
        type: string
        minLength: 1
        maxLength: 36
    requestIdInHeader:
      name: request-id
      in: header
      description: Unique identifier for the request. This identifier is specific to this particular request.
        If the same payload is sent in a new request, a new identifier needs to be provided
      required: false
      example: efeacff8-fd2c-4f54-a12e-2a8f90d4d325
      schema:
        type: string
        maxLength: 36
        minLength: 1
    accountIdInPath:
      name: id
      in: path
      description: Unique account identifier
      schema:
        type: string
        maxLength: 34
      required: true
      example: b316151f575e4c1e9f548f1b40aae462
    restrictionIdInPath:
      name: restrictionId
      in: path
      description: Unique identifier for the restriction
      required: true
      schema:
        $ref: '#/components/schemas/RestrictionId'
  schemas:
    PageMetaData:
      type: object
      properties:
        page:
          type: integer
          minimum: 0
          format: int32
          example: 1
          description: 'Page Number.

            '
        limit:
          type: integer
          minimum: 0
          format: int32
          example: 30
          description: 'Number of records per page.

            '
        total_items:
          type: integer
          minimum: 0
          format: int32
          example: 1
          description: 'Total number of items.

            '
    AccountIdV2:
      type: string
      description: The resource Id of your account to use when looking up details of this account or making
        payments
      example: dc2eda9084bf40b7a1d8baa8c5e0ea0a
    ClientIdV2:
      type: string
      description: The id of the approved client created via the /clients endpoint
      example: '0030000132'
      maxLength: 10
      minLength: 10
      pattern: ^\d+$
    LabelResponseV2:
      type: string
      description: Account label
      example: MAIN
      pattern: ^[a-zA-Z0-9 _-]+$
    StateV2:
      type: string
      description: 'State of the account. Valid values are:


        | Value | Description |

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

        | `OPEN` | Account is open and operational |

        | `PENDING_OPEN` | Account opening is pending |

        | `PENDING_CLOSE` | Account closure is pending |

        | `CLOSED` | Account is closed |

        '
      example: OPEN
      maxLength: 32
    AccountCategoryResponseV2:
      type: string
      example: SUMMARY_ACCOUNT
      description: 'Category of the account. Valid values are:


        | Value | Description |

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

        | `SUMMARY_ACCOUNT` | Summary account |

        | `TRANSACTION_ACCOUNT` | Transaction account |

        | `PAYIN` | Pay-in account |

        | `DEFAULT` | Default account |

        | `MANAGEMENT` | Management account |

        | `PROCESSING` | Processing account |

        | `PROCESSING_OFFSET` | Processing offset account |

        | `CLIENT_OFFSET` | Client offset account |

        | `DDA` | DDA account |

        | `CLIENT_DDA` | Client DDA account |

        | `LIMITED_DDA` | Limited DDA account |

        | `LIMITED_DDA_PAYMENTS` | Limited DDA Payments account |

        '
    AccountParentIdV2:
      type: string
      description: The id of the parent `SUMMARY_ACCOUNT` when creating a `TRANSACTION_ACCOUNT` or `SUMMARY_ACCOUNT`
      example: dc2eda9084bf40b7a1d8baa8c5e0ea0a
      maxLength: 32
      pattern: ^[a-zA-Z0-9]+$
    RoutingInformationV2:
      type: object
      description: Routing information
      required:
      - routingCodeType
      - routingNumber
      properties:
        routingCodeType:
          type: string
          description: Identifies the type of routing number specified e.g `ABA`
          example: ABA
        routingNumber:
          type: string
          description: The routing type for the account which identifies a specific bank and branch for
            fund transfers
          example: '065400137'
        transactionType:
          type: string
          description: The transaction type associated to this routing number for example `ACH`
          example: ACH
    PaymentRoutingInformationV2:
      type: object
      description: Payment routing information
      required:
      - accountNumber
      - country
      - routingInformation
      properties:
        accountNumber:
          type: string
          description: Account number (PRN)
          example: '20000113278882'
        country:
          type: string
          description: Two letter country code based on ISO 3166 standard
          example: US
          maxLength: 2
        routingInformation:
          type: array
          description: Routing information
          items:
            $ref: '#/components/schemas/RoutingInformationV2'
          minItems: 0
        status:
          type: string
          description: 'Indicates the current status of the Payment Routing Number (PRN) associated with
            an account. Valid values are:


            | Value | Description |

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

            | `ACTIVE` | Allows for both incoming and outgoing transactions, including external transfers
            |

            | `INACTIVE` | The client cannot receive payments (PAYIns) from external sources into the
            account, nor can they transfer money out externally. However, internal money movements within
            linked accounts are still possible |


            **Important:** An `INACTIVE` PRN status strictly pertains to the PRN''s ability to handle
            external transactions and does not affect the overall status or functionality of the account
            itself. The account remains active and operational for other purposes.

            '
          example: ACTIVE
    BalanceLimitsV2:
      type: object
      description: Balance limits the account is allowed to have
      properties:
        minimumBalance:
          type: string
          description: The account balance will not be allowed to go below this limit.
          example: '0'
          maxLength: 15
          pattern: '[-.0-9]+'
        maximumBalance:
          type: string
          description: The account balance will not be allowed to go above this limit.
          example: '1000000'
          maxLength: 15
          pattern: '[.0-9]+'
    CreatedAtV2:
      type: string
      description: Date and time the account was created
      example: '2024-09-19T17:33:42.732Z'
      format: date-time
    UpdatedAtV2:
      type: string
      description: Date and time the account was last updated
      example: '2024-09-20T20:33:42.732Z'
      format: date-time
    ClosureReasonV2:
      type: string
      description: Reason for account closure
      maxLength: 50
      minLength: 1
      example: ELECTIVE
    AccountRestrictionV2:
      type: object
      description: List of restriction properties
      required:
      - restrictionId
      - restrictionType
      - restrictionReason
      - restrictionStatus
      - effectiveFrom
      properties:
        restrictionId:
          type: string
          description: Unique identifier for the restriction
          example: efeacff8-fd2c-4f54-a12e-2a8f90d4d325
          maxLength: 36
        restrictionType:
          type: string
          description: 'The type of restriction to apply to the account. Valid values are:


            | Value | Description |

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

            | `DEBITS` | Restricts debit transactions |

            | `CREDITS` | Restricts credit transactions |

            | `DEBIT_CREDIT` | Restricts both debit and credit transactions |

            | `DIRECT_DEBIT` | Restricts direct debit transactions |

            '
          example: DEBITS
        restrictionReason:
          type: string
          description: 'Reason for restriction on account. Valid values are:


            | Value | Description |

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

            | `CLIENT_REQUESTED` | Client requested the restriction |

            | `COURT_ORDER` | Restriction due to court order |

            | `FDIC` | Restriction due to FDIC |

            | `OTHER_RESTRICTION` | Other restriction reason |

            | `PROBATE` | Restriction due to probate |

            '
          example: CLIENT_REQUESTED
        restrictionStatus:
          type: string
          description: 'Current status of the restriction. Valid values are:


            | Value | Description |

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

            | `ACTIVE` | Restriction is currently active |

            | `INACTIVE` | Restriction is inactive |

            | `IN_REVIEW` | Restriction is under review |

            | `IN_PLACE` | Restriction is in place |

            | `CANCELLED` | Restriction has been cancelled |

            | `REJECTED` | Restriction was rejected |

            | `REMOVE_IN_REVIEW` | Removal of restriction is under review |

            | `REMOVED` | Restriction has been removed |

            | `EXPIRED` | Restriction has expired |

            | `PENDING` | Restriction is pending |

            '
          example: ACTIVE
        effectiveFrom:
          type: string
          format: date-time
          example: '2023-02-01T12:04:53.11122Z'
          description: Date and time when the restriction became effective
    RestrictionsV2:
      type: array
      description: List of restrictions applied to the account
      items:
        $ref: '#/components/schemas/AccountRestrictionV2'
      minItems: 0
    GetAccountResponseV2:
      type: object
      required:
      - id
      - category
      - state
      - createdAt
      - updatedAt
      properties:
        id:
          $ref: '#/components/schemas/AccountIdV2'
        clientId:
          $ref: '#/components/schemas/ClientIdV2'
        label:
          $ref: '#/components/schemas/LabelResponseV2'
        state:
          $ref: '#/components/schemas/StateV2'
        category:
          $ref: '#/components/schemas/AccountCategoryResponseV2'
        parentAccountId:
          $ref: '#/components/schemas/AccountParentIdV2'
        paymentRoutingInformation:
          $ref: '#/components/schemas/PaymentRoutingInformationV2'
        balanceLimits:
          $ref: '#/components/schemas/BalanceLimitsV2'
        createdAt:
          $ref: '#/components/schemas/CreatedAtV2'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAtV2'
        closureReason:
          $ref: '#/components/schemas/ClosureReasonV2'
        restrictions:
          $ref: '#/components/schemas/RestrictionsV2'
    GetAccountsListResponseV2:
      type: object
      required:
      - metadata
      - items
      properties:
        metadata:
          $ref: '#/components/schemas/PageMetaData'
        items:
          type: array
          nullable: false
          description: List of accounts for a specific client
          items:
            $ref: '#/components/schemas/GetAccountResponseV2'
          minItems: 0
    ApiErrorReasonV2:
      type: object
      description: Schema representing detailed reasons for an API error, including code, location, and
        message.
      required:
      - message
      properties:
        code:
          type: string
          example: '11000'
          description: Short code that identifies the error - publicly cataloged and documented
          minLength: 0
          maxLength: 5
        location:
          type: string
          enum:
          - BODY
          - QUERY
          - PATH
          - HEADER
          example: BODY
          description: Part of the request which is responsible for the reason
        field:
          type: string
          description: The location of the property or parameter in error
          minLength: 0
          maxLength: 512
        message:
          type: string
          example: Client with ID 0031234567 does not exist.
          description: Message describing the reason. This message can typically be displayed to your
            platform's users, except in cases specified otherwise
          minLength: 0
          maxLength: 2048
    ApiErrorV2:
      type: object
      description: Schema representing a version 2 API error, including title, HTTP status, and additional
        context.
      required:
      - title
      properties:
        title:
          type: string
          description: Short humanly-readable title of the error
          example: BAD_REQUEST
          minLength: 1
          maxLength: 512
        httpStatus:
          type: integer
          description: HTTP status code
          minimum: 100
          maximum: 599
          format: int32
          example: 400
        traceId:
          type: string
          description: Internal assigned traced identifier
          minLength: 0
          maxLength: 512
        requestId:
          type: string
          description: Client provided request identifier
          minLength: 0
          maxLength: 512
        context:
          type: array
          items:
            $ref: '#/components/schemas/ApiErrorReasonV2'
          description: Provides additional context and detail on the validation errors
          minItems: 0
          maxItems: 100
    AccountCategoryRequestV2:
      type: string
      example: SUMMARY_ACCOUNT
      description: 'Depending on your pathway, the category of the account can be one of the following:


        | Value | Description |

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

        | `SUMMARY_ACCOUNT` | Summary account type |

        | `TRANSACTION_ACCOUNT` | Transaction account type |

        | `LIMITED_DDA` | Limited DDA account type |

        | `LIMITED_DDA_PAYMENTS` | Limited DDA Payments account type |

        '
    PaymentRoutingInformationRequestV2:
      type: object
      description: Payment routing information request
      required:
      - enableAccountNumber
      properties:
        enableAccountNumber:
          type: boolean
          description: When true, an account number will be associated with the account to allow you to
            receive funds from external banks directly into the created account.  This is only valid for
            `TRANSACTION_ACCOUNT`
          example: true
    LabelV2:
      type: string
      description: The label of the account to be created. Currently, only MAIN is supported and used
        only when the category is `LIMITED_DDA` or `LIMITED_DDA_PAYMENTS`
      example: MAIN
      pattern: ^[A-Z]+$
    CreateAccountRequestV2:
      type: object
      required:
      - category
      properties:
        category:
          $ref: '#/components/schemas/AccountCategoryRequestV2'
        parentAccountId:
          $ref: '#/components/schemas/AccountParentIdV2'
        state:
          $ref: '#/components/schemas/StateV2'
        balanceLimits:
          $ref: '#/components/schemas/BalanceLimitsV2'
        paymentRoutingInformation:
          $ref: '#/components/schemas/PaymentRoutingInformationRequestV2'
        label:
          $ref: '#/components/schemas/LabelV2'
        clientId:
          $ref: '#/components/schemas/ClientIdV2'
    CreateAccountResponseV2:
      type: object
      required:
      - id
      - category
      properties:
        id:
          $ref: '#/components/schemas/AccountIdV2'
        category:
          $ref: '#/components/schemas/AccountCategoryRequestV2'
        parentAccountId:
          $ref: '#/components/schemas/AccountParentIdV2'
        state:
          $ref: '#/components/schemas/StateV2'
        balanceLimits:
          $ref: '#/components/schemas/BalanceLimitsV2'
        paymentRoutingInformation:
          $ref: '#/components/schemas/PaymentRoutingInformationRequestV2'
        label:
          $ref: '#/components/schemas/LabelResponseV2'
        clientId:
          $ref: '#/components/schemas/ClientIdV2'
    ClientRequestedClosureReason:
      type: string
      maxLength: 50
      minLength: 1
      description: 'Reason for account closure. This field is included when an account closure has been
        requested. Valid values include:


        | Value | Description |

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

        | `ELECTIVE` | Account closed by choice |

        | `SUBJECTED_TO_FRAUD` | Account closed due t

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