Create Cardholder
Create a new cardholder for virtual card issuing. Submit personal details and start issuing cards immediately. POST /cardholders.
Documentation Index
Fetch the complete documentation index at: https://docs.fyatu.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Create a new cardholder for your card issuing program. The cardholder will be created withACTIVE status. You can issue cards to the cardholder immediately after creation.
Required Fields
| Field | Type | Description |
|---|---|---|
firstName | string | Cardholder’s first name (1-100 chars) |
lastName | string | Cardholder’s last name (1-100 chars) |
email | string | Email address (unique per business) |
phone | string | Phone number in E.164 format (e.g. +15550001234) |
dateOfBirth | string | Date of birth (YYYY-MM-DD, must be 18+ years old) |
gender | string | Gender (MALE or FEMALE) |
country | string | ISO 3166-1 alpha-2 country code (e.g. US) |
Address Fields
| Field | Type | Required | Description |
|---|---|---|---|
address | string | Yes | Street address (max 255 chars) |
city | string | Yes | City (max 100 chars) |
state | string | Yes | State or province (max 100 chars) |
zipCode | string | Yes | Postal/ZIP code (max 20 chars) |
Optional Fields
| Field | Type | Description |
|---|---|---|
externalId | string | Your platform’s cardholder ID (unique per business, max 100 chars) |
metadata | object | Arbitrary key-value pairs to store custom data about the cardholder |
KYC Object (Shared KYC — Enabled Businesses Only)
If your business has Shared KYC enabled, you can include akyc object at cardholder creation to submit pre-verified identity documents in the same request. The cardholder will immediately be set to PENDING and processed in the background; a cardholder.kyc_approved webhook is dispatched once documents are uploaded and verified.
If your business does not have Shared KYC enabled, the kyc object is silently ignored regardless of what is sent.
| Field | Type | Required | Description |
|---|---|---|---|
kyc.idFrontUrl | string | Yes | URL to the front image of the ID document |
kyc.selfieUrl | string | Yes | URL to a selfie photo of the cardholder |
kyc.idBackUrl | string | No | URL to the back image of the ID document |
kyc.documentType | string | No | PASSPORT, NATIONAL_ID, or DRIVER_LICENSE |
Metadata Object (Optional)
Themetadata field accepts any flat JSON object. Use it to store your own data alongside the cardholder — for example, department, employee ID, or tier level.
Example Usage
Example Response
Next Steps
After creating a cardholder, you can:- Issue a card immediately — Use Create Card to issue a virtual card to this cardholder
- Verify identity (optional) — Use Initiate KYC Verification to let the cardholder verify themselves, or Submit KYC Documents to submit documents on their behalf
Error Responses
Duplicate Email (409)
Duplicate External ID (409)
Underage Cardholder (400)
Validation Error (400)
Authorizations
JWT access token obtained from /auth/token
Body
Cardholder's first name
1 - 100Cardholder's last name
1 - 100Cardholder's email address (unique per app)
255Phone number with country code
6 - 20Date of birth (YYYY-MM-DD)
ISO 3166-1 alpha-2 country code
2Your platform's cardholder ID (unique per app)
100Gender (optional)
MALE, FEMALE, OTHER Street address
255City
100State or province
100Postal/ZIP code
20Optional KYC documents. When any KYC data is provided, kycStatus will be set to SUBMITTED. All fields are optional - use the Submit KYC endpoint for mandatory document submission.

