If your card product only requires basic fields (Simplified KYC), the existing cardholder creation flow works as before — no changes needed. Use List Products to check what your product requires.
Overview
Prerequisites
Before making API calls, obtain an access token:auth_token in all subsequent requests via the x-auth-token header.
Step 1: Check Product Requirements
Call List Products to identify which fields your target product requires.required_fields array. An Enhanced KYC product will include identity, residential_address, and kyc_verification as required fields. Here is an example of an Enhanced product (BIN 46651711):
The
required_fields tell you exactly what information is needed. Only fields marked "required": true are mandatory — optional fields can be omitted.Step 2: Create Cardholder with Enhanced KYC
Call Create Cardholder with the full set of required fields pluskyc_verification.
The
residential_address.country and nationality fields are subject to region restrictions. See Cardholder Region Restrictions for the full list of supported countries and sanctioned nationalities.Field constraints for Enhanced cards:
- The combined length of
first_nameandlast_namemust not exceed 26 letters. residential_address.postal_codemust be 4 to 10 characters long, inclusive.
Option A: SUMSUB_REDIRECT
Use this if you want UQPAY to handle identity verification via Sumsub. You will receive an IDV URL to redirect your cardholder to.INCOMPLETE status with an IDV link:
idv_verification_url to complete identity verification, then wait for the webhook notification (Step 3).
Option B: THIRD_PARTY
Use this if you have already completed identity verification through your own KYC provider and have a proof reference.kyc_proof.reference_id must be at least 10 characters and globally unique.Attach compliance reports
kyc_proof.documents carries the compliance report files behind your third-party verification. Upload each file first with Upload A File to obtain a file_id, then reference it here with its report_type.
You must include an identity verification report; an anti-money-laundering report is optional. There are two ways to supply the reports, depending on how your provider formats them:
Response — the cardholder is verified immediately:
Step 3: Wait for KYC Approval (SUMSUB_REDIRECT only)
If you usedSUMSUB_REDIRECT, subscribe to the cardholder.kyc.status_changed webhook to receive real-time KYC status updates.
Webhook payload example (KYC approved):
cardholder_status becomes SUCCESS, the cardholder is ready for card issuance.
Cards cannot be issued while the cardholder is in
PENDING status. Wait for KYC approval before proceeding.Step 4: Create Card
Oncecardholder_status is SUCCESS, call Create Card:
The sample below uses
card_currency: "USD" for sandbox. In production, set card_currency to XUSD.Error Handling
KYC insufficient at card creation
If you attempt to create a card but the cardholder hasn’t met the product’s KYC requirements, you will receive an error withmissing_fields indicating which fields are still needed:
- Update the cardholder first via Update Cardholder, then retry card creation.
- Supply the missing fields inline by passing
cardholder_required_fieldsin the Create Card request.
Cardholder in PENDING status
Creating a card while the cardholder’scardholder_status is PENDING will be rejected. Wait for the KYC review to complete before retrying.
