Skip to main content

Create/Update Customer

Create or update a customer record. If a customer with the same referenceId already exists for your organisation, this endpoint performs an update instead of creating a duplicate.

Flat field format

Custom fields are sent flat at the root of the request body — do not wrap them in a mappedFields object. Any key that is not name, referenceId, accountTypeId, or connects is automatically treated as a customer field and matched against your organisation's field definitions.

API Call​

Send an HTTP POST request to:

POST /api/v1/customers

Request parameters​

ParameterTypeRequiredDescription
namestring✅Full name of the customer
referenceIdstring✅Your internal customer ID. Used in all subsequent transaction calls
accountTypeIdnumber✅1 for Person, 2 for Company
(any other key)any—Any additional customer fields defined in your organisation, sent flat at the root
connectsarray—List of related customers and their roles (see Customer Connections)

connects item fields​

FieldTypeRequiredDescription
referenceIdstring✅The referenceId of the related customer
rolestring✅Relationship role — one of UBO, DIRECTOR, SHAREHOLDER, AUTHORIZED_PERSON, BANK_ACCOUNT, ACCOUNT_HOLDER

Connection roles​

RoleApplies toDescription
UBOPerson onlyUltimate Beneficial Owner
DIRECTORPerson onlyPerson who manages the company
SHAREHOLDERPerson or CompanyHolds shares of the company
AUTHORIZED_PERSONPerson onlyAuthorised representative or signatory
BANK_ACCOUNTAnyLinked bank account
ACCOUNT_HOLDERAnyLinked account holder

Request​

{
"name": "Sylvernus Akubo",
"referenceId": "550",
"accountTypeId": 1,
"phone": "08012345678",
"bvn": "22012345678",
"connects": [
{ "referenceId": "COMP-001", "role": "DIRECTOR" },
{ "referenceId": "TRUST-002", "role": "UBO" }
]
}

Response — Created​

{
"status": 201,
"message": "Customers created successfully",
"data": {
"id": 3,
"name": "Sylvernus Akubo",
"referenceId": "550",
"riskScore": 50,
"riskScoreName": "High risk",
"lastIpAddress": null,
"lastUserAgent": null,
"usualUserAgent": null,
"lastScreeningDate": null,
"accountTypeId": 1,
"createdAt": "2025-06-27T09:23:00.790Z",
"updatedAt": "2025-06-27T09:23:00.790Z",
"organizationId": "0b042d50-fa8d-44d6-b3e5-02ace4c24f8b",
"externalId": "456",
"customerMappedField": [
{
"value": "08012345678",
"CustomerFieldDefinition": { "name": "Phone" }
}
]
},
"code": "info"
}
info

Connections are stored separately from the core customer record. To read or update connections after creation, use the Customer Connections endpoint.