---
title: "Verify a customer document"
method: POST
path: "/api/v1/customer/{customerId}/verify"
tags: ["Customers"]
---

# Verify a customer document

`POST /api/v1/customer/{customerId}/verify`

## Request

- Base URL: `https://sandbox.api.afriex.com`
- URL: `https://sandbox.api.afriex.com/api/v1/customer/{customerId}/verify`
- Auth: API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/afriex/apis/afriex-business-api/docs/api/v1/customer/:customerId/verify/post.ts> (a function with typed inputs; its response is checked against the schema)

Runs an identity verification against a customer document. Today the only supported `docType` is `BVN` (Nigeria); `docValue` is the document number. Verification is rate limited per business. The `200` response carries the customer's stored KYC documents in `meta.kyc.data`.

## Path parameters

- `customerId` string, required

## Request body

- object
  - `docType` 'BVN', required: The type of document to verify.
  - `docValue` string, required: The document number to verify. A `BVN` must be exactly 11 digits and its registered name must match the customer's name. A malformed `BVN` is rejected with `400`, not `422`.

## Response `200`

Customer verified successfully.

- object
  - `data` Customer
    - `customerId` string: The unique identifier for the customer.
    - `reference` string: A shortened reference for the customer. Returned on every customer response (create, list, by-ID, update, KYC and verify) and used as the pool-account reference when submitting a payment proof. Falls back to the customer id when no shortened reference has been assigned.
    - `name` string: The full name of the customer.
    - `email` string, email: The email of the customer.
    - `phone` string: The phone number of the customer in E.164 format.
    - `countryCode` string: The country code of the customer in ISO 3166-1 alpha-2 format.
    - `meta` object: Optional meta data you can attach to the customer. On the responses of `PATCH /api/v1/customer/{customerId}/kyc` and `POST /api/v1/customer/{customerId}/verify` this holds `meta.kyc.data`, the customer's stored KYC documents, in place of your meta data.
    - `createdAt` string: The date and time the customer was created.
    - `updatedAt` string: The date and time the customer was last updated.

## Other responses

- `400`: Malformed customer ID in the path, or the document was rejected.
- `401`: Unauthorized.
- `404`: Customer not found.
- `422`: Request failed schema validation. `details.friendlyMessage` carries the specific field error.
- `429`: Too many verification requests.
- `500`: Server error.
- `503`: Temporarily unavailable: the upstream BVN enquiry failed, or another upstream service failed or timed out, or the API is momentarily offline. Retry with backoff and honour the Retry-After header when present.

---

[API](https://skmtc.dev/afriex/apis/afriex-business-api.md) - [All operations](https://skmtc.dev/afriex/apis/afriex-business-api/llms.txt) - [OpenAPI document](https://skmtc.dev/afriex/apis/afriex-business-api/revisions/d94198b6c256?raw)
