---
title: "Verify an external account"
---
Before you [add an external account](/platform/external-accounts/add-an-external-account), you can verify the recipient's account with their institution. Verification confirms the account holder's name and that the account is reachable, so you can show the resolved name to your user and avoid failed transfers.

Use the [Verify an external account](/api-reference/external-accounts/post-v1-external-accounts-verify) endpoint with at least one account identifier: `account_number`, `iban`, `phone`, or `clabe`. Pass `institution_id` (from [Get external account institutions](/api-reference/external-accounts/get-v1-external-accounts-institutions)) to speed up and disambiguate the lookup.

Verification is supported for bank accounts and mobile money today. Other types return `is_verified: false`.

## Verify a bank account

```bash title="verify a bank account request"
curl --request POST \
     --url https://api.gravv.xyz/v1/external-accounts/verify \
     --header 'Api-Key: <API_KEY>' \
     --header 'content-type: application/json' \
     --data '
{
  "account_number": "1776218486",
  "institution_id": "c0cb83fa-8116-4744-8bc8-0c1cba405400",
  "country_code": "NG"
}
'
```

When the account resolves, `is_verified` is `true` and `account_name` holds the confirmed holder name:

```json title="verify a bank account response"
{
  "data": {
    "is_verified": true,
    "account_name": "Amina Bello",
    "account_number": "1776218486",
    "account_status": "active",
    "account_type": "bank_account",
    "bank_name": "Access Bank",
    "bank_code": null,
    "address": null,
    "institutions": null
  },
  "error": null
}
```

## When an account does not resolve

If the account cannot be resolved, `is_verified` is `false`. Any institutions that matched the identifier come back in `institutions` so the user can pick the right one and retry:

```json title="unresolved account response"
{
  "data": {
    "is_verified": false,
    "account_name": null,
    "account_number": "1776218486",
    "institutions": [
      {
        "id": "c0cb83fa-8116-4744-8bc8-0c1cba405400",
        "name": "Access Bank",
        "country_iso_code": "NG",
        "currency": "NGN"
      }
    ]
  },
  "error": null
}
```

A `400` means no identifier was supplied, or the one you sent failed format validation. Fix the input and retry.

