Prerequisites
- A cardholder with
cardholder_status: SUCCESS— see Create cardholders - Sufficient issuing balance if using a Single mode product — see Fund your issuing balance
Step 1: Select a card product
List the card products available on your account to find one withcard_form containing VIR.
product_id for the product you want to use.
Step 2: Create the card
Call the Create Card endpoint with the cardholder ID, product ID, currency, and card limit.PENDING status. Within seconds, it transitions to ACTIVE.
Optional parameters
| Parameter | Description |
|---|---|
card_limit | Spending cap for the card. Required for BINs 527735, 555071, 555243 (must be ≥ 0.01). Optional for all other BINs (defaults to 0 if omitted; must be ≥ 0 if provided). |
spending_controls | Per-transaction spending limits — see Spending controls |
risk_controls | Enable/disable 3DS (allow_3ds_transactions) — see 3D Secure |
metadata | Key-value pairs for your own reference (max 3200 bytes) |
usage_type | NORMAL (default) or ONE_TIME for single-use cards |
auto_cancel_trigger | For ONE_TIME cards: ON_AUTH or ON_CAPTURE |
Step 3: Receive the webhook
UQPAY sends acard.create.succeeded or card.create.failed webhook after processing. Subscribe to these events in your webhook settings.
Example: card.create.succeeded
Step 4: Retrieve sensitive card details
To display the full card number, expiration date, and CVV to the cardholder, use the Secure Card Display (iframe) integration. This avoids exposing sensitive card data in your backend. Alternatively, use the Retrieve Sensitive Card Details endpoint if your system is PCI DSS compliant.Related
- Core concepts — Card forms, modes, and settings
- Issue physical cards — Assign and activate physical cards
- Card lifecycle — Freeze, unfreeze, or cancel cards
- Card Created webhook
- Create Card API

