Skip to main content
POST
Create a cardholder

Overview

Create a cardholder profile for an end user. KYC is triggered automatically and runs asynchronously — subscribe to CARDHOLDER_KYC_APPROVED or CARDHOLDER_KYC_REJECTED to be notified when it completes. Cards can only be issued once kycStatus is 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 lets you supply identity document details alongside the cardholder creation. It is not KYC-locked and can be updated via PATCH at any time.

Example

Success Response (201)

Conditional fields — present only in specific states:

Webhook

A CARDHOLDER_CREATED event fires after successful creation. A few seconds later in SANDBOX (async in LIVE), one of these fires:

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"

kycDocument
object

Identity document details for KYC verification. Optional on create; patchable via PATCH. Not locked after KYC approval.

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