This is the canonical customer endpoint. It supersedes the older
POST /api/v1/business/customers create call — use POST /api/v1/customers for all new integrations.Create or update a customer
customers:write
Upsert semantics: if you pass an externalId (your own stable id) that already exists, the record is updated in place — so a repeat is safe and stays in sync with your system.
Request body
Request example
Response
id is our canonical customer id. Your externalId and the per-provider issuer ids (for cards) all resolve to this one record.
Read a customer
customers:write. Returns the same customer object as the upsert, including the live kycTier and capabilities.
Submit KYC (verify identity, raise the tier)
kyc:write
Submit one identity item at a time. Numero verifies it through a real provider check (billed to your account), records the pass, and recomputes the customer’s tier from everything verified so far. A tier only rises when a check genuinely passes — never from a value you merely supply.
Default ladder (admin-configurable): BVN → tier 1 (receive external); BVN + NIN + a government ID → tier 2 (pay out, card); + address → tier 3 (elevated limits).
kycTier and capabilities. Submitting an item whose category is already verified is idempotent — it is not re-charged.
The tiers, their requirements, and their limits are configured by your Numero admin and may differ from the defaults shown here. Always read
kycTier and capabilities from the response rather than hard-coding the ladder.