const customer = await afriex.customers.update("customer-id", {
fullName: "Jane Doe",
});
curl --request PATCH \
--url https://sandbox.api.afriex.com/api/v1/customer/{customerId} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"fullName": "Jane Doe"
}
'import requests
url = "https://sandbox.api.afriex.com/api/v1/customer/{customerId}"
payload = { "fullName": "Jane Doe" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({fullName: 'Jane Doe'})
};
fetch('https://sandbox.api.afriex.com/api/v1/customer/{customerId}', 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}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'fullName' => 'Jane Doe'
]),
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}"
payload := strings.NewReader("{\n \"fullName\": \"Jane Doe\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://sandbox.api.afriex.com/api/v1/customer/{customerId}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"fullName\": \"Jane Doe\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.afriex.com/api/v1/customer/{customerId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fullName\": \"Jane Doe\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"name": "Jane Doe",
"email": "jane.doe@example.com",
"phone": "+2348192837465",
"customerId": "69d5ffe1ab82306f11b032f3",
"reference": "afx121011",
"countryCode": "NG",
"createdAt": "2026-04-08T07:12:33.519Z",
"updatedAt": "2026-04-08T07:20:11.004Z"
}
}Update Customer
Partially updates a customer’s profile. Send at least one of fullName, email, or phone; omitted fields are left unchanged.
const customer = await afriex.customers.update("customer-id", {
fullName: "Jane Doe",
});
curl --request PATCH \
--url https://sandbox.api.afriex.com/api/v1/customer/{customerId} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"fullName": "Jane Doe"
}
'import requests
url = "https://sandbox.api.afriex.com/api/v1/customer/{customerId}"
payload = { "fullName": "Jane Doe" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({fullName: 'Jane Doe'})
};
fetch('https://sandbox.api.afriex.com/api/v1/customer/{customerId}', 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}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'fullName' => 'Jane Doe'
]),
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}"
payload := strings.NewReader("{\n \"fullName\": \"Jane Doe\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://sandbox.api.afriex.com/api/v1/customer/{customerId}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"fullName\": \"Jane Doe\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.afriex.com/api/v1/customer/{customerId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fullName\": \"Jane Doe\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"name": "Jane Doe",
"email": "jane.doe@example.com",
"phone": "+2348192837465",
"customerId": "69d5ffe1ab82306f11b032f3",
"reference": "afx121011",
"countryCode": "NG",
"createdAt": "2026-04-08T07:12:33.519Z",
"updatedAt": "2026-04-08T07:20:11.004Z"
}
}fullName, email, or phone; any field you omit is left unchanged.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 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
Signature of the request payload, used for request authentication where payload signing is enabled for your business.
API version in ISO 8601 format (e.g. 2025-12-28). Defaults to latest stable.
Path Parameters
The unique identifier of the customer
Body
Response
Customer updated successfully.
Show child attributes
Show child attributes
