# Bank Account API

> Verify a Bank Account in real time. Endpoint: `POST https://api-b2b.stampmitra.in/v1/verify/bank-account`.

Price: ₹4 per successful call, pay-as-you-go (lower on Growth and Scale). Sandbox keys are free. Prices exclude 18% GST.

- HTML docs: https://developer.stampmitra.in/docs/verification/bank-account
- Product page: https://developer.stampmitra.in/products/bank-account
- Pricing: https://developer.stampmitra.in/pricing
- Authentication: https://developer.stampmitra.in/docs/auth

## Verify Bank Account

`POST https://api-b2b.stampmitra.in/v1/verify/bank-account`

Required scope: `verification.bank-account.read`

Validates and verifies a Bank Account. Requires the `verification.bank-account.read` scope on the API key. Metered as `bank-account.verify` after a successful response - usage is only recorded (and the fulfilment wallet debited, for priced services) once verification completes successfully. The response below is the exact real shape returned by `/v1/verify/bank-account`, including its `referenceId` field.

### Parameters

- `Authorization` (header, required): Bearer <api-key> (e.g. sk_test_... in sandbox, sk_live_... in production). The x-api-key header is also accepted.
- `accountNumber` (string, required): 9-18 digit numeric bank account number.
- `ifsc` (string, required): 11-character IFSC code, e.g. ICIC0001234.
- `name` (string, optional): Beneficiary name to match.
- `phone` (string, optional): Account holder's 10-digit Indian mobile number, when available; improves match confidence.

### Request example

```json
{
  "accountNumber": "000123456789",
  "ifsc": "ICIC0001234",
  "name": "Ravi Kumar"
}
```

### Response example

```json
{
  "referenceId": "SMV-20260927-3B71A0",
  "valid": true,
  "nameAtBank": "RAVI KUMAR",
  "bankName": "ICICI Bank",
  "utr": "017952100012345",
  "city": "Mumbai",
  "branch": "Andheri West",
  "micr": "400229002",
  "nameMatchScore": "100",
  "nameMatchResult": "GOOD_MATCH",
  "accountStatus": "ACCOUNT_IS_VALID",
  "accountStatusCode": "1",
  "ifscDetails": {
    "bank": "ICICI Bank",
    "ifsc": "ICIC0001234",
    "micr": "400229002",
    "address": "Andheri West, Mumbai",
    "city": "Mumbai",
    "state": "Maharashtra",
    "branch": "Andheri West"
  }
}
```

### Errors

- 401: Missing or invalid API key
- 403: Valid key, missing required scope
- 400: Validation error
- 402: Insufficient wallet balance
- 429: Rate limited
- 502: Upstream verification service unreachable

Notes: Input format is validated up front - a malformed pan/gstin/etc. fails fast with a 400 rather than being submitted for verification. referenceId (format SMV-YYYYMMDD-XXXXXXX) is StampMitra's own transaction id for this call and is always present, including on a negative (valid: false / found: false) result - both positive and negative determinations are completed, billable verifications. This is not an idempotency key.
