JPMorgan Chase Account Services API

Account Information - Services

Operations 4

GET /accounts Retrieve account information report #
GET /balances Retrieve balance information report #
GET /transactions Retrieve transaction history report #
GET /account-information Retrieve account information #

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-account-services-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-account-services-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Account Information Services Account Services API
  version: 2.0.22
  description: Enable access to account information services that allow J.P. Morgan clients to leverage Open Banking for data from customer bank accounts. Support consent management, account verification, balance retrieval, and transaction history for secure and efficient financial integration.
  contact:
    name: JPMorgan Chase & Co. API Support
    url: https://apistore.jpmchase.net/support/contact
    email: imsd.security.operations@jpmorgan.com
servers:
- url: https://api.payments.jpmorgan.com/paybybank/v2
  description: PRODUCTION
- url: https://api-cat.payments.jpmorgan.com/paybybank/v2
  description: CLIENT TESTING
- url: https://api-mock.payments.jpmorgan.com/paybybank/v2
  description: MOCK
tags:
- name: Account Services
  description: Account Information - Services
paths:
  /accounts:
    get:
      summary: Retrieve account information report
      description: 'The **Pay By Bank** - **Account Information Report API** provides an overview of permissioned consumer payment account details.

        '
      tags:
      - Account Services
      operationId: getAccounts
      parameters:
      - $ref: '#/components/parameters/ConsentId'
      - $ref: '#/components/parameters/RequestId'
      - $ref: '#/components/parameters/ClientId'
      responses:
        '200':
          $ref: '#/components/responses/200-OK-AccountSummary'
        '400':
          $ref: '#/components/responses/400-AccountVerificationBadRequest'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '422':
          $ref: '#/components/responses/422-Unprocessable'
        '429':
          $ref: '#/components/responses/429-TooManyRequests'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
  /balances:
    get:
      summary: Retrieve balance information report
      description: 'The **Pay By Bank** - **Balance Report** provides an overview of permissioned consumer payment account information and access to real-time balances.

        '
      tags:
      - Account Services
      operationId: getAccountBalances
      parameters:
      - $ref: '#/components/parameters/ConsentId'
      - $ref: '#/components/parameters/RequestId'
      - $ref: '#/components/parameters/ClientId'
      responses:
        '200':
          $ref: '#/components/responses/200-OK-BalanceDetails'
        '400':
          $ref: '#/components/responses/400-AccountVerificationBadRequest'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '422':
          $ref: '#/components/responses/422-Unprocessable'
        '429':
          $ref: '#/components/responses/429-TooManyRequests'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
  /transactions:
    get:
      summary: Retrieve transaction history report
      description: 'The **Pay By Bank** - **Transaction History Report API** provides an overview of permissioned consumer payment account information, including real-time balances and transaction history.

        '
      tags:
      - Account Services
      operationId: getAccountTransactions
      parameters:
      - $ref: '#/components/parameters/ConsentId'
      - $ref: '#/components/parameters/RequestId'
      - $ref: '#/components/parameters/ClientId'
      responses:
        '200':
          $ref: '#/components/responses/200-OK-TransactionDetails'
        '400':
          $ref: '#/components/responses/400-AccountVerificationBadRequest'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '422':
          $ref: '#/components/responses/422-Unprocessable'
        '429':
          $ref: '#/components/responses/429-TooManyRequests'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
  /account-information:
    get:
      summary: Retrieve account information
      description: 'The **Pay By Bank** - **Account Information API** facilitates the verification and provision of detailed information for linked bank accounts with continuous access permissions. This API allows users to retrieve specific account information, including account details, account owner verification, and balance checks.

        '
      tags:
      - Account Services
      operationId: getAccountSummaries
      parameters:
      - $ref: '#/components/parameters/ConsentId'
      - $ref: '#/components/parameters/RequestId'
      - $ref: '#/components/parameters/ClientId'
      - $ref: '#/components/parameters/AccountView'
      responses:
        '200':
          $ref: '#/components/responses/200-OK-AccountInformation'
        '400':
          $ref: '#/components/responses/400-AccountInformationBadRequest'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '422':
          $ref: '#/components/responses/422-Unprocessable'
        '429':
          $ref: '#/components/responses/429-TooManyRequests'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
components:
  schemas:
    RequestId:
      title: RequestId
      description: Client provided unique identifier for the current request invocation
      type: string
      minLength: 6
      maxLength: 128
      example: 5d1ff121-3a41-4cdc-9af9-de2f19cd567f
    ErrorContext:
      title: ConsentErrorContext
      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: 200
        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
        additionalContext:
          type: array
          description: List of additional error contexts providing detailed information
          items:
            $ref: '#/components/schemas/AdditionalContext'
          minItems: 0
          maxItems: 10
      required:
      - message
      additionalProperties: false
    ConsentId:
      title: ConsentId
      description: Unique identifier to access consent resources (UUID)
      type: string
      maxLength: 36
      minLength: 32
    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
    AccountTransaction:
      title: Transaction
      description: Transaction details of an verified account
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the transaction
        providerTransactionId:
          description: Provider's Transaction Identifier
          type: string
        transactionInitiatedAt:
          description: The time and date when the transaction event was first initiated. For example when a payment card was authorized at the point of sale (before it was booked) or when a money transfer was first initiated (before it was executed). Format - `YYYY-MM-DDThh:mm:ss`+/-time offset to UTC
          type: string
          format: date-time
        bookedAt:
          description: Transaction Date ( Booked). For BOOKED transaction this indicates the date and time when the transaction was posted on the financial institution’s books. For PENDING transactions indicates the expected booking date and time. Format - `YYYY-MM-DDThh:mm:ss`+/-time offset to UTC
          type: string
          format: date-time
        valuedAt:
          description: The date and time when assets either become available or cease to be available to the account owner. Format - `YYYY-MM-DDThh:mm:ss`+/-time offset to UTC
          type: string
          format: date-time
        transactionType:
          type: string
          description: "Transaction Type. Possible values as below\n| Type              | Description                |\n|:------------------|:---------------------------|\n|CREDIT_CARD        | Credit card                | \n|TRANSFER           | Transfer                   |\n|WITHDRAWAL         | Withdrawal                 |\n|PAYMENT            | Payment                    |\n|DEFAULT            | Default                    |\n|UNDEFINED          | Undefined Type             |"
        value:
          description: Transaction Amount
          allOf:
          - $ref: '#/components/schemas/Value'
        originalDescription:
          description: Transaction Description - Original
          type: string
        displayDescription:
          description: Transaction Description - Display
          type: string
        merchantCategory:
          description: Merchant Category Code (MCC) as indicated by financial institution
          type: string
        merchantName:
          description: Name of merchant, as indicated by financial institution
          type: string
        status:
          description: Transaction booking Status
          type: string
          enum:
          - PENDING
          - BOOKED
          - UNDEFINED
        debtor:
          description: Debtor details in the context of transaction
          $ref: '#/components/schemas/TransactionCounterParty'
        creditor:
          description: Creditor details in the context of transaction
          $ref: '#/components/schemas/TransactionCounterParty'
        referenceId:
          type: string
          description: Transaction reference as provided by the financial institution.
    PartyIdentity:
      title: PartyIdentity
      type: object
      description: Representation of a party with its role, identity, and verification status.
      properties:
        name:
          type: string
          description: Party name.
          maxLength: 200
        addresses:
          type: array
          description: Addresses of the party.
          items:
            $ref: '#/components/schemas/Address'
          minItems: 0
          maxItems: 7
        emails:
          type: array
          description: Email addresses of the user.
          items:
            $ref: '#/components/schemas/Email'
          minItems: 0
          maxItems: 5
        phones:
          type: array
          description: Phone numbers of the user.
          items:
            $ref: '#/components/schemas/Phone'
          minItems: 0
          maxItems: 5
    PartyRole:
      type: string
      enum:
      - PRIMARY
      - PRIMARY_JOINT
      - PRIMARY_JOINT_TENANTS
      - PRIMARY_BORROWER
      - SECONDARY
      - SECONDARY_JOINT
      - SECONDARY_BORROWER
      - SECONDARY_JOINT_TENANTS
      - SOLE_OWNER
      - TRUSTEE
      - UNIFORM_TRANSFER_TO_MINOR
      - AUTHORIZED_USER
      - BUSINESS
      - POWER_OF_ATTORNEY
      - FOR_BENEFIT_OF_PRIMARY
      - FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED
      - FOR_BENEFIT_OF_SECONDARY
      - FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED
      - FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED
      - OTHER
      - UNKNOWN
      description: 'The role of the party to the account.

        '
    AdditionalContext:
      title: AdditionalContext
      type: object
      properties:
        type:
          type: string
          description: Category of the error code (EXTERNAL)
          minLength: 3
          maxLength: 20
        code:
          type: string
          description: Short code that identifies the error - publicly cataloged and documented
          minLength: 2
          maxLength: 10
        message:
          type: string
          description: Humanly readable textual description of the error
          minLength: 1
          maxLength: 200
      required:
      - type
      - code
      - message
      additionalProperties: false
    Amount:
      title: Amount
      type: string
      minLength: 3
      maxLength: 18
      pattern: ^(\d{1,15})\.(\d{1,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.
    SORTCODE:
      type: object
      title: SORTCODE
      description: Account identifier specific to the SORT_CODE account numbering scheme.
      required:
      - accountIdType
      properties:
        accountIdType:
          type: string
          default: SORT_CODE
        accountNumber:
          type: string
          description: The account number of the account.
          minLength: 1
          maxLength: 128
        sortCode:
          type: string
          description: The sort code of the account.
          minLength: 1
          maxLength: 128
      additionalProperties: false
    AccountInformation:
      title: AccountInformation
      description: Account Information account , balances, etc....
      type: object
      properties:
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/AccountDetail'
          minItems: 1
          maxItems: 3
        error:
          $ref: '#/components/schemas/Error'
      additionalProperties: false
    AccountBasic:
      title: AccountBasic
      description: Basic representation of a financial account.
      type: object
      properties:
        financialInstitution:
          $ref: '#/components/schemas/FinancialInstitution'
        accountIdentifiers:
          description: Unique account identifiers assigned by the financial institution for identification and transaction processing.
          type: object
          oneOf:
          - $ref: '#/components/schemas/USABA'
          - $ref: '#/components/schemas/SORTCODE'
          - $ref: '#/components/schemas/IBAN'
          discriminator:
            propertyName: accountIdType
            mapping:
              USABA: '#/components/schemas/USABA'
              SORTCODE: '#/components/schemas/SORTCODE'
              IBAN: '#/components/schemas/IBAN'
        accountType:
          $ref: '#/components/schemas/AccountType'
        currencyCode:
          $ref: '#/components/schemas/ISOCurrencyCode'
        name:
          type: string
          maxLength: 250
          description: Name of the account assigned by the account holder or by the financial institution. This field is typically what the user recognises in their online banking app.
        segment:
          type: string
          description: Customer segment
          enum:
          - PERSONAL
          - BUSINESS
          - UNKNOWN
        status:
          $ref: '#/components/schemas/AccountStatus'
    AccountView:
      type: array
      items:
        $ref: '#/components/schemas/ConsentIncludes'
      minItems: 0
      maxItems: 3
    IBAN:
      type: object
      title: IBAN
      description: International bank account number (**IBAN**) standard numbering system.
      required:
      - accountIdType
      properties:
        accountIdType:
          type: string
          default: IBAN
        bban:
          type: string
          description: BBAN represents a country-specific bank account number.
          minLength: 1
          maxLength: 128
        bic:
          type: string
          description: BIC bank number. This can be inferred from the IBAN, but some banks might require it for adding a beneficiary or will display it for existing accounts owned by the user.
          minLength: 1
          maxLength: 128
        iban:
          type: string
          description: IBAN represents an international bank account number.
          minLength: 1
          maxLength: 128
      additionalProperties: false
    Email:
      title: Email
      type: object
      description: Representation of detailed email information.
      properties:
        isPrimary:
          type: boolean
          description: Indicates the email address is the first point of communication in instances where there are multiple email addresses.
        emailAddressType:
          type: string
          description: The email type.
          enum:
          - PERSONAL
          - BUSINESS
          - OTHER
          - UNKNOWN
        emailAddress:
          type: string
          description: The email address.
          format: email
      additionalProperties: false
    ApiErrorContext:
      title: ErrorContext
      description: The API error context object returned by the API.
      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: 200
        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
        additionalContext:
          type: array
          description: List of additional error contexts providing detailed information
          items:
            $ref: '#/components/schemas/ApiAdditionalContext'
          minItems: 0
          maximum: 10
      required:
      - message
      additionalProperties: false
    Value:
      title: Value
      description: Value
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        currency:
          $ref: '#/components/schemas/ISOCurrencyCode'
      required:
      - amount
      - currency
    Error:
      title: ConsentError
      description: Error details for consent processing issues
      type: object
      properties:
        title:
          type: string
          description: Brief title describing the error
          example: Consent Processing Error
          minLength: 1
          maxLength: 128
        traceId:
          $ref: '#/components/schemas/TraceId'
        context:
          type: array
          description: List of error contexts providing detailed information
          items:
            $ref: '#/components/schemas/ErrorContext'
          minItems: 0
          maxItems: 10
      required:
      - title
      - traceId
    Phone:
      title: Phone
      type: object
      description: Representation of a Phone Number
      properties:
        phoneNumber:
          type: string
          pattern: ^\+[0-9]{1,3}-[0-9()+\-]{1,30}$
          description: Number as defined by the Telecom services
        phoneNumberType:
          type: string
          description: 'The phone type.

            '
          enum:
          - PHONE
          - MOBILE
          - BUSINESS
          - OTHER
    Address:
      title: Address
      type: object
      description: Representation of an address object.
      properties:
        fullAddress:
          type: string
          description: Full Address.
          minLength: 3
          maxLength: 256
        addressType:
          type: string
          description: Type of the address.
          enum:
          - BUSINESS
          - CORRESPONDENCE
          - DELIVERY_TO
          - MAIL_TO
          - PO_BOX
          - RESIDENTIAL
          - POSTAL
          - UNKNOWN
        addressLines:
          type:
          - array
          - 'null'
          description: Optional; if provided must contain at least one address line.
          items:
            type: string
            minLength: 1
            maxLength: 70
          minItems: 1
          maxItems: 7
        city:
          type: string
          description: City name.
          minLength: 1
          maxLength: 100
        state:
          type: string
          description: State or region name.
          minLength: 1
          maxLength: 100
        postalCode:
          type: string
          description: Postal or ZIP code.
          minLength: 1
          maxLength: 20
          pattern: ^[0-9A-Za-z\- ]+$
        countryCode:
          $ref: '#/components/schemas/ISOCountryCode'
    AccountId:
      title: AccountId
      description: Internal account identifier provided by JPMC
      type: string
      maxLength: 36
      minLength: 32
    Balance:
      title: Balance
      description: Balance Information
      type: object
      properties:
        balanceType:
          type: string
          description: "Balance types\n\n  | Balance Type      | Description             |\n  |:----------------- |:------------------------|\n  | BOOKED_BALANCE    | The current balance of the account at the end of an account reporting period|\n  | AVAILABLE_BALANCE | The amount of funds the customer is able to withdraw from the account|"
          enum:
          - BOOKED_BALANCE
          - AVAILABLE_BALANCE
        value:
          $ref: '#/components/schemas/Value'
        lastRefreshedAt:
          type: string
          format: date-time
          description: The timestamp of when the balance data was last refreshed.
      required:
      - balanceType
      - value
      additionalProperties: false
    ApiError:
      title: Error
      description: The error object returned by the API.
      type: object
      properties:
        title:
          type: string
          description: Brief title describing the error
          example: Consent Processing Error
          minLength: 1
          maxLength: 128
        httpStatus:
          type: integer
          format: int32
          description: HTTP Status Code
        traceId:
          $ref: '#/components/schemas/TraceId'
        requestId:
          $ref: '#/components/schemas/RequestId'
        context:
          type: array
          description: List of error contexts providing detailed information
          items:
            $ref: '#/components/schemas/ApiErrorContext'
          minItems: 0
          maxItems: 10
      required:
      - title
      - httpStatus
      - traceId
      additionalProperties: false
    AccountStatus:
      type: string
      description: Account Status
      enum:
      - ACTIVE
      - INACTIVE
      - UNKNOWN
    Party:
      title: Party
      type: object
      description: Representation of a party with its role, identity, and verification status.
      properties:
        role:
          $ref: '#/components/schemas/PartyRole'
        identity:
          $ref: '#/components/schemas/PartyIdentity'
        dateOfBirth:
          type: string
          description: Date of birth of the party, ISO 8601 date format `YYYY-MM-DD`.
          format: date
        verificationStatus:
          type: string
          description: Verification status of the party.
          enum:
          - VERIFIED
          - PARTIALLY_VERIFIED
          - UNVERIFIED
          - UNKNOWN
      required:
      - identity
    AccountDetail:
      title: AccountDetail
      description: Consented accounts details
      type: object
      properties:
        accountId:
          $ref: '#/components/schemas/AccountId'
        account:
          $ref: '#/components/schemas/AccountBasic'
        parties:
          type: array
          description: List of parties associated with the account.
          items:
            $ref: '#/components/schemas/Party'
          minItems: 0
          maxItems: 5
        balances:
          type: array
          description: List of balances associated with the account.
          items:
            $ref: '#/components/schemas/Balance'
          minItems: 0
          maxItems: 2
      required:
      - accountId
    ClientId:
      title: ClientId
      description: Unique Identifier of the client that is generated by PBB.
      type: string
      minLength: 1
      maxLength: 36
      example: '9876543210'
    TransactionCounterParty:
      title: TransactionCounterParty
      description: Creditor/Debtor counter party details in the context of transaction
      type: object
      properties:
        name:
          description: Name provided by creditor/Debtor's financial institution
          type: string
          minLength: 1
          maxLength: 128
        accountNumber:
          type: string
          description: Internal account identifier provided by creditor/debtor's financial institution
          minLength: 1
          maxLength: 128
    USABA:
      title: USABA
      type: object
      description: Account Identifier in US Banking account number format
      required:
      - accountIdType
      properties:
        accountIdType:
          type: string
          default: USABA
        routingNumber:
          type: string
          description: Represents routing number of financial institution, that account belongs to.
          minLength: 1
          maxLength: 128
        accountNumber:
          type: string
          description: Represents account number assigned by financial institution.
          minLength: 1
          maxLength: 128
        maskedAccountNumber:
          type: string
          description: Account number assigned by financial institution in masked format e.g.  XXXXXXXXXXXX1234
          maxLength: 20
        tokenizedAccountNumber:
          type: string
          description: Tokenized representation of the US bank account number.
          minLength: 1
          maxLength: 128
      additionalProperties: false
    AccountSummary:
      title: AccountSummary
      description: Sufficient account details to identify the account
      type: object
      properties:
        accounts:
          type: array
          items:
            properties:
              accountId:
                $ref: '#/components/schemas/AccountId'
              account:
                $ref: '#/components/schemas/AccountBasic'
              parties:
                type: array
                description: List of parties associated with the account.
                items:
                  $ref: '#/components/schemas/Party'
                minItems: 0
                maxItems: 5
            required:
            - accountId
            - account
            - parties
            additionalProperties: false
          minItems: 1
          maxItems: 3
    TraceId:
      title: TraceId
      description: A unique identifier generated by server for tracing the request through the system.
      type: string
      minLength: 16
      maxLength: 36
      pattern: ^[-_.a-zA-Z0-9]{16,36}$
      example: ed392d86-83f3-4611-ac51-3a00442c8fc5
    AccountTransactionDetail:
      title: TransactionDetail
      description: Transactions List
      type: object
      properties:
        accountId:
          $ref: '#/components/schemas/AccountId'
        account:
          $ref: '#/components/schemas/AccountBasic'
        balances:
          type: array
          description: List of balances associated with the account.
          items:
            $ref: '#/components/schemas/Balance'
          minItems: 0
          maxItems: 2
        transactions:
          type: array
          description: List of transaction associated with the account.
          items:
            $ref: '#/components/schemas/AccountTransaction'
          minItems: 0
          maxItems: 100
      required:
      - accountId
      - account
      - balances
      - transactions
    ApiAdditionalContext:
      title: AdditionalContext
      type: object
      properties:
        type:
          type: string
          description: Category of the error code (EXTERNAL)
          minLength: 3
          maxLength: 20
        code:
          type: string
          description: Short code that identifies the error - publicly cataloged and documented
          minLength: 2
          maxLength: 10
        message:
          type: string
          description: Humanly readable textual description of the error
          minLength: 1
          maxLength: 200
      required:
      - type
      - code
      - message
      additionalProperties: false
    FinancialInstitution:
      title: FinancialInstitution
      description: Represents a financial institution with its name and logo.
      type: object
      properties:
        name:
          type: string
          description: Name of the financial institution.
          minLength: 2
          maxLength: 100
        logoUrl:
          type: string
          description: URL of the financial institution's logo.
          format: uri
          pattern: ^https?:\/\/[^\s$.?#].[^\s]*$
      required:
      - name
      additionalProperties: false
    ISOCountryCode:
      title: ISOCountryCode
      type: string
      description: ISO 3166-1 Alpha-2 Country Code
      minLength: 2
      maxLength: 2
      pattern: ^[A-Z]{2}$
      example: AU
    AccountType:
      title: AccountType
      type: string
      description: 'Specifies the type of account.


        | Account Type   | Description            |

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

        | **CHECKING**   | A Checking account.    |

        | **SAVINGS**    | A Savings account.     |

        | **CREDIT_CARD**| A Credit Card account. |

        '
      enum:
      - CHECKING
      - SAVINGS
      - CREDIT_CARD
      - OTHER
    BalanceDetail:
      title: BalanceDetail
      description: Balance Information
      type: object
      properties:
        accounts:
          type: array
          items:
            properties:
              accountId:
                $ref: '#/components/schemas/AccountId'
              account:
                $ref: '#/components/schemas/AccountBasic'
              parties:
                type: array
                description: List of parties associated with the account.
                items:
                  $ref: '#/components/schemas/Party'
                minItems: 0
                maxItems: 5
              balances:
                type: array
                description: List of balances associated with the account.
                items:
                  $ref: '#/components/schemas/Balance'
                minItems: 0
                maxItems: 2
            required:
            - accountId
            - account
            - balances
          minItems: 1
          maxItems: 3
    ConsentIncludes:
      title: Includes
      type: string
      description: "Option to retrieve either the complete set or specific portions of the consented information.\n\n |View                   |Description                                                                             |\n |:----------------------|:------------------------------------------- -------------------------------------------|\n |FULL                   |Retrieve full details of authorized accounts                                            |\n |ACCOUNT                |Retrieve basic details of authorized accounts                                           |\n |PARTIES                |Retrieve all account parties and their corresponding roles                              |\n |BALANCES               |Retrieve the balances of active accounts|\n"
      enum:
      - FULL
      - ACCOUNT
      - PARTIES
      - BALANCES
  examples:
    Unauthorized:
      value:
        title: Authentication Failure
        httpStatus: 401
        traceId: 0eca2e1a-74b7-44b7-9e66-4a6ec8336eb9
        requestId: UK202109202311354152
        context:
        - code: '14000'
          message: Client could not be authenticated
    AccountInformationUS-Account:
      description: Sample response payload of consented basic account detail for US
      value:
        accounts:
        - accountId: 61d0ed13639143bc9fd47dc0a782912f
          account:
            accountIdentifiers:
              accountIdType: USABA
              accountNumber: '45789123456789'
              routingN

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