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

# Verify Bank Account

> Verify bank account via penny drop

# Verify Bank Account

Verifies bank account ownership via penny drop (₹1 transfer). This is a **required** verification for KYC completion.

<ParamField body="accountNumber" type="string" required>Bank account number (9-18 digits)</ParamField>
<ParamField body="ifsc" type="string" required>IFSC code (11 characters, e.g., HDFC0001234)</ParamField>
<ParamField body="accountHolderName" type="string" required>Name on account (must match Aadhaar name)</ParamField>
<ParamField body="deviceId" type="string">Device fingerprint/ID for FIU compliance. Must be captured from the client device.</ParamField>

## Request

```bash theme={null}
curl -X POST https://api.stablepay.global/v2/users/usr_abc123/kyc/bank/verify \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "accountNumber": "1234567890",
    "ifsc": "HDFC0001234",
    "accountHolderName": "Rahul Kumar",
    "deviceId": "device-fingerprint-12345"
  }'
```

## Response

```json theme={null}
{
  "success": true,
  "data": {
    "verified": true,
    "bankName": "HDFC Bank",
    "branch": "Mumbai Main Branch",
    "accountHolderName": "RAHUL KUMAR",
    "maskedAccountNumber": "XXXXXX7890",
    "ifsc": "HDFC0001234"
  }
}
```

`branch` is omitted when the bank does not return one — do not rely on its presence.

## Name Matching

The account holder name from the bank must match the user's Aadhaar name with at least 70% similarity. If names don't match:

```json theme={null}
{
  "success": false,
  "error": "Name Mismatch",
  "message": "Account holder name does not match Aadhaar name",
  "data": {
    "expected": "RAHUL KUMAR",
    "found": "R KUMAR",
    "matchScore": 65
  }
}
```

## Errors

| `error`                 | Description                                          |
| ----------------------- | ---------------------------------------------------- |
| `Validation Error`      | Invalid account number or IFSC format                |
| `Verification Failed`   | The account does not exist, or the penny drop failed |
| `Not Found`             | User not found                                       |
| `Internal Server Error` | Unexpected failure                                   |
