Skip to main content
POST
Create a cardholder

Overview

Create a cardholder profile for an end user. Cardholders are created with kycStatus: WAIVED — cards can be issued to them immediately, without waiting for identity verification. If your compliance requirements demand full identity verification, call POST /cardholders/{id}/kyc after creation to move the cardholder to PENDING and then APPROVED.

Required Fields

Optional Fields

KYC-Locked Fields

After KYC approval, these fields become immutable: firstName, lastName, email, dateOfBirth, nationality, address. Attempting to change them returns 409 KYC_FIELD_LOCKED. middleName is intentionally not locked and remains editable after approval.

KYC Document

The optional kycDocument object supplies the identity document. It is not KYC-locked and can be updated via PATCH at any time. Supply it when the cardholder needs to be verified — that is, when you intend to issue on a programme whose BINs require a verified cardholder. Without it the cardholder can still be issued cards on programmes that require no verification. GET /cardholders/{id} tells you which programmes are open to a given cardholder, and why.
A document is verified as a whole, so it is accepted as a whole. Supply every field, or none — a partial document returns 422 KYC_DOCUMENT_INVALID rather than being stored and quietly ignored, which would leave you believing verification was under way when it was not.frontUrl and selfieUrl must be given together. Images are copied to our own storage on receipt, so a link that later expires does not interrupt a review.

Example

Success Response (201)

Conditional fields — present only in specific states:

Webhook

A CARDHOLDER_CREATED event fires after successful creation:
If you later run full verification with POST /cardholders/{id}/kyc, a CARDHOLDER_KYC_APPROVED or CARDHOLDER_KYC_REJECTED event fires when the provider responds.

Error Codes

Authorizations

Authorization
string
header
required

API key from the FYATU CaaS portal. Pass as Authorization: Bearer <key>.

Body

application/json
firstName
string
required
Example:

"John"

lastName
string
required
Example:

"Smith"

email
string<email>
required
Example:

"john.smith@example.com"

dateOfBirth
string<date>
required

YYYY-MM-DD — must be 18+

Example:

"1990-05-15"

nationality
string
required

ISO 3166-1 alpha-2

Example:

"US"

address
object
required
phone
string
Example:

"+12025551234"

gender
enum<string>

Cardholder gender. Required for verification on programmes that need a verified cardholder — an identity check cannot be run without it.

Available options:
MALE,
FEMALE,
M,
F
Example:

"MALE"

kycDocument
object

Identity document details for verification. Optional on create; patchable at any time and not locked after approval. Accepted as a whole — a partial document is refused rather than stored and ignored. Images are copied to our own storage on receipt.

externalId
string
Example:

"usr_123456"

metadata
object
Example:

Response

Cardholder created

success
boolean
Example:

true

status
integer
Example:

200

message
string
Example:

"Cardholder retrieved"

data
object
meta
object