Skip to main content

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)
This process happens within seconds, but it relies on years of network and issuer infrastructure behind the scenes.

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.
Note: the card starts as 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 pending to active, and you receive a webhook
  • You receive card metadata (masked or full)
This flow is usually invisible to the user, it just feels instant.

Quotas and limits to be aware of

Exceeding these may result in silent errors or failed API responses.

Common mistakes to avoid

Recap quiz

  1. Can a card be issued before a user is registered?
  2. Can you fetch the PAN and CVV again later?
  3. Is the card active immediately after it’s created?
  4. What field links your system user to the virtual card record?
Answers:
  1. No
  2. Yes, with Get secure card details
  3. No, it starts as pending
  4. 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 ID securely for future operations (top-up, freeze, etc.)
  • Always catch errors and webhook events for lifecycle changes