JPMorgan Chase Account Validation API

API to validate accounts

Operations 1

POST /validations/accounts Account validation #

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-validation-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-validation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Validation Services Account Validation API
  version: 2.2.3
  description: Verify accounts and identities for individuals and organizations in real time, so you can confidently onboard customers, reduce fraud, and meet compliance requirements with a single, streamlined integration.
  contact:
    name: JPMC Technical Services Support
servers:
- url: https://apigateway.jpmorgan.com/tsapi/v2
  description: PRODUCTION - MTLS
- url: https://apigatewaycat.jpmorgan.com/tsapi/v2
  description: CLIENT TESTING - MTLS
- url: https://api-mock.payments.jpmorgan.com/tsapi/v2
  description: MOCK
tags:
- name: Account Validation
  description: API to validate accounts
paths:
  /validations/accounts:
    post:
      tags:
      - Account Validation
      operationId: accountValidation
      summary: Account validation
      description: Validate an account
      parameters:
      - name: x-client-id
        in: header
        required: true
        description: A unique identifier assigned to a client during the onboarding process.
        examples:
          Account Validation Request (US):
            value: CLIENTID
          Account Validation Request Multi (US):
            value: CLIENTID
          Micro-deposit Initial ACH Request (US):
            value: CLIENTID
          Micro-deposit Challenge ACH Request (US):
            value: CLIENTID
          Micro-deposit Initial RTP Request (US):
            value: CLIENTID
          Micro-deposit Challenge RTP Request (US):
            value: CLIENTID
          Account Validation Request (Non US):
            value: CLIENTID
          Account Confidence Request (US):
            value: CLIENTID
          Account Validation Request (SurePay VOP):
            value: CLIENTID
        schema:
          type: string
      - name: x-program-id
        in: header
        required: true
        description: A unique identifier assigned to a client during the onboarding process.
        schema:
          type: string
        examples:
          Account Validation Request (US):
            value: VERIAUTH
          Account Validation Request Multi (US):
            value: VERIAUTHMULTI
          Micro-deposit Initial ACH Request (US):
            value: PROGRAMID
          Micro-deposit Challenge ACH Request (US):
            value: PROGRAMID
          Micro-deposit Initial RTP Request (US):
            value: PROGRAMID
          Micro-deposit Challenge RTP Request (US):
            value: PROGRAMID
          Account Validation Request (Non US):
            value: VERIAUTHNONUS
          Account Confidence Request (US):
            value: VERIAUTHUS
          Account Validation Request (SurePay VOP):
            value: SUREPAYVOP
      - name: x-program-id-type
        in: header
        required: false
        description: A unique identifier assigned to a specific Validation Services product selection. The defaults values is “AVS” program-id-type. It indicates the processing settings selected for the product and will be provided during onboarding. This is an optional parameter.
        schema:
          type: string
        examples:
          Account Validation Request (US):
            value: AVS
          Account Validation Request Multi (US):
            value: AVS
          Micro-deposit Initial ACH Request (US):
            value: AVS
          Micro-deposit Challenge ACH Request (US):
            value: AVS
          Micro-deposit Initial RTP Request (US):
            value: AVS
          Micro-deposit Challenge RTP Request (US):
            value: AVS
          Account Validation Request (Non US):
            value: AVS
          Account Confidence Request (US):
            value: AVS
          Account Validation Request (SurePay VOP):
            value: AVS
      requestBody:
        content:
          application/json:
            schema:
              type: array
              minItems: 0
              items:
                $ref: '#/components/schemas/AccountDetails'
            examples:
              Account Validation Request (US):
                value:
                - requestId: 123e4567-e89b-12d3-a456-426614174000
                  clientReferenceId: CLIENT-AVS-US-001
                  account:
                    accountNumber: '12345'
                    financialInstitutionId:
                      clearingSystemId:
                        id: '122199983'
                        idType: ABA
                  entity:
                    individual:
                      firstName: Jane
                      lastName: Abbot
                      fullName: Jane Abbot
              Account Validation Request Multi (US):
                value:
                - requestId: 123e4567-e89b-12d3-a456-426614174000
                  clientReferenceId: CLIENT-AVS-MULTI-001
                  account:
                    accountNumber: '12345'
                    financialInstitutionId:
                      clearingSystemId:
                        id: '122199983'
                        idType: ABA
                  entity:
                    individual:
                      firstName: Jane
                      lastName: Abbot
                      fullName: Jane Abbot
                  transactions: []
              Micro-deposit Initial ACH Request (US):
                value:
                - requestId: 223e4567-e89b-12d3-a456-426614174000
                  clientReferenceId: CLIENT-MD-ACH-INIT-001
                  profileName: verificationauth
                  account:
                    accountNumber: '12345'
                    financialInstitutionId:
                      clearingSystemId:
                        id: '122199983'
                        idType: ABA
                  entity:
                    individual:
                      firstName: Jane
                      lastName: Abbot
                      fullName: Jane Abbot
                  transactions: []
              Micro-deposit Challenge ACH Request (US):
                value:
                - requestId: 223e4567-e89b-12d3-a456-426614174000
                  clientReferenceId: CLIENT-MD-ACH-CHAL-001
                  profileName: verificationauth
                  account:
                    accountNumber: '12345'
                    financialInstitutionId:
                      clearingSystemId:
                        id: '122199983'
                        idType: ABA
                  entity:
                    individual:
                      firstName: Jane
                      lastName: Abbot
                      fullName: Jane Abbot
                  transactions:
                  - context: ACCOUNT_VALIDATION
                    amount:
                      amount: 0.03
                      currency: USD
                  - context: ACCOUNT_VALIDATION
                    amount:
                      amount: 0.14
                      currency: USD
              Micro-deposit Initial RTP Request (US):
                value:
                - requestId: 1231e001-e89b-12d3-a456-129414174000213
                  clientReferenceId: CLIENT-MD-RTP-INIT-001
                  profileName: verificationauth
                  account:
                    accountNumber: '12345'
                    financialInstitutionId:
                      clearingSystemId:
                        id: '122199983'
                        idType: RTPABA
                  entity:
                    individual:
                      firstName: Jane
                      lastName: Abbot
                      fullName: Jane Abbot
                  transactions: []
              Micro-deposit Challenge RTP Request (US):
                value:
                - requestId: 1231e001-e89b-12d3-a456-129414174000213
                  clientReferenceId: CLIENT-MD-RTP-CHAL-001
                  profileName: verificationauth
                  account:
                    accountNumber: '12345'
                    financialInstitutionId:
                      clearingSystemId:
                        id: '122199983'
                        idType: RTPABA
                  entity:
                    individual:
                      firstName: Jane
                      lastName: Abbot
                      fullName: Jane Abbot
                  transactions:
                  - context: ACCOUNT_VALIDATION
                    amount:
                      amount: 0.03
                      currency: USD
                  - context: ACCOUNT_VALIDATION
                    amount:
                      amount: 0.14
                      currency: USD
              Account Validation Request (Non US):
                value:
                - requestId: 123e4567-e89b-12d3-a456-426614174000
                  clientReferenceId: CLIENT-AVS-NONUS-001
                  account:
                    accountNumber: '12345'
                    financialInstitutionId:
                      clearingSystemId:
                        id: PARBDEFFZZZ
                        idType: SWIFT
                      postalAddress:
                        country: AT
                    accountNumberType: IBAN
                  entity:
                    individual:
                      firstName: Jane
                      lastName: Abbot
                      fullName: Jane Abbot
                      identification:
                      - idType: TAX_ID
                        id: '111223333'
                  transactions: []
              Account Confidence Request (US):
                value:
                - requestId: 123e4567-e89b-12d3-a456-426614174000
                  clientReferenceId: CLIENT-CONF-US-001
                  account:
                    accountNumber: '12345'
                    financialInstitutionId:
                      clearingSystemId:
                        id: '122199983'
                        idType: ABA
                  entity:
                    individual:
                      firstName: Jane
                      lastName: Abbot
                      fullName: Jane Abbot
                  transactions: []
              Account Validation Request (SurePay VOP):
                value:
                - requestId: 0000-TEST-SPI-T01
                  clientReferenceId: CLIENT-SUREPAY-001
                  profileName: SPIndividual
                  account:
                    accountNumber: NL91ABNA041716430
                    accountNumberType: IBAN
                    financialInstitutionId:
                      clearingSystemId:
                        id: ABNANL2A
                        idType: BIC
                  ultimateEntityAccount:
                    financialInstitutionId:
                      clearingSystemId:
                        id: DEUTDEFF500
                        idType: BIC
                  entity:
                    individual:
                      firstName: David
                      lastName: Martin
                      fullName: David Martin
                  transactions: []
        required: true
      callbacks:
        validationStatus:
          '{client-url}/status':
            post:
              summary: Validation Status Callback
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/Payload'
                required: true
              responses:
                '200':
                  description: OK
      responses:
        '200':
          description: 'OK

            Error codes which could be returned with a 200 http response.

            * 9001 - Data Provider Error

            * 9002 - Processing Error

            * 9003 - Timeout Error

            * 9004 - Client Configuration Error

            * 9005 - Bad Request

            '
          content:
            application/json:
              schema:
                type: array
                minItems: 0
                items:
                  $ref: '#/components/schemas/ResponseCollection'
              examples:
                AccountValidationRequest:
                  value:
                  - requestId: 123e4567-e89b-12d3-a456-426614174000
                    clientReferenceId: CLIENT-AVS-US-001
                    responses:
                    - codes:
                        verification:
                          code: 1002
                          message: Open Valid
                        authentication:
                          code: 5002
                          message: Ownership Match
                      provider: JPMC_ACH
                      details:
                        paymentCheckContributingStatus: Contributed
                        accountNumber: XXXX5
                        financialInstitutionId:
                          clearingSystemId:
                            id: '122199983'
                            idType: ABA
                AccountValidationRequestSurePayVOP:
                  value:
                  - requestId: 0000-TEST-SPI-T01
                    clientReferenceId: CLIENT-SUREPAY-001
                    responses:
                    - codes:
                        verification:
                          code: 1002
                          message: Open Valid
                        authentication:
                          code: 5002
                          message: Ownership Match
                      provider: SUREPAY_VOP
                      details:
                        resultType: MATCHING
                        accountNumber: NL91ABNA041716430
                        financialInstitutionId:
                          clearingSystemId:
                            id: ABNANL2A
                            idType: BIC
        '400':
          description: 'Bad Request.

            * GCA-023 - Please re-send request in valid format.

            * GCA-129 - ProgramId is required.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '403':
          description: 'Forbidden.

            * GCA-001 - Unauthorized Access.

            * GCA-003 - Unauthorized Access.

            * GCA-103 - The programId was not found.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              examples:
                TooManyRequests:
                  summary: Too many requests
                  description: The pre-defined API request rate limit breached due to too many requests within a specific time window.
                  value:
                    errors:
                    - errorCode: '9005'
                      errorMsg: The agreed rate limit has been exceeded, try again later.
        '500':
          description: 'Internal Error.

            * GCA-099 - System is Unavailable.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
components:
  schemas:
    Amount:
      type: object
      properties:
        amount:
          minimum: 0
          type: number
          description: 'Must be present to receive a Participant Model score and also to receive the benefit of below functionality:

            * high focus item

            * duplication detection

            * stop payment notification

            <br><br>For inquiries with no dollar amount, enrollments for example, it is recommended to inquire applying an average dollar amount for the use case.<br>

            <b>Required if available.</b>'
          format: double
          example: 1234567890.99
        currency:
          maxLength: 3
          minLength: 3
          type: string
          description: Required when amount is not zero.
        checkSerialNo:
          maxLength: 15
          minLength: 1
          type: integer
          description: 'For check transactions.<br>

            Must be present to get the benefit of below functionality:<br>

            * high focus item

            * duplication detection

            * stop payment notification.

            <br><br><b>Not required for ACH inquiries.</b>'
          format: int32
    Individual:
      title: Individual
      required:
      - individual
      type: object
      properties:
        individual:
          $ref: '#/components/schemas/IndividualEntity'
    PostalAddress:
      title: PostalAddress
      required:
      - country
      type: object
      description: Required for Entity Validation
      properties:
        addressLine:
          type: array
          minItems: 0
          items:
            type: string
            maxLength: 60
            minLength: 1
            example: 123 Main St
          description: The street address.
          example:
          - 123 Main St
          - Apartment 2a
        townName:
          maxLength: 25
          minLength: 1
          type: string
          description: The town or city name.
          example: Tampa
        countrySubDvsn:
          type: string
          minLength: 1
          maxLength: 25
          example: FL
          description: The country sub division's name.<b> If used for a US state then should be 2 character code.
        country:
          maxLength: 2
          minLength: 2
          pattern: ^[A-Z]{2}$
          type: string
          description: "2 character ISO 3166_1 Country Code. <br>\n Required for individual and business validation."
          example: US
        postalCode:
          maxLength: 10
          minLength: 5
          pattern: ^([0-9]{5}|[0-9]{9}|[0-9]{5}-[0-9]{4})$
          type: string
          example: '52255'
        county:
          maxLength: 60
          minLength: 1
          type: string
          description: The county name.
          example: Hillsborough
        residentialStatus:
          type: string
          description: 'Subject''s owner or renter status. Possible values: * Own * Rent'
        unitNumber:
          maxLength: 10
          minLength: 1
          type: string
          description: The suite or the unit number.
          example: '1'
        buildingNumber:
          maxLength: 10
          minLength: 1
          type: string
          description: The building number.
          example: '101'
        buildingName:
          maxLength: 60
          minLength: 1
          type: string
          description: The building name.
          example: Tampa
        streetType:
          maxLength: 60
          minLength: 1
          type: string
          description: The street type.
          example: Avenue
        streetName:
          maxLength: 60
          minLength: 1
          type: string
          description: The street name.
          example: Clement Town
        suburb:
          maxLength: 60
          minLength: 1
          type: string
          description: The suburb or district within a town or a city.
          example: Citrus Park
    ResultCollection:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Result'
        verification:
          $ref: '#/components/schemas/Result'
        authentication:
          $ref: '#/components/schemas/Result'
        individualID:
          $ref: '#/components/schemas/Result'
        businessID:
          $ref: '#/components/schemas/Result'
        limitAmount:
          $ref: '#/components/schemas/Result'
        individualScreening:
          $ref: '#/components/schemas/Result'
        businessScreening:
          $ref: '#/components/schemas/Result'
        verificationMicrodeposit:
          $ref: '#/components/schemas/Result'
        authenticationMicrodeposit:
          $ref: '#/components/schemas/Result'
        accountScore:
          $ref: '#/components/schemas/AccountScore'
    Organization:
      title: Organization
      required:
      - organization
      type: object
      properties:
        organization:
          $ref: '#/components/schemas/OrganizationEntity'
    Errors:
      type: object
      properties:
        errors:
          type: array
          minItems: 0
          items:
            type: object
            properties:
              errorCode:
                type: string
                example: GCA-001
              errorMsg:
                type: string
                example: Unauthorized Access
    PhoneNumbers:
      title: PhoneNumbers
      type: array
      minItems: 0
      items:
        $ref: '#/components/schemas/PhoneNumber'
    Result:
      type: object
      properties:
        code:
          type: integer
          description: 'Error codes have first digit of 9,

            for example:

            * 9001 : Data Provider Error

            * 9002 : Processing Error

            * 9003 : Timeout Error

            * 9004 : Client Configuration Error

            * 9005 : Bad Request

            '
          format: int32
          example: 1002
        message:
          type: string
          description: 'Message is based on the code:

            * 1 = Open Valid

            * 2 = Closed Invalid

            * 3 = No Information Found

            * 4 = Debit Return Likely

            * 5 = Ownership Match

            * 6 = Ownership No Match

            * 7 = No Information Found

            '
          example: Open Valid
        sequence:
          type: integer
          format: int32
        authorizedRepIDs:
          type: object
          properties:
            code:
              type: integer
              description: 'Refer to the API and Technical Specifications Doc  based on your product for provider response details


                Error codes have first digit of 9,

                for example:

                * 9001 : Data Provider Error

                * 9002 : Processing Error

                * 9003 : Timeout Error

                * 9004 : Client Configuration Error

                * 9005 : Bad Request

                '
              format: int32
              example: 1002
            message:
              type: string
              description: 'Message is based on the code.<b>

                * 1 = Open Valid

                * 2 = Closed Invalid

                * 3 = No Information Found

                * 4 = Debit Return Likely

                * 5 = Ownership Match

                * 6 = Ownership No Match

                * 7 = No Information Found

                '
              example: Open Valid
            sequence:
              type: integer
              format: int32
          description: An array that contains the results for the authorized representative for a given business. The authorizedRepIds can be returned when using provider 'LEXISNEXIS_BUSINESS_V2'.
    Account:
      required:
      - accountNumber
      - financialInstitutionId
      type: object
      properties:
        accountNumber:
          maxLength: 17
          minLength: 4
          pattern: ^[0-9a-zA-Z]+$
          type: string
          example: '123456789012'
        accountNumberType:
          type: string
          description: Type of account. Example values - CLABE, DDA, IBAN
        financialInstitutionId:
          $ref: '#/components/schemas/FinancialInstitutionId'
    Transaction:
      type: object
      properties:
        context:
          type: string
          description: Denotes the context of the transaction. Supported values – ACCOUNT_VALIDATION
        processControlTransactionCode:
          maximum: 999999
          minimum: 100000
          maxLength: 6
          minLength: 6
          type: integer
          description: Process Control Transaction Code.
          format: int32
        amount:
          $ref: '#/components/schemas/Amount'
    AccountScore:
      type: object
      title: Account Score
      description: 'Account score information in coded message format being:


        | code  | message              |

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

        | 1109  | Information Found    |

        | 1209  | No Information Found |'
      properties:
        code:
          type: integer
          example: 1109
        message:
          type: string
          example: Information Found
      example:
        code: 1209
        message: No Information Found
    Response:
      type: object
      properties:
        codes:
          $ref: '#/components/schemas/ResultCollection'
        provider:
          type: string
          description: "- For Entity validation the following providers are applicable:\n    - **JPMC**, \n    - **JPMC_SCREENING**,\n    - **LEXISNEXIS** \n    - **LEXISNEXIS_INSTANT_ID**,\n    - **LEXISNEXIS_BUSINESS_V2, \n    - **GIACT_BUSINESS**, \n    - **GIACT_INDIVIDUAL**,\n    - **TRULIOO_INDIVIDUAL**,\n    - **TRULIOO_BUSINESS**\n- For Account validation the following providers are applicable:\n    - **JPMC**, \n    - **JPMC_BENE**, \n    - **JPMC_ACH**, \n    - **GIACT**, \n    - **MICRODEPOSITS**, \n    - **EWS**, \n    - **EWS_VA**,\n    - **PATTERN_MATCH**"
        details:
          type: object
    AccountDetails:
      required:
      - account
      - requestId
      type: object
      properties:
        profileName:
          type: string
        requestId:
          maxLength: 75
          minLength: 1
          pattern: ^[a-zA-Z0-9\-]+$
          type: string
          description: Unique Identifier for a request.<br>Preferably a Universally Unique Identifier (UUID).
          example: ad020818-aecb-4427-a4d8-a9912f0742e4
        clientReferenceId:
          maxLength: 75
          pattern: ^[a-zA-Z0-9+\-]+$
          type: string
          description: Client-provided reference identifier for tracking and correlation purposes.
          example: CLIENT-REF-12345
        account:
          $ref: '#/components/schemas/Account'
        entity:
          oneOf:
          - $ref: '#/components/schemas/Individual'
          - $ref: '#/components/schemas/Organization'
        transactions:
          type: array
          minItems: 0
          items:
            $ref: '#/components/schemas/Transaction'
    OrganizationEntity:
      title: Organization Entity
      required:
      - name
      type: object
      properties:
        name:
          maxLength: 100
          minLength: 1
          type: string
          description: 'Indicates the organization’s name. <br>

            This is a required field when authenticating an organization.'
          example: Smith And Co
        alternateName:
          maxLength: 100
          minLength: 1
          pattern: ^[A-Za-z0-9\s.\-?&:()`@,+/'%#!^>=]+$
          type: string
          example: Smith And Co Products
        postalAddress:
          $ref: '#/components/schemas/PostalAddress'
        associatedCountries:
          type: array
          minItems: 0
          items:
            type: string
            maxLength: 2
            minLength: 2
            pattern: ^[A-Z]{2}$
          description: List of comma-separated 2 character ISO 3166_1 Country Code.
        identification:
          type: array
          minItems: 0
          description: FEIN, PAN_CARD_INDIA, ORGANIZATION_ID_CHINA.
          items:
            $ref: '#/components/schemas/EntityId'
        contactDetails:
          type: object
          properties:
            email:
              maxLength: 320
              minLength: 1
              type: string
              description: The email address.
            phoneNumbers:
              $ref: '#/components/schemas/PhoneNumbers'
        channel:
          maxLength: 20
          minLength: 1
          pattern: Mail|PointOfSale|Kiosk|Internet|Branch|Telephonic|Other
          type: string
          description: 'Channel. Possible values: Mail, PointOfSale, Kiosk, Internet, Branch, Telephonic, Other'
        authorizedIndividuals:
          type: array
          minItems: 0
          description: Related parties such as the Beneficial Owners of the business and the authorized signer or the controller.
          items:
            $ref: '#/components/schemas/IndividualEntity'
        device:
          type: object
          description: Device details
          properties:
            ipAddress:
              maxLength: 39
              minLength: 0
              type: string
              description: Device IP address
    EntityId:
      required:
      - id
      - idType
      type: object
      properties:
        idType:
          type: string
          description: "Entity Identification type required for entity and financial validation:\n\n- Individual entity possible values: \n  - *SSN* (Optional for US), \n  - *ITIN* (Optional for US), \n  - *DRIVERS_LICENSE_USA* (Optional for US), \n  - *PAN_CARD_INDIA* (Optional for IN), \n  - *NATIONAL_ID_CHINA*(Mandatory for CN), \n  - *DRIVERS_LICENSE* (Optional for IN), \n  - *VOTER_ID* (Optional for IN),\n  - TAX_ID (Mandatory for GR), \n  - *SOCIAL_SERVICE* (Optional for CA, IT, MX, PH), \n  - *NATIONAL_ID* (Mandatory for HK, SG, AE, VN, CR, DN, ID, MY, MT, KR, SE TW, TH. Optional for MX, AR, BR, CL, RO, ES)\n\n---\n\n- Business possible values: \n  - *FEIN* (Optional for US) ), \n  - *PAN_CARD_INDIA* (Optional for IN), \n  - *ORGANIZATION_ID_CHINA* (Optional for CN), \n  - *BUSINESS_REGISTRATION_NUMBER* (Mandatory for Brazil, Optional for all other countries), \n  - *TAX_ID* (Mandatory for FR, DE, LU, NL, GB, AT, BE, CZ, DK, FL, GR, ID, IE, IT, MT, PL, PT, RO, SK, ES, SE, CH, BG, HR, CY, EE, HU, LY, LT)"
          enum:
          - SSN
          - DRIVERS_LICENSE_USA
          - PAN_CARD_INDIA
          - ITIN
          - FEIN
          - NATIONAL_ID_CHINA
          - ORGANIZATION_ID_CHINA
          - NATIONAL_ID
          - DRIVERS_LICENSE
          - VOTER_ID
          - SOCIAL_SERVICE
          - BUSINESS_REGISTRATION_NUMBER
          - TAX_ID
        id:
          maxLength: 28
          minLength: 1
          type: string
          description: 'The first identification ID of the individual.<br>In case of SSN, must contain either full SSN/ITIN or last four digits of SSN.

            i.e. Only four digits or nine digits will be accepted for SSN. <br>

            In case of PAN ID, must be 10 characters: first five characters as letters, followed by four digits and then a letter.

            Required for financial validation.'
        issuer:
          maxLength: 6
          minLength: 2
          type: string
          description: The state or place that issued the first identification ID.
        issueDate:
          maxLength: 8
          minLength: 8
          type: integer
          description: Structure that contains passport issue date elements, format = YYYYMMDD.
          format: int32
        expirationDate:
          maxLength: 8
          minLength: 8
          type: integer
          description: Structure that contains passport expiration date elements, format = YYYYMMDD.
          format: int32
    Payload:
      $ref: '#/components/schemas/ResponseCollection'
    IndividualEntity:
      title: Individual Entity
      description: An individual entity
      required:
      - firstName
      - fullName
      - lastName
      type: object
      properties:
        firstName:
          maxLength: 40
          minLength: 1
          pattern: ^[A-Za-z0-9\s.\-?&:()`@,+/'%#!^>=]+$
          type: string
          description: 'Indicates the individual’s first name. <br>

            This is a required field when authenticating an individual.'
          example: Jane
        lastName:
          maxLength: 40
          minLength: 1
          pattern: ^[A-Za-z0-9\s.\-?&:()`@,+/'%#!^>=]+$
          type: string
          description: 'Indicates the individual’s last name. <br>

            This is a required field when authenticating an individual.'
          example: Smith
        middleName:
          maxLength: 40
          minLength: 1
          pattern: ^[A-Za-z0-9\s.\-?&:()`@,+/'%#!^>=]+$
          type: string
          description: 'The individual’s middle name or initial. <br>

            If middle initial is included, it should be a single letter without a period.'
        additionalLastName:
          type: string
          maxLength: 40
          minLength: 1
          description: The individual’s additional last name.
        issueDate:
          type: string
          format: date
        namePrefix:
          maxLength: 4
          minLength: 1
          pattern: ^[A-Za

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