Skip to main content
POST
Enroll new customer

Overview

POST /customers/enroll registers a new customer in your company using publicly accessible URLs to the KYC documents instead of uploading the files directly. This is useful when documents are already hosted in your own object storage (S3, GCS, etc.). For local file uploads, use POST /customers instead. The customer is enrolled with the upstream card issuer in the same call, so they become eligible for card issuance immediately on success (subject to KYC outcome).

When to use it

Prerequisites

  • Your company has completed KYB and is in APPROVED status.
  • The document URLs must be reachable over HTTPS by the upstream verifier (which may fetch them more than once).

Request

Headers

Body fields

URL requirements

  • HTTPS only. Plain HTTP URLs are rejected.
  • Reachable by the upstream verifier. If the URL is gated (Basic Auth, IP allowlist, signed URL), the verifier will fail to fetch it.
  • Stable. The verifier may fetch the URL multiple times during processing. Signed URLs with very short expiry windows are not recommended; use a TTL of at least 30 minutes.
  • Direct file URLs, not landing pages. The response should be the image/PDF bytes with a correct Content-Type header.

Example

Response

201 — Customer enrolled

See the POST /customers field reference for descriptions — the response shape is identical.

Error responses

Webhooks fired

  • customer.created — emitted immediately after the customer record is persisted.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
first_name
string
required
Required string length: 3 - 255
Example:

"John"

last_name
string
required
Required string length: 3 - 255
Example:

"Doe"

country
string
required
Required string length: 2 - 255
Example:

"Nigeria"

email
string<email>
required
Example:

"john.doe@example.com"

street
string
required
Required string length: 2 - 255
Example:

"123 Main Street"

city
string
required
Required string length: 2 - 255
Example:

"Lagos"

state
string
required
Required string length: 2 - 255
Example:

"Lagos State"

postal_code
string
required
Required string length: 3 - 255
Example:

"100001"

country_iso_code
string
required
Required string length: 1 - 255
Example:

"CM"

country_phone_code
string
required
Required string length: 1 - 255
Example:

"+234"

phone_number
string
required
Required string length: 3 - 255
Example:

"8012345678"

identification_number
string
required
Required string length: 1 - 255
Example:

"12345678901"

id_document_front_url
string
required
Example:

"https://example.com/documents/front.jpg"

id_document_back_url
string
required
Example:

"https://example.com/documents/back.jpg"

id_document_type
enum<string>
required
Available options:
NIN,
PASSPORT,
VOTERS_CARD,
DRIVERS_LICENSE
Example:

"NIN"

date_of_birth
string<date>
required
Example:

"1990-01-15"

Response

Customer enrolled successfully

success
boolean
Example:

true

statusCode
integer
Example:

200

message
string
Example:

"Data retrieved successfully"

data
object