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.| Method | When to use | Result |
|---|---|---|
SUMSUB_REDIRECT | You want UQPAY to handle IDV via Sumsub | Returns an IDV URL for the cardholder to complete verification |
THIRD_PARTY | You have already verified the cardholder through your own KYC provider | Cardholder is verified immediately |
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.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:
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.
