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

# Bank Account v2

> Verify bank account details using account number and IFSC code with optional penny drop verification

## Overview

The Bank Account Verification v2 API verifies bank account details in real-time by validating the account number and IFSC code combination. It provides comprehensive account information including holder name, bank details, and branch information. Optionally, penny drop verification can be performed for enhanced accuracy.

### Key Features

* ✅ **Real-time Verification**: Instant account validation
* ✅ **Account Holder Name**: Retrieve registered account holder name
* ✅ **Bank Details**: Complete bank and branch information
* ✅ **Penny Drop**: Optional penny drop for enhanced verification
* ✅ **Name Matching**: Optional name match score calculation
* ✅ **Branch Details**: Full branch address, city, and state information

### What's New in v2

* Simplified request parameters (`bank_account_no` and `bank_ifsc_code`)
* Enhanced response with detailed bank branch information
* Improved error handling with specific error codes
* Better penny drop transaction tracking
* Consistent response structure across all APIs


## OpenAPI

````yaml POST /v2/verification/bank-account/
openapi: 3.0.0
info:
  title: KonnectNXT API Store
  description: >-
    A sample API that uses a plant store as an example to demonstrate features
    in the OpenAPI specification
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://bgv.konnectnxt.com/api
    description: Production
  - url: https://testbgv.konnectnxt.com/api
    description: QA
security:
  - bearerAuth: []
paths:
  /v2/verification/bank-account/:
    post:
      tags:
        - Financial Verification
      summary: Bank Account Verification (v2)
      description: >-
        Verifies bank account details using account number and IFSC code.
        Optionally performs penny drop verification for enhanced accuracy.
      operationId: verifyBankAccountV2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankAccountV2Request'
            examples:
              Example:
                summary: Bank account verification with penny drop
                value:
                  bank_account_no: '50269545'
                  bank_ifsc_code: KKBK0005391
                  penny_drop: true
      responses:
        '200':
          description: Bank account verified successfully
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/APIBaseResponse'
                  - type: object
                    required:
                      - data
                    properties:
                      data:
                        $ref: '#/components/schemas/BankAccountV2Data'
                  - $ref: '#/components/schemas/Credits'
              examples:
                Success:
                  summary: Successful bank account verification
                  value:
                    status: success
                    code: 200
                    message: Operation completed successfully
                    data:
                      accountExists: 'YES'
                      accountNumber: '98765432109876'
                      ifscCode: SBIN0001234
                      accountHolderName: JOHN DOE
                      bankName: ''
                      branchName: ''
                      branchAddress: ''
                      city: ''
                      state: ''
                      verificationStatus: VERIFIED
                      nameMatchScore: ''
                      isPennyDrop: true
                      transactionRemark: Bank Account Verified
                    credits_used: 10
                    credits_remaining: 984148.5
        '400':
          description: Bad request due to invalid input data
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - $ref: '#/components/schemas/APIErrorData'
              examples:
                Invalid Account Number:
                  summary: Account number contains non-numeric characters
                  value:
                    status: error
                    code: 400
                    message: Account number must contain only digits.
                    data: null
                Invalid Account Format:
                  summary: Invalid account number format
                  value:
                    status: error
                    code: 400
                    message: Invalid account number.
                    data: null
                Invalid IFSC Code:
                  summary: IFSC code format is invalid
                  value:
                    status: error
                    code: 400
                    message: Invalid IFSC code format.
                    data: null
        '401':
          $ref: '#/components/responses/401'
        '402':
          $ref: '#/components/responses/402'
        '403':
          $ref: '#/components/responses/403'
        '404':
          description: Bank account not found
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - $ref: '#/components/schemas/APIErrorData'
              examples:
                Account Not Found:
                  summary: No bank account found for the provided details
                  value:
                    status: error
                    code: 404
                    message: No Bank Account Found
                    data: null
        '500':
          $ref: '#/components/responses/500'
components:
  schemas:
    BankAccountV2Request:
      type: object
      required:
        - bank_account_no
        - bank_ifsc_code
      properties:
        bank_account_no:
          type: string
          description: Bank account number (digits only, minimum 9 characters)
          pattern: ^[0-9]+$
          minLength: 9
          example: '98765432109876'
        bank_ifsc_code:
          type: string
          description: >-
            IFSC code (11 characters: 4 letters + 0 + 6 alphanumeric). Example:
            SBIN0001234
          pattern: ^[A-Z]{4}0[A-Z0-9]{6}$
          minLength: 11
          maxLength: 11
          example: SBIN0001234
        penny_drop:
          type: boolean
          description: >-
            Whether to perform penny drop verification (deposits and verifies a
            small amount)
          default: true
          example: true
    APIBaseResponse:
      type: object
      required:
        - status
        - code
        - message
      properties:
        status:
          $ref: '#/components/schemas/APIStatus'
        code:
          $ref: '#/components/schemas/HTTPCode'
        message:
          $ref: '#/components/schemas/APIMessage'
    BankAccountV2Data:
      type: object
      required:
        - accountExists
        - accountNumber
        - ifscCode
        - verificationStatus
      properties:
        accountExists:
          type: string
          enum:
            - 'YES'
            - 'NO'
          description: Whether the account exists
          example: 'YES'
        accountNumber:
          type: string
          description: Bank account number
          example: '98765432109876'
        ifscCode:
          type: string
          description: IFSC code of the bank branch
          example: SBIN0001234
        accountHolderName:
          type: string
          description: Name of the account holder
          example: JOHN DOE
        bankName:
          type: string
          description: Name of the bank
          example: State Bank of India
        branchName:
          type: string
          description: Name of the bank branch
          example: Main Branch
        branchAddress:
          type: string
          description: Address of the bank branch
          example: 123 Banking Street, Financial District
        city:
          type: string
          description: City of the bank branch
          example: Mumbai
        state:
          type: string
          description: State of the bank branch
          example: Maharashtra
        verificationStatus:
          type: string
          enum:
            - VERIFIED
            - NOT_VERIFIED
            - PENDING
          description: Verification status of the bank account
          example: VERIFIED
        nameMatchScore:
          type: string
          description: Name match score (0-100) if name matching was performed
          example: '100'
        isPennyDrop:
          type: boolean
          description: Whether penny drop was performed
          example: true
        transactionRemark:
          type: string
          description: Transaction remark or status message
          example: Bank Account Verified
    Credits:
      type: object
      properties:
        credits_used:
          $ref: '#/components/schemas/CreditsUsed'
        credits_left:
          $ref: '#/components/schemas/CreditsLeft'
      required:
        - credits_used
        - credits_left
    Error:
      allOf:
        - $ref: '#/components/schemas/APIBaseResponse'
    APIErrorData:
      type: object
      properties:
        data:
          type: object
          nullable: true
          example: null
    APIStatus:
      type: string
      enum:
        - success
        - error
      description: Overall status of the API
    HTTPCode:
      type: integer
      description: HTTP status code
      example: 400
    APIMessage:
      type: string
      description: Description of the response or error
      example: Invalid request parameters
    CreditsUsed:
      type: integer
      description: Represents the total number of credits used in this request.
      example: 3
    CreditsLeft:
      type: integer
      description: 'Represents the remaining credits available for use. '
      example: 4040
  responses:
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - $ref: '#/components/schemas/APIErrorData'
          examples:
            Missing Token:
              summary: Bearer token is missing or invalid.
              value:
                status: error
                code: 401
                message: Bearer token is missing or invalid.
                data: null
            Incorrect Token Format:
              summary: Token format is incorrect
              value:
                status: error
                code: 401
                message: Token format is incorrect
                data: null
            No Admin Found:
              summary: No admin found for this request
              value:
                status: error
                code: 401
                message: No admin user found for this organization
                data: null
            Invalid API Key:
              summary: Invalid API Key
              value:
                status: error
                code: 401
                message: Invalid API key (organization ID)
                data: null
            User not Found:
              summary: User not found
              value:
                status: error
                code: 401
                message: User not found.
                data: null
    '402':
      description: Payment Required
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - $ref: '#/components/schemas/APIErrorData'
          examples:
            Credit Limit Exceed:
              summary: Credit Limit Exceeded.
              value:
                status: error
                code: 402
                message: Credit Limit Exceeded.
                data: null
            Insufficient Credits:
              summary: Insufficient credits
              value:
                status: error
                code: 402
                message: 'Insufficient credits: 2 required, 1 remaining.'
                data: null
    '403':
      description: Forbidden
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - $ref: '#/components/schemas/APIErrorData'
          examples:
            Token Revoked:
              summary: Token access has been Revoked, Contact Support.
              value:
                status: error
                code: 403
                message: Token access has been Revoked, Contact Support.
                data: null
            Token Inactive:
              summary: Token is Inactive, Contact Support.
              value:
                status: error
                code: 403
                message: Token is Inactive, Contact Support.
                data: null
    '500':
      description: Internal Server Error
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - $ref: '#/components/schemas/APIErrorData'
          examples:
            Internal Server Error:
              summary: Internal Server Error.
              value:
                status: error
                code: 500
                message: Internal Server Error.
                data: null
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key issued by KonnectNXT. Pass as `Authorization: Bearer
        <your_api_key>`.

````