Add KYC details for a customer. Verification stays PENDING until documents are uploaded and reviewed. The customer's country must match the country on the identity document submitted for KYC. Accepted identity documents: Driver's License, Passport, or Resident Permit for individual customers, Certificate of Incorporation for business customers. ID cards (National Identity Cards) are not accepted. All uploaded documents must be clear, legible, and authentic — unclear images will be rejected. Fraudulent or falsified documents will result in the customer being permanently blacklisted from the platform. Required scope: customer:write.

POSTapi-prod.blaaiz.com/api/external/customer/{id}/kyc-data

Authorization

oauth2ClientCredentials customer:write
AuthorizationBearer <token>

Use your OAuth client credentials to obtain a short-lived Bearer token from POST /oauth/token.

In: header

Scope: customer:write

Path Parameters

id*string

Customer ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

Add KYC details
curl --request POST \  --url 'https://example.com/api/external/customer/string/kyc-data' \  --header 'Content-Type: application/json' \  --data '{  "dob": "1990-01-01",  "street": "123 Main St",  "city": "Lagos",  "zip_code": "100001",  "id_expiry_date": "2030-12-31"}'
{  "message": "Business customer KYC data updated successfully.",  "data": {    "id": "9d4c4ec5-59ea-4130-bf8a-6a5edec401ee",    "business_id": "9d4c4ec5-572d-49de-a362-f01ed09f2b1b",    "first_name": "John",    "last_name": "Doe",    "business_name": null,    "type": "individual",    "email": "john.doe@company.com",    "country": "NG",    "id_type": "passport",    "id_number": "6733823632872",    "verification_status": "PENDING",    "kyc_data": {}  }}

PUTUpdate a customer

Update customer profile details. Non-verified customers can update all fields. Verified customers can only update fields that are currently null — if you need to correct a mistake on a verified customer (wrong document, misspelled name, incorrect details), you must request a manual correction from the Blaaiz operations team by emailing support@blaaiz.com. See the Customer data corrections guide for the full process. The customer's country must match the country on the identity document submitted for KYC. Accepted identity documents: Driver's License, Passport, or Resident Permit for individual customers, Certificate of Incorporation for business customers. ID cards (National Identity Cards) are not accepted. All uploaded documents must be clear, legible, and authentic — unclear images will be rejected. Fraudulent or falsified documents will result in the customer being permanently blacklisted from the platform. Required scope: `customer:write`.

POSTUpload files for a customer

**Individual customers only.** Upload verification files for an individual customer. Use `file_id` values from the File API presigned upload. Newly uploaded files override previous records. The `id_file` must be uploaded for verification. **Do not call this endpoint for `type=business` customers.** Business-type customers use the KYB flow — see [Business customer KYB](/docs/guides/kyb/overview). The legacy `id_file_path` is not consulted by `/submit` for business customers, so calling this endpoint achieves nothing for them. The identity document must be a Driver's License, Passport, or Resident Permit. ID cards (National Identity Cards) are not accepted. No other document types are accepted. All uploaded documents must be clear, legible, and authentic — unclear images will be rejected. Fraudulent or falsified documents will result in the customer being permanently blacklisted from the platform. IMPORTANT: Verification is not instant. After documents are uploaded, they go through a review process. This typically takes a few minutes, but can take up to 2 hours if the documents require additional screening. Do not escalate before 2 hours — such enquiries will not be attended to. If verification has been pending for 5 hours or more, contact the operations team to expedite. Listen for the `customer.verified` or `customer.rejected` webhook to know when the review is complete. Required scope: `customer:write`.