Learning objectives
- Understand how virtual cards are issued technically and operationally
- Know what triggers card creation, and what dependencies must be in place
- Write or spec the API request to issue a card
- Design the right experience around card creation success or failure
- Prevent the most common integration mistakes
What does “issuing a card” actually mean?
To “issue” a virtual card means to:- Allocate a new, unique card number (PAN), expiry, and CVV
- Link that card to a registered user (from Module 3)
- Create a backend record with spend, funding, and transaction limits
- Activate the card and return it to your app via API
- Enable the card for use online under a payment scheme (e.g., Visa, Verve)
When should you issue a card?
Virtual card issuance can be triggered by:
Best practice
Issue only after the user has real value to transact, either identity, money, or intent.
Requirements before you issue
To successfully issue a card, you must:- Have already registered the card user (see Module 3)
- Have stored their customer
id - Have approved Card KYC for that customer
- Be under the limit of 3 active cards per customer
- Fund a prepaid card with at least $2 when you create it
Sample card issuance API request
Full request and response schema: Create Card.pending. Wait for the virtualcard.created.completed webhook before you show it to the user. You can then fetch the card number, CVV and expiry when the user needs them with Get secure card details.
UX tip: Displaying card details
Display tip: Fetch card details only when the user asks to see them, and don’t store them. Reveal requests are rate limited.
What happens behind the scenes
- Your API call goes to your platform (or Bitnob if integrated)
- Your platform contacts the card processor
- A unique PAN, expiry, and CVV are allocated
- The card is linked to your registered user
- The card moves from
pendingto active, and you receive a webhook - You receive card metadata (masked or full)
Quotas and limits to be aware of
Exceeding these may result in silent errors or failed API responses.
Common mistakes to avoid
Recap quiz
- Can a card be issued before a user is registered?
- Can you fetch the PAN and CVV again later?
- Is the card active immediately after it’s created?
- What field links your system user to the virtual card record?
- No
- Yes, with Get secure card details
- No, it starts as
pending - customer_id
Key takeaways
- Virtual card issuance is fast, but must be done after user registration
- A new card starts as
pending: wait for the webhook before you show it - Displaying card status and limits clearly builds trust
- Store the
card IDsecurely for future operations (top-up, freeze, etc.) - Always catch errors and webhook events for lifecycle changes