Skip to main content
POST
/
api
/
v1
/
customer
/
{customerId}
/
verify
Afriex SDK
const customer = await afriex.customers.verify("customer-id", {
  docType: "BVN",
  docValue: "22222222222",
});
curl --request POST \
--url https://sandbox.api.afriex.com/api/v1/customer/{customerId}/verify \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"docType": "BVN",
"docValue": "22222222222"
}
'
import requests

url = "https://sandbox.api.afriex.com/api/v1/customer/{customerId}/verify"

payload = {
"docType": "BVN",
"docValue": "22222222222"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({docType: 'BVN', docValue: '22222222222'})
};

fetch('https://sandbox.api.afriex.com/api/v1/customer/{customerId}/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.api.afriex.com/api/v1/customer/{customerId}/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'docType' => 'BVN',
'docValue' => '22222222222'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://sandbox.api.afriex.com/api/v1/customer/{customerId}/verify"

payload := strings.NewReader("{\n \"docType\": \"BVN\",\n \"docValue\": \"22222222222\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://sandbox.api.afriex.com/api/v1/customer/{customerId}/verify")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"docType\": \"BVN\",\n \"docValue\": \"22222222222\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://sandbox.api.afriex.com/api/v1/customer/{customerId}/verify")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"docType\": \"BVN\",\n \"docValue\": \"22222222222\"\n}"

response = http.request(request)
puts response.read_body
{
  "data": {
    "name": "Jane Smith",
    "email": "jane.smith@example.com",
    "phone": "+2348192837465",
    "customerId": "69d5ffe1ab82306f11b032f3",
    "countryCode": "NG",
    "createdAt": "2026-04-08T07:12:33.519Z",
    "updatedAt": "2026-04-08T07:21:09.872Z"
  }
}
Run an identity verification against a customer document. Today the only supported document type is the Nigerian BVN; pass it as docType: "BVN" with the number in docValue.
Verification is rate limited per business. If you exceed the limit, the endpoint returns 429 Too Many Requests.

Authorizations

x-api-key
string
header
required

Static business API key issued from the dashboard. A business can provision multiple API keys, each scoped to a configurable set of permissions (e.g. read transactions, create deposits, etc). Permissions are chosen per key at creation time in the dashboard and may be revoked by deleting the key. Requests made with a key that does not include the permission required by the target endpoint will be rejected with a 403 Forbidden response; an unrecognised, malformed or revoked key returns 401 Unauthorized. Manage your keys and their permissions under Developer → API keys in the dashboard.

Headers

x-api-version
string

API version in ISO 8601 format (e.g. 2025-12-28). Defaults to latest stable.

Path Parameters

customerId
string
required

The unique identifier of the customer

Body

application/json
docType
enum<string>
required

The type of document to verify.

Available options:
BVN
docValue
string
required

The document number to verify.

Minimum string length: 1

Response

Customer verified successfully.

data
object