---
title: "Verify Bank Account"
method: POST
path: "/v1/bank-account/verify"
tags: ["Bank Account Verification"]
---

# Verify Bank Account

`POST /v1/bank-account/verify`

## Request

- Base URL: `https://api.verihubs.com`
- URL: `https://api.verihubs.com/v1/bank-account/verify`
- Auth: none declared. Required headers: `App-ID`, `API-Key`

Verihubs Bank Account Verification validates bank account ownership. It helps prevent fraud, ensure accurate payouts, and support secure onboarding. Please check [Verihubs Guidelines](https://docs.verihubs.com/docs/verihubs-bank-account-verification) to learn more on how to use this endpoint.

This method verifies a bank account and returns the account name registered for the given bank code and account number.

Create your `App-ID` and `API-Key` on the [Verihubs dashboard](https://app.verihubs.com/application).

#### Outcome Description

Outcome | HTTP Status | Error Code | Charged |
-----------|:-----------|:-----------|:-----------|
Account exists | 200 | - | See your commercial agreement |
Account does not exist | 400 | VHB_40010 | Yes |
Account is dormant | 400 | VHB_40011 | Yes |
Account is closed | 400 | VHB_40012 | Yes |

Account status outcomes (not found, dormant, closed) are returned as `400` responses with an `error_code`. Use `error_code`, not only the HTTP status, to decide how to handle a response.

#### Error Code Description

Error Code | Name | Message | HTTP | Charge Status |
-----------|:-----------|:-----------|:-----------|:-----------|
VHB_50000 | INTERNAL_ERROR | There's a problem with our system. | 500 | Not charged |
VHB_40000 | BAD_REQUEST | There's a problem with your request | 400 | Not charged |
VHB_40001 | BAD_HEADERS | There's a problem with your request Headers | 400 | Not charged |
VHB_40001 | BAD_PAYLOAD | There's a problem with your JSON payload | 422 | Not charged |
VHB_40002 | NOT_AUTHORIZED | You don't have permission to access this resource | 401 | Not charged |
VHB_40003 | HTTP_ERROR | There's a problem with the HTTP Request | 400 | Not charged |
VHB_40004 | INSUFFICIENT_QUOTA | You don't have enough quota; please contact our admin | 400 | Not charged |
VHB_40010 | BAD_REQUEST | Account does not exist | 400 | Charged |
VHB_40011 | BAD_REQUEST | Account is dormant | 400 | Charged |
VHB_40012 | BAD_REQUEST | Account is closed | 400 | Charged |
VHB_42900 | TOO_MANY_REQUESTS | Too many requests | 429 | Not charged |

## Headers

- `App-ID` string, required
- `API-Key` string, required

## Request body

- BankAccountVerify
  - `bank_code` string, required: Bank code (the bank's short name). Not case-sensitive (`BCA` and `bca` are equivalent). Find all accepted values [here.](https://docs.verihubs.com/docs/list-of-supported-banks)
  - `account_number` string, required: Account number to verify. Digits only.
  - `reference_id` string: Optional. Unique ID from your system, useful for reconciliation. If empty or not included in the request, Verihubs will generate the unique reference_id.

## Response `200`

Successful Response

- ResponseBankAccountVerify
  - `message` string, required: Message
  - `data` object, required: Shows results of verification
    - `id` string: Transaction ID.
    - `account_name` string: Account name from the requested account number.
    - `bank_code` string: Bank code from the requested account number.
    - `account_number` string: The requested account number.
    - `reference_id` string: Reference ID of the requested result.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `422`: Unprocessable Entity
- `429`: Too Many Request
- `500`: Internal Server Error

---

[API](https://skmtc.dev/verihubs/apis/data-api-documentation.md) - [All operations](https://skmtc.dev/verihubs/apis/data-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/verihubs/apis/data-api-documentation/revisions/85f2e8ecf82d?raw)
