const customer = await afriex.customers.create({
fullName: "John Doe",
email: "john@example.com",
phone: "+1234567890",
countryCode: "US",
});curl --request POST \
--url https://sandbox.api.afriex.com/api/v1/customer \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"fullName": "Jane Smith",
"email": "jane.smith@example.com",
"phone": "+2348192837465",
"countryCode": "NG"
}
'import requests
url = "https://sandbox.api.afriex.com/api/v1/customer"
payload = {
"fullName": "Jane Smith",
"email": "jane.smith@example.com",
"phone": "+2348192837465",
"countryCode": "NG"
}
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({
fullName: 'Jane Smith',
email: 'jane.smith@example.com',
phone: '+2348192837465',
countryCode: 'NG'
})
};
fetch('https://sandbox.api.afriex.com/api/v1/customer', 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",
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([
'fullName' => 'Jane Smith',
'email' => 'jane.smith@example.com',
'phone' => '+2348192837465',
'countryCode' => 'NG'
]),
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"
payload := strings.NewReader("{\n \"fullName\": \"Jane Smith\",\n \"email\": \"jane.smith@example.com\",\n \"phone\": \"+2348192837465\",\n \"countryCode\": \"NG\"\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")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"fullName\": \"Jane Smith\",\n \"email\": \"jane.smith@example.com\",\n \"phone\": \"+2348192837465\",\n \"countryCode\": \"NG\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.afriex.com/api/v1/customer")
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 \"fullName\": \"Jane Smith\",\n \"email\": \"jane.smith@example.com\",\n \"phone\": \"+2348192837465\",\n \"countryCode\": \"NG\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"name": "Jane Smith",
"email": "jane.smith@example.com",
"phone": "+2348192837465",
"customerId": "69d5ffe1ab82306f11b032f3",
"reference": "afx121011",
"countryCode": "NG",
"createdAt": "2026-04-08T07:12:33.519Z",
"updatedAt": "2026-04-08T07:12:33.519Z"
}
}Create Customer
Creates a new customer for a business, with optional KYC information.
const customer = await afriex.customers.create({
fullName: "John Doe",
email: "john@example.com",
phone: "+1234567890",
countryCode: "US",
});curl --request POST \
--url https://sandbox.api.afriex.com/api/v1/customer \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"fullName": "Jane Smith",
"email": "jane.smith@example.com",
"phone": "+2348192837465",
"countryCode": "NG"
}
'import requests
url = "https://sandbox.api.afriex.com/api/v1/customer"
payload = {
"fullName": "Jane Smith",
"email": "jane.smith@example.com",
"phone": "+2348192837465",
"countryCode": "NG"
}
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({
fullName: 'Jane Smith',
email: 'jane.smith@example.com',
phone: '+2348192837465',
countryCode: 'NG'
})
};
fetch('https://sandbox.api.afriex.com/api/v1/customer', 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",
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([
'fullName' => 'Jane Smith',
'email' => 'jane.smith@example.com',
'phone' => '+2348192837465',
'countryCode' => 'NG'
]),
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"
payload := strings.NewReader("{\n \"fullName\": \"Jane Smith\",\n \"email\": \"jane.smith@example.com\",\n \"phone\": \"+2348192837465\",\n \"countryCode\": \"NG\"\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")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"fullName\": \"Jane Smith\",\n \"email\": \"jane.smith@example.com\",\n \"phone\": \"+2348192837465\",\n \"countryCode\": \"NG\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.afriex.com/api/v1/customer")
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 \"fullName\": \"Jane Smith\",\n \"email\": \"jane.smith@example.com\",\n \"phone\": \"+2348192837465\",\n \"countryCode\": \"NG\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"name": "Jane Smith",
"email": "jane.smith@example.com",
"phone": "+2348192837465",
"customerId": "69d5ffe1ab82306f11b032f3",
"reference": "afx121011",
"countryCode": "NG",
"createdAt": "2026-04-08T07:12:33.519Z",
"updatedAt": "2026-04-08T07:12:33.519Z"
}
}Authorizations
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 is rejected with a 401 Unauthorized response, the same response an unrecognised, malformed or revoked key returns. The API does not distinguish the two cases on the wire. Manage your keys and their permissions under Developer → API keys in the dashboard.
Headers
API version in ISO 8601 format. The only supported version is 2026-05-18, which is also the default when the header is omitted. Any other value is rejected with a 400 Bad Request.
Body
The full name of the customer.
"John Doe"
The email address of the customer.
"john.doe@example.com"
The phone number of the customer.
"+2348192837465"
The ISO 3166-1 alpha-2 country code of the customer (e.g., 'NG', 'US').
"NG"
Optional meta data you can attach to the customer.
Response
Customer created successfully. Returns the newly created customer object.
Show child attributes
Show child attributes
