---
title: "Bank Account Verification v2"
method: POST
path: "/v2/verify/bank_verification"
tags: ["Bank Verification v2"]
---

# Bank Account Verification v2

`POST /v2/verify/bank_verification`

Verifies a bank account number and IFSC using the customer's configured BAV v2 setup.

Depending on customer configuration, the request may be served by a single vendor or by an orchestrated vendor sequence. In an orchestrated setup, non-retryable data errors such as invalid IFSC, invalid account number, or invalid/nonexistent account are returned without attempting another vendor. Retryable vendor or system failures may be routed to the next configured vendor.

Do not treat HTTP 200 alone as verification success. A completed verification request can return HTTP 200 with `status: failed`. Clients should use `status == "success"` for successful verification and inspect `error_code` for failed business outcomes.

## Request body

- BankVerificationV2Request
  - `account_number` string, required — Bank account number to verify.
  - `ifsc_code` string, required — IFSC code for the bank branch.

## Response `200`

Verification completed. Check `status` and `error_code` for the business result.

- union
  - BankVerificationV2SuccessResponse
    - `status` string
    - `message` string
    - `data` BankVerificationV2Data
      - `account_status` string
      - `account_holder_name` string, nullable
      - `account_number` string, nullable
      - `account_ifsc` string, nullable
      - `failure_reason` string, nullable
      - `extras` object, nullable — Additional normalized bank, branch, and vendor status metadata. Fields vary by provider response.
    - `error_code` string, nullable
    - `tranx_id` string
    - `timestamp` string
    - `chargeble` string, nullable
    - `user_consent` string, nullable
  - BankVerificationV2FailureResponse
    - `status` string
    - `error_code` string — Normalized IDTO error code. Use this with status to determine business outcome and retry behavior.
    - `message` string
    - `tranx_id` string
    - `timestamp` string

## Other responses

- `401` — Invalid or missing authentication credentials.
- `422` — Request body validation failed. Check required fields and JSON format.
- `500` — Internal server error (IDTO_008) — byte-identical legacy body {"error_code":"IDTO_008","message":"Internal server error"}.

---

[API](https://skmtc.dev/idto/apis/verification-api.md) · [All operations](https://skmtc.dev/idto/apis/verification-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/idto/verification-api/revisions/e3d57dab8db4/schema)
