POSTBank Account Verification
Verify a bank account by transferring ₹1 (penny drop) and retrieve the account holder name, account status, and branch details in real time.
- Moves money: Moves real money and cannot be undone. After a timeout, confirm the outcome before ever re-sending.
- ₹3.00 + GST / verification: Charged per successful call; failed calls are free.
Performs a live penny-drop transaction of ₹1 to the specified bank account and returns the account holder name as registered with the bank, account status, bank/branch details, and the Eko transaction id (tid). Use this before payouts to prevent failures and fraud. The ₹1 is credited to the beneficiary — no refund occurs. Supports all IMPS-enabled banks in India.
Request
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
initiator_id | string | required | Registered mobile number of the API user (see Platform Credentials).e.g. 9962981729 |
client_ref_id | string | optional | Unique reference ID per API call, generated by your system (10–20 characters; 10 recommended). The SDKs generate one for every non-GET call when you don't.e.g. 2026010100123456789 |
bank_account | string | required | Complete bank account number to be verified. Send as a string to preserve leading zeros.e.g. 026291800001191 |
ifscIFSC Code | string | required | IFSC code of the bank account to be verified (11-character alphanumeric).e.g. YESB0000262 |
initiator_idstringRequiredRegistered mobile number of the API user (see Platform Credentials).
example: 9962981729
client_ref_idstringoptionalUnique reference ID per API call, generated by your system (10–20 characters; 10 recommended). The SDKs generate one for every non-GET call when you don't.
example: 2026010100123456789
bank_accountstringRequiredComplete bank account number to be verified. Send as a string to preserve leading zeros.
example: 026291800001191
ifscstringRequired· IFSC CodeIFSC code of the bank account to be verified (11-character alphanumeric).
example: YESB0000262
These headers authenticate and sign every request. See How Auth Works for details.
| Field | Type | Required | Description |
|---|---|---|---|
developer_key | string | required | Static API key issued to your account after KYC. |
secret-key | string | required | Dynamic per-request signature: base64(HMAC-SHA256(timestamp, base64(access_key))). |
secret-key-timestamp | string | required | Current time in milliseconds since UNIX epoch, used to compute secret-key. Must match server time. |
content-type | string | required | application/jsone.g. application/json |
developer_keystringRequiredStatic API key issued to your account after KYC.
secret-keystringRequiredDynamic per-request signature: base64(HMAC-SHA256(timestamp, base64(access_key))).
secret-key-timestampstringRequiredCurrent time in milliseconds since UNIX epoch, used to compute secret-key. Must match server time.
content-typestringRequiredapplication/json
example: application/json
Responses
statusnumberPrimary success indicator (0 = success).
messagestringHuman-readable response / error message.
response_status_idnumberUI display hint only (-1/0 success, 1 failure, 2 initiated, 3 refund initiated, 4 refunded). Never branch on it — use `status` (and `tx_status` for financial APIs), or `response_type_id` where documented.
response_type_idnumberA unique id for every possible response shape (success or error) — useful for client logic branching and analytics.
dataobjectAPI-specific response payload.
name_at_bankstringAccount holder name as registered with the bank. Use for name matching against provided details.
account_statusstringVerification outcome for the account (e.g. VALID).
account_status_codestringMachine-readable account status code (e.g. ACCOUNT_IS_VALID).
bank_namestringName of the bank associated with the account.
branchstringBranch name associated with the IFSC code.
citystringCity where the bank branch is located.
micrnumberMICR (ECS identification) code of the branch.
reference_idnumberUnique reference id created for this verification.
tidnumberEko transaction id for this verification. Persist it for reconciliation.