email and a name are required to create one. Everything else is optional when you create the customer. What a particular virtual account needs is checked when you create the account, see Virtual account requirements.
Endpoints
Fields
type is individual or business and defaults to individual.
Identification
identification.type is the kind of document and identification.number is its number. The accepted types depend on the customer’s country, and whether a virtual account needs one depends on the currency. See Identification requirements by country for Nigeria, Ghana, Kenya, the United States, Canada, the euro area, the United Kingdom, Tanzania and the rest of the world. GET /customers/identification-types?country=NG returns the same lists for building a form.
identification.number is stored encrypted and is never returned. Responses show the type and the last four characters only: { "type": "BVN", "last4": "8901" }.
Address
line1, line2, city, state, postalCode and country (ISO 3166-1 alpha-2). Every part is optional on its own, but some currencies need the full address, for example CAD.
Owners (business)
firstname and lastname are required for each owner.
Documents
type is for example id_document, utility_bill, incorporation or proof_of_address. url must be an https link the provider can open.
Examples
Minimal individual:201):
kycStatus is incomplete until identification is on file, then pending.
Updating a customer
PATCH /customers/{uuid} takes any subset of the fields above.
- Contact and reference fields (
phone,email,address,externalReference,documents,metadata) can change at any time. - Identity fields (
firstname,lastname,businessName,type,country,identification,dateOfBirth,nationality,registrationNumber,owners) can change only while the customer has no active virtual account, because the provider account is tied to the identity it was opened with. Otherwise the request returns409:
Name rules
Names are checked when you create or update a customer, and again before a name goes to a provider. A rejected name returns422:
We can reject names that are clearly not real. We cannot confirm that a name matches a person.

