Skip to main content

Card Holder APIs

Manage KYC-verified cardholders. Required when card type has needCardHolder=true. Supports B2B (simplified) and B2C (full KYC with ID documents) models.
Base URL: POST /api/v2.1/fincard/virtual/card/holder/...
The cardHolderModel values B2B and B2C are internal codes — they do NOT correspond to company vs individual. Check the metadata.cardHolderModel field from the Card Types response.

Cardholder Occupations

List available occupation codes for B2C cardholder creation.
Request: {} (empty body) Response data[]:

Create Cardholder V2

Create a new KYC-verified cardholder. Fields differ based on cardHolderModel.

B2B Model Request

Total length of firstName + lastName cannot exceed 32 characters (including spaces).

B2C Model Request (additional fields)

All B2B fields plus:

ID Types by Region

Restricted Countries/Regions

Cuba, North Korea, Egypt, Iran, Myanmar, Nigeria, Russia, Belarus, South Africa, Syria, Ukraine, Venezuela, Sudan, South Sudan, Libya, Crimea, Burundi, Central African Republic, Somalia, Zimbabwe, Afghanistan.

Response data

Approval flow: admin review first → then channel (bank) review. Cardholder can only be used for card creation when status=pass_audit.

Update Cardholder V2

Update a rejected cardholder. Only allowed when statusFlowLocation=admin AND status=reject.
Request: Same fields as Create + holderId (required). All fields are re-submitted. Response: Same as Create response.
Cardholder information cannot be modified after bank submission. Email and ID number are globally unique per card type — duplicates are rejected.

Cardholder List

Query cardholders with pagination and filters.
Request: Response data: { total, records[] }

Deprecated Endpoints

The following V1 endpoints are still available but deprecated: