Create a new customer. Verification stays PENDING until the type-specific verification flow completes.

For type=individual, id_type and id_number are required. After creation, upload identity files via the legacy KYC flow (see Creating your first payout). Only Driver's License, Passport, or Resident Permit are accepted as id_type.

For type=business, business_name + registration_number + incorporation_country are required. The legacy id_type / id_number fields are no longer required (still accepted for back-compat — when supplied, id_type must be certificate_of_incorporation). After creation, follow the Business customer KYB flow: register beneficial owners, upload owner ID files, register KYB documents, then call /submit.

ID cards (National Identity Cards) are not accepted at any stage. 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

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

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

Create a customer
curl --request POST \  --url 'https://example.com/api/external/customer' \  --header 'Content-Type: application/json' \  --data '{  "type": "individual",  "first_name": "John",  "last_name": "Doe",  "email": "john.doe@company.com",  "country": "NG",  "id_type": "passport",  "id_number": "6733823632872",  "phone": "+2348012345678",  "dob": "1990-01-15",  "street": "123 Main Street",  "city": "Lagos",  "state": "Lagos",  "zip_code": "100001",  "id_expiry_date": "2030-01-15",  "id_issue_date": "2020-01-15"}'
{  "message": "Customer created 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",    "kyb_scope": null  }}