> ## 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 Sync V2

> Use this API to perform real-time validation of bank account numbers and IFSC codes. This synchronous verification provides instant results for immediate account verification needs.

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).
  * IMPS verifies only the first five characters of the IFSC code, which represent the bank. It does not verify the remaining six characters that identify the branch.
</Note>


## OpenAPI

````yaml post /bank-account/sync
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/sync:
    post:
      tags:
        - BAV V2
      summary: Bank Account Verification Sync V2
      description: >-
        Use this API to perform real-time validation of bank account numbers and
        IFSC codes. This synchronous verification provides instant results for
        immediate account verification needs.


        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: VrsBavSync
      parameters:
        - $ref: '#/components/parameters/x_cf_signature'
      requestBody:
        $ref: '#/components/requestBodies/BankAccountVerificationSyncRequestBody'
      responses:
        '200':
          $ref: '#/components/responses/BavSyncV2Response'
        '400':
          $ref: '#/components/responses/400SyncBAVV2'
        '401':
          $ref: '#/components/responses/Response401'
        '403':
          $ref: '#/components/responses/Response403'
        '422':
          $ref: '#/components/responses/422SyncBav'
        '429':
          $ref: '#/components/responses/Response429'
        '500':
          $ref: '#/components/responses/Response500V2'
        '502':
          $ref: '#/components/responses/Response502V2AuthorizedSourceDown'
      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:
    BankAccountVerificationSyncRequestBody:
      description: >-
        Find the request parameters to verify the bank account information using
        the sync method.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BankAccountVerificationSyncRequestSchema'
  responses:
    BavSyncV2Response:
      description: Success response for Bank Account Verification Sync V2.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BAVV2ValidationSuccessfulSchema'
          examples:
            Valid account:
              value:
                reference_id: 34
                name_at_bank: BHARATHTEST GKUMARUT
                bank_name: YES BANK
                city: MUMBAI
                branch: SANTACRUZ, MUMBAI
                micr: 400532038
                name_match_score: '90.00'
                name_match_result: GOOD_PARTIAL_MATCH
                account_status: VALID
                account_status_code: ACCOUNT_IS_VALID
                utr: '404223241811'
                ifsc_details:
                  bank: YES BANK
                  ifsc: YESB0000262
                  ifsc_subcode: YESB0
                  address: >-
                    GROUND FLOOR, 123, ABC CIRCLE, XYZ MAIN ROAD, MUMBAI -
                    560098
                  city: MUMBAI
                  state: MAHARASHTRA
                  branch: SANTACRUZ, MUMBAI
                  category: SUB_MEMBER
                  swift_code: ABCDINBBDCL
                  micr: 560751026
                  nbin: 1234
            Invalid account:
              value:
                reference_id: 34
                name_at_bank: null
                bank_name: null
                city: null
                branch: null
                micr: null
                name_match_score: null
                name_match_result: null
                account_status: INVALID
                account_status_code: INVALID_ACCOUNT_FAIL
                utr: null
                ifsc_details:
                  bank: null
                  ifsc: null
                  ifsc_subcode: null
                  address: null
                  city: null
                  state: null
                  branch: null
                  category: null
                  swift_code: null
                  micr: null
                  nbin: null
            Account blocked:
              value:
                reference_id: 34
                name_at_bank: null
                bank_name: null
                city: null
                branch: null
                micr: null
                name_match_score: null
                name_match_result: null
                account_status: INVALID
                account_status_code: ACCOUNT_BLOCKED
                utr: null
                ifsc_details:
                  bank: null
                  ifsc: null
                  ifsc_subcode: null
                  address: null
                  city: null
                  state: null
                  branch: null
                  category: null
                  swift_code: null
                  micr: null
                  nbin: null
            Invalid IFSC fail:
              value:
                reference_id: 34
                name_at_bank: null
                bank_name: null
                city: null
                branch: null
                micr: null
                name_match_score: null
                name_match_result: null
                account_status: INVALID
                account_status_code: INVALID_IFSC_FAIL
                utr: null
                ifsc_details:
                  bank: null
                  ifsc: null
                  ifsc_subcode: null
                  address: null
                  city: null
                  state: null
                  branch: null
                  category: null
                  swift_code: null
                  micr: null
                  nbin: null
            NRE account fail:
              value:
                reference_id: 34
                name_at_bank: null
                bank_name: null
                city: null
                branch: null
                micr: null
                name_match_score: null
                name_match_result: null
                account_status: INVALID
                account_status_code: NRE_ACCOUNT_FAIL
                utr: null
                ifsc_details:
                  bank: null
                  ifsc: null
                  ifsc_subcode: null
                  address: null
                  city: null
                  state: null
                  branch: null
                  category: null
                  swift_code: null
                  micr: null
                  nbin: null
    400SyncBAVV2:
      description: Validation error Sync 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.
            Missing header:
              value:
                type: validation_error
                code: x-client-id_missing
                message: x-client-id is missing in the request.
            Using test credentials:
              value:
                type: validation_error
                code: x-client-secret_value_invalid
                message: Client secret belongs to test environment
            Service not enabled:
              value:
                type: validation_error
                code: invalid_request
                message: service not enabled for this account.
    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
    422SyncBav:
      description: Error responses for bank side failures and invalid ifsc requests.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseSchema'
          examples:
            Fraud account provided:
              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.
            Concurrent request in progress:
              value:
                type: validation_error
                code: verification_already_under_process
                message: verification already under process.
                error:
                  reference_id: 102
            Failed at bank:
              value:
                type: validation_error
                code: failed_at_bank
                message: failed at bank.
                error:
                  reference_id: 102
            NPCI unavailable:
              value:
                type: validation_error
                code: npci_unavailable
                message: npci unavailable.
                error:
                  reference_id: 102
            Connection timeout:
              value:
                type: validation_error
                code: connection_timeout
                message: connection timeout from bank.
                error:
                  reference_id: 102
            Source bank declined:
              value:
                type: validation_error
                code: source_bank_declined
                message: source bank declined.
                error:
                  reference_id: 102
            Beneficiary bank declined:
              value:
                type: validation_error
                code: bene_bank_declined
                message: bene bank declined.
                error:
                  reference_id: 102
            IMPS mode fail:
              value:
                type: validation_error
                code: imps_mode_fail
                message: imps mode fail.
                error:
                  reference_id: 102
            Benficiary bank offline:
              value:
                type: validation_error
                code: benficiary_bank_offline
                message: benficiary bank offline.
                error:
                  reference_id: 102
    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
    Response502V2AuthorizedSourceDown:
      description: Gateway error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseSchema'
          examples:
            Bad Gateway:
              value:
                type: internal_error
                code: verification_failed
                message: >-
                  Authorised source is temporarily unavailable, please try again
                  shortly
  schemas:
    BankAccountVerificationSyncRequestSchema:
      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: '26291800001191'
          default: '26291800001191'
        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: YESB0000001
          default: YESB0000001
        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
        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'
    BAVV2ValidationSuccessfulSchema:
      type: object
      properties:
        reference_id:
          type: integer
          description: >-
            It displays the unique ID created by Cashfree Payments for reference
            purposes.

            format: `int64`
          example: 23
        name_at_bank:
          type: string
          description: It displays the name of the account holder as per the bank records.
          example: JOHN DOE
        bank_name:
          type: string
          description: It displays the name of the bank.
          example: YES BANK
        utr:
          type: string
          description: >-
            It displays the unique transaction reference (UTR) number created by
            the bank to identify the transaction.
          example: '404223241811'
        city:
          type: string
          description: It displays the name of the city where the bank is located.
          example: MUMBAI
        branch:
          type: string
          description: >-
            It displays the name of the branch where the bank account is
            registered.
          example: SANTACRUZ, MUMBAI
        micr:
          type: integer
          description: >-
            It represents the code used to identify banks and branches
            participating in the Electronic Clearing System (ECS).
          example: 33
        name_match_score:
          type: string
          description: It displays the score of the name match verification.
          example: '90.00'
        name_match_result:
          type: string
          description: >-
            It displays the result of the name match verification.

            Possible values are:

            - `DIRECT_MATCH`

            - `GOOD_PARTIAL_MATCH`

            - `MODERATE_PARTIAL_MATCH`

            - `POOR_PARTIAL_MATCH`

            - `NO_MATCH`


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

            Possible values are:

            - `VALID`

            - `INVALID`


            [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: VALID
        account_status_code:
          type: string
          description: >-
            It displays the status code of the bank account.

            Possible values are:

            - `ACCOUNT_IS_VALID`

            - `INVALID_ACCOUNT_FAIL`

            - `ACCOUNT_BLOCKED`

            - `INVALID_IFSC_FAIL`

            - `NRE_ACCOUNT_FAIL`


            [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: ACCOUNT_IS_VALID
        ifsc_details:
          type: object
          description: It displays the details corresponding to IFSC.
          properties:
            bank:
              type: string
              description: It displays the name of the bank.
              example: Bank Name
            ifsc:
              type: string
              description: It displays the IFSC of the bank.
              example: HDFC000001
            ifsc_subcode:
              type: string
              description: It displays the first five characters of the IFSC.
              example: HDFC0
            address:
              type: string
              description: It displays the address of the bank's branch.
              example: GROUND FLOOR, 123, ABC CIRCLE, XYZ MAIN ROAD, MUMBAI - 560098
            city:
              type: string
              description: It represents the city of the bank's operational address.
              example: MUMBAI
            state:
              type: string
              description: It represents the state of the city where the bank operates.
              example: MAHARASHTRA
            branch:
              type: string
              description: It displays the name of the branch.
              example: SANTACRUZ, MUMBAI
            category:
              type: string
              description: It displays the IFSC category.
              example: SUB_MEMBER
            swift_code:
              type: string
              description: >-
                It represents the code to identify the bank branch that
                processes international transactions.
              example: ABCDINBBDCL
            micr:
              type: integer
              description: >-
                It represents the code used to identify banks and branches
                participating in the Electronic Clearing System (ECS).
              example: 560751026
            nbin:
              type: integer
              description: It represents the national bank identification number (NBIN).
              example: 1234
    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).

````