Skip to main content
Personal Visa only First confirm that the cardholder’s residence and nationality meet the issuance requirements, then complete the required information through Create Cardholder or Update Cardholder. Cardholders with an eligible residence and a Red-group nationality must also provide proof of address. Once the information is complete and the cardholder meets Personal Visa’s Enhanced KYC requirements, use cardholder_id with Create Card to create a card or Assign Card to assign a physical card. Proof of address does not require a separate approval wait.
Save proof of address through Create Cardholder or Update Cardholder. See those endpoints for document fields and requirements.
A card can only be issued when cardholder_status is SUCCESS. If the cardholder is INCOMPLETE, PENDING, or FAILED, complete or resolve the product’s KYC requirements first.
Cardholder requirements
  • Call List Products and follow the target product’s required_fields. Enhanced KYC products require identity, residential_address, and kyc_verification. If the product only requires Simplified KYC fields, the existing cardholder creation flow remains unchanged.
  • The combined length of first_name and last_name must not exceed 26 letters.
  • residential_address.postal_code must be 4–10 characters long, inclusive.

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. 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.
Replace <reference_id> with the globally unique reference ID from your KYC provider. kyc_proof.reference_id must contain 10 to 64 characters, inclusive.
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 notifications when KYC review completes or additional information is required. Handle the result using data.cardholder_status:
  • SUCCESS: Approved. You can proceed with card issuance.
  • FAILED: Rejected. Do not issue a card.
  • INCOMPLETE: Additional or corrected information is required. Address the information request and wait for SUCCESS before issuing a card.
Requests for additional information after review use this same event. data.reason contains the rejection or additional-information explanation when available and is empty when no explanation is available or the review is approved. An empty reason alone does not indicate approval. Webhook payload example (KYC approved):
When cardholder_status becomes SUCCESS, the cardholder has met this KYC status requirement. Region, applicable POA, and product requirements must also be met before issuance.
Cards cannot be issued while the cardholder is in PENDING status. Wait for KYC approval before proceeding.

Step 4: Create or assign a card

Once the information is complete and the product’s KYC requirements are met, use cardholder_id with Create Card to create a card. To assign an inventory physical card, use Assign Card and provide the card details required by that endpoint. Proof of address does not require a separate approval wait. The following example creates a 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 existing KYC fields inline through cardholder_required_fields in the Create Card request. Save proof_of_address and identity_verification through the cardholder endpoints first; card-issuance requests do not accept these uploads.

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.