Skip to main content
This guide walks you through the full flow to issue a card for a customer.

Overview

A customer must reach the product’s required_level (usually verified) to receive a card. Browse the card product catalog to see available products, their limits and fees.

Step 1: Browse card products

Start by consulting the catalog to find the right product for your use case:
Each product specifies its required_level, limits with and without KYC (max_balance, max_reload, spend_limit_monthly, spend_limit_monthly_without_kyc, max_card_per_user, max_card_per_user_without_kyc), features (google_pay, apple_pay, atm_available, addons), initial load requirements (initial_load.required, initial_load.min, initial_load.max) and fees (creation_fee, reload_fee, etc.).

Step 2: Create a customer

The customer is created with verification_level: basic.
Response includes a verification_url — redirect your customer there. You can call this endpoint again at any time to get the link back, or a new one if it expired.

Step 4: Wait for KYC approval

Listen for the kyc.approved webhook, or check the status endpoint:
Once approved, the customer automatically upgrades to verification_level: verified.

Step 5: Create a card

Pick a card product from GET /cards/products and create the card with its code:
amount is the initial load. It is required when the product has initial_load.required: true, within its min and max.
Card creation debits your ops balance (cards_mastercard or cards_visa, depending on the product brand) of total_charged: the initial load, the card fee and the service fee of the product. The fees are listed on each product in GET /cards/products; the lower _with_kyc tariff applies when the customer’s KYC is approved.

Step 6: Card activated

The card is issued asynchronously. You receive a card.activated webhook when it is ready, or card.creation_failed if it could not be issued — in that case total_charged is refunded to the same cards_visa or cards_mastercard balance. Once the card is active, get its number, CVV and expiry from your server:
Call this endpoint only when your customer needs to see the card, and never store or log its response. Every other endpoint only returns last_four.

Step 7: Top up the card

The top-up is applied asynchronously: you receive card.topup.completed, or card.topup.failed with a refund. See Top Up a Card.

Step 8: Follow the card

Verification levels required