Skip to main content
Some card products (BINs) require cardholders to complete Enhanced KYC — identity verification through a third-party provider — before a card can be issued. This guide walks through the full flow from checking product requirements to issuing a card.
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:
Use the returned 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.
In the response, look at the 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 plus kyc_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_name and last_name must not exceed 26 letters.
  • residential_address.postal_code must be 4 to 10 characters long, inclusive.
There are two verification methods — choose the one that fits your use case:

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.
Response — the cardholder enters INCOMPLETE status with an IDV link:
Redirect your cardholder to 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:
You can proceed directly to Step 4: Create Card.

Step 3: Wait for KYC Approval (SUMSUB_REDIRECT only)

If you used SUMSUB_REDIRECT, subscribe to the cardholder.kyc.status_changed webhook to receive real-time KYC status updates. Webhook payload example (KYC approved):
When 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

Once cardholder_status is SUCCESS, call Create Card:
The sample below uses card_currency: "USD" for sandbox. In production, set card_currency to XUSD.
Response:

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 with missing_fields indicating which fields are still needed:
You can either:
  1. Update the cardholder first via Update Cardholder, then retry card creation.
  2. Supply the missing fields inline by passing cardholder_required_fields in the Create Card request.

Cardholder in PENDING status

Creating a card while the cardholder’s cardholder_status is PENDING will be rejected. Wait for the KYC review to complete before retrying.