> ## Documentation Index
> Fetch the complete documentation index at: https://www.cashfree.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Bank Account Verification Async V2

> Use this API to verify bank account information. This asynchronous verification returns results via webhook or status polling. 


View the [test data](https://www.cashfree.com/docs/api-reference/vrs/data-to-test-integration#bank-numbers) and use the information to trigger the validations. The test data can be used only in the sandbox environment.

<Note>
  * Cashfree does not support the verification of Deutsche Bank and Paytm Payments Bank accounts.
  * For further queries, please refer to the [Bank Account Verification FAQs](/secure-id/kyc-stack/verify-bank-account#faqs).
</Note>


## OpenAPI

````yaml post /bank-account/async
openapi: 3.0.0
info:
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  contact:
    email: developers@cashfree.com
    name: API Support
    url: https://discord.com/invite/QdZkNSxXsB
  title: Cashfree Verification API's.
  version: '2023-12-18'
  description: >-
    Cashfree's Verification APIs provide different types of verification to our
    merchants.
servers:
  - description: Sandbox Server
    url: https://sandbox.cashfree.com/verification
  - description: Production Server
    url: https://api.cashfree.com/verification
security: []
tags:
  - name: Aadhaar
    description: Operations related to Aadhaar verification.
  - name: BAV V2
    description: Operations related to Bank account verification v2.
  - name: PAN
    description: Operations related to PAN verification.
  - name: Digilocker
    description: Operations related to Digilocker verification.
  - name: E-sign
    description: Operations related to E-sign verification.
  - name: Reverse Penny Drop
    description: Operations related to Reverse Penny Drop verification.
  - name: UPI Penny Drop
    description: Operations related to UPI Penny Drop verification.
  - name: Mobile Penny Drop
    description: Operations related to Mobile Penny Drop verification.
  - name: IP
    description: Operation related to IP verification.
  - name: UPI
    description: Operations related to UPI verification.
  - name: Passport
    description: Operation related to Passport verification.
  - name: CIN
    description: Operation related to CIN verification.
  - name: Name Match
    description: Operation related to Name Match verification.
  - name: PAN to GSTIN
    description: Operation related to PAN to GSTIN.
  - name: Face Match
    description: Operation related to Face Match verification.
  - name: Voter ID
    description: Operation related to Voter ID verification.
  - name: Reverse Geocoding
    description: Operation related to Reverse Geocoding.
  - name: Vehicle RC
    description: Operation related to Vehicle RC verification.
  - name: Driving License
    description: Operation related to Driving License verification.
  - name: GSTIN
    description: Operation related to GSTIN verification.
  - name: Account Aggregator
    description: Operations related to Account aggregator.
  - name: OTPLess
    description: Operations related to OTPLess Verification.
  - name: 1-Click
    description: Operations related to 1-Click.
  - name: Smart OCR
    description: Operations related to Smart OCR.
  - name: Geocoding
    description: Operations related to Geocoding.
  - name: Udyam
    description: Operation related to Udyam verification.
  - name: PAN to Udyam
    description: Operation related to PAN to Udyam.
paths:
  /bank-account/async:
    post:
      tags:
        - BAV V2
      summary: Bank Account Verification Async V2
      description: >-
        Use this API to verify bank account information. This asynchronous
        verification returns results via webhook or status polling. 



        View the [test
        data](https://www.cashfree.com/docs/api-reference/vrs/data-to-test-integration#bank-numbers)
        and use the information to trigger the validations. The test data can be
        used only in the sandbox environment.
      operationId: VrsBavAsync
      parameters:
        - $ref: '#/components/parameters/x_cf_signature'
      requestBody:
        $ref: '#/components/requestBodies/BankAccountVerificationAsyncRequestBody'
      responses:
        '200':
          $ref: '#/components/responses/BavAsyncV2Response'
        '400':
          $ref: '#/components/responses/400AsyncBAVV2'
        '401':
          $ref: '#/components/responses/Response401'
        '403':
          $ref: '#/components/responses/Response403'
        '422':
          $ref: '#/components/responses/422AsyncBav'
        '429':
          $ref: '#/components/responses/Response429'
        '500':
          $ref: '#/components/responses/Response500V2'
      security:
        - XClientID: []
          XClientSecret: []
components:
  parameters:
    x_cf_signature:
      description: >-
        Send the signature if two-factor authentication is selected as Public
        Key.  [More
        details](https://www.cashfree.com/docs/api-reference/vrs/getting-started#2fa-api-signature-generation).
      name: x-cf-signature
      in: header
      required: false
      schema:
        type: string
      example: ''
  requestBodies:
    BankAccountVerificationAsyncRequestBody:
      description: >-
        Find the request parameters to verify bank account information using the
        async method.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BankAccountVerificationAsyncRequestSchema'
  responses:
    BavAsyncV2Response:
      description: Success response for Bank Account Verification Async V2.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BAVAsyncV2ResponseSchema'
          examples:
            Request accepted with user ID:
              value:
                reference_id: 123
                user_id: test
                account_status: RECEIVED
                account_status_code: VALIDATION_IN_PROGRESS
            Request accepted without user ID:
              value:
                reference_id: 123
                account_status: RECEIVED
                account_status_code: VALIDATION_IN_PROGRESS
    400AsyncBAVV2:
      description: Validation error Async Bav v2.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseSchema'
          examples:
            Name exceeded:
              value:
                type: validation_error
                code: name_length_exceeded
                message: name can include a maximum of 100 characters.
            Invalid name:
              value:
                type: validation_error
                code: name_value_invalid
                message: name should not include special characters.
            Phone exceeded:
              value:
                type: validation_error
                code: phone_length_exceeded
                message: phone can include a maximum of 13 characters.
            Phone short:
              value:
                type: validation_error
                code: phone_length_short
                message: phone should include a minimum of 8 characters.
            Invalid phone:
              value:
                type: validation_error
                code: phone_value_invalid
                message: phone should be numeric.
            Missing bank account number:
              value:
                type: validation_error
                code: bank_account_missing
                message: bank_account is missing in the request.
            Bank account number exceeded:
              value:
                type: validation_error
                code: bank_account_length_exceeded
                message: bank_account can include a maximum of 40 characters.
            Bank account number short:
              value:
                type: validation_error
                code: bank_account_length_short
                message: bank_account should include a minimum of 6 characters.
            Invalid bank account number:
              value:
                type: validation_error
                code: bank_account_value_invalid
                message: bank_account should be alphanumeric.
            Missing IFSC:
              value:
                type: validation_error
                code: ifsc_missing
                message: ifsc is missing in the request.
            Invalid IFSC:
              value:
                type: validation_error
                code: ifsc_value_invalid
                message: ifsc should be of 11 characters and 5th character should be 0.
            User ID exceeded:
              value:
                type: validation_error
                code: user_id_length_exceeded
                message: user_id can include a maximum of 40 characters.
            Invalid user ID:
              value:
                type: validation_error
                code: user_id_value_invalid
                message: >-
                  user_id should contain only alphanumeric and underscore
                  characters.
            Duplicate user ID:
              value:
                type: validation_error
                code: user_id_already_exists
                message: user_id already exists.
            Missing header:
              value:
                type: validation_error
                code: x-client-id_missing
                message: x-client-id is missing in the request.
            Service not enabled:
              value:
                type: validation_error
                code: invalid_request
                message: service not enabled for this account.
            Using test credentials:
              value:
                type: validation_error
                code: x-client-secret_value_invalid
                message: Client secret belongs to test environment
    Response401:
      description: Invalid client ID and client secret combination.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseSchema'
          examples:
            Invalid client ID and client secret combination:
              value:
                type: authentication_error
                code: authentication_failed
                message: Invalid clientId and clientSecret combination
    Response403:
      description: Authentication error (IP not whitelisted).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseSchema'
          examples:
            IP not whitelisted:
              value:
                type: authentication_error
                code: ip_validation_failed
                message: >-
                  IP not whitelisted your current ip is 106.51.91.104.For IP
                  whitelisting assistance, visit our guide at
                  https://www.cashfree.com/docs/secure-id/get-started/integration/ip-whitelisting-verification
            x-cf-signature header missing:
              value:
                type: validation_error
                code: authentication_failed
                message: x-cf-signature missing in the request header
    422AsyncBav:
      description: Error responses for bank side failures and invalid ifsc requests.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseSchema'
          examples:
            Invalid IFSC:
              value:
                type: validation_error
                code: invalid_ifsc_fail
                message: invalid ifsc provided.
                error:
                  reference_id: 102
            Fraud account:
              value:
                type: validation_error
                code: fraud_account
                message: Fraud activity detected for this account.
                error:
                  reference_id: 102
            Insufficient balance:
              value:
                type: validation_error
                code: insufficient_balance
                message: Insufficient balance to process this request.
    Response429:
      description: Rate limit exceed error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseSchema'
          examples:
            Rate limit error per operation:
              value:
                type: rate_limit_error
                code: too_many_requests_per_operation
                message: Too many requests for this operation, rate limit reached
            Rate limit error per IP:
              value:
                type: rate_limit_error
                code: too_many_requests_per_ip
                message: Too many requests from the IP, rate limit reached
    Response500V2:
      description: Internal error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseSchema'
          examples:
            Internal Server Error:
              value:
                type: internal_error
                code: verification_failed
                message: something went wrong
  schemas:
    BankAccountVerificationAsyncRequestSchema:
      type: object
      required:
        - bank_account
        - ifsc
      properties:
        bank_account:
          description: >-
            It is the bank account number for verification. It can be an
            alphanumeric value between 6 and 40 characters.
          type: string
          example: '026291800001191'
          default: '026291800001191'
        ifsc:
          description: >-
            It is the IFSC information of the bank where the bank account is
            registered. It should be ann alphanumeric value of 11 characters.
            The first 4 characters should be alphabets, the 5th character should
            be a 0, and the remaining 6 characters should be numeric digits.
          type: string
          example: YESB0000262
          default: YESB0000262
        name:
          description: >-
            It is the name of the bank account holder. When provided, a name
            match verification is done. Only alphanumeric, whitespace (  ),
            period (.), hyphen ( - ), slash (/), and ampersand ( & ) are
            allowed.
          type: string
          example: John Doe
          default: John Doe
        user_id:
          description: >-
            It is the unique ID you create to identify the verification request.
            You can use this ID to get the status of the verification request in
            the Get Details API. Only alphanumeric and underscore ( _ ) are
            allowed.
          type: string
          example: test
          default: test
        phone:
          description: >-
            It is the phone number of the account holder that is associated with
            the entered bank account. Only numeric digits betweem 8 and 13
            characters are allowed.
          type: string
          example: '9999999999'
          default: '9999999999'
    BAVAsyncV2ResponseSchema:
      type: object
      properties:
        reference_id:
          type: integer
          description: >-
            It displays the unique ID created by Cashfree Payments for reference
            purposes.

            format: `int64`
          example: 23
        user_id:
          type: string
          description: >-
            It displays the user ID created by Cashfree Payments for reference
            purposes.
          example: '23'
        account_status:
          type: string
          description: >-
            It displays the status of the bank account.

            Possible values are:

            - `RECEIVED`


            [Click here to view the detailed descriptions of each
            value](https://www.cashfree.com/docs/api-reference/vrs/v2/bav-v2/bav-response-description#account-status-description).
          example: RECEIVED
        account_status_code:
          type: string
          description: >-
            It displays the status code of the bank account.

            Possible values are:

            - `VALIDATION_IN_PROGRESS`


            [Click here to view the detailed descriptions of each
            value](https://www.cashfree.com/docs/api-reference/vrs/v2/bav-v2/bav-response-description#account-status-code-description).
          example: VALIDATION_IN_PROGRESS
    ErrorResponseSchema:
      type: object
      properties:
        code:
          type: string
          example: x-client-id_missing
        error:
          type: object
          example:
            ref_id: 102
        message:
          type: string
          example: x-client-id is missing in the request.
          description: It displays the outcome of the error.
        type:
          type: string
          example: validation_error
          description: It displays the type of error.
  securitySchemes:
    XClientID:
      type: apiKey
      in: header
      name: x-client-id
      description: >-
        Your unique client identifier issued by Cashfree. You can find this in
        your [Merchant
        Dashboard](https://merchant.cashfree.com/verificationsuite/developers/api-keys).
    XClientSecret:
      type: apiKey
      in: header
      name: x-client-secret
      description: >-
        The secret key associated with your client ID. Use this to authenticate
        your API requests. You can find this in your [Merchant
        Dashboard](https://merchant.cashfree.com/verificationsuite/developers/api-keys).

````