---
title: "Update customer KYC information"
method: PATCH
path: "/api/v1/customer/{customerId}/kyc"
tags: ["Customers"]
---

# Update customer KYC information

`PATCH /api/v1/customer/{customerId}/kyc`

## Request

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

Partially updates a customer's KYC information.

## Path parameters

- `customerId` string, required

## Request body

- object: A flat map of KYC document types to their values. Send the document map directly as the request body (do not wrap it in a `kyc` field). Each key must be one of the allowed KYC document types and each value is a string. `PHONE` and `COUNTRY` are not accepted here; they are profile fields owned by `PATCH /api/v1/customer/{customerId}`. `BVN` is not accepted either; it is owned by `POST /api/v1/customer/{customerId}/verify`, which writes it only after a successful bank verification. Sending any of the three returns `400 INVALID_KYC_DOCUMENT_TYPE`, as does an empty body. Value rules: `DATE_OF_BIRTH` must be a valid `YYYY-MM-DD` date for a customer aged 13 to 75; every other value must be at least 2 characters. A value that breaks a rule returns `400 INVALID_KYC_DOCUMENT_TYPE`.

## Response `200`

Customer updated 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 an invalid KYC document map.
- `401`: Unauthorized.
- `404`: Customer not found.
- `500`: Server error.
- `503`: Temporarily unavailable: an 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)
