Virtual cards

USD Virtual Card

Creating Virtual Card

The Bitnob virtual cards API allows you to offer Virtual USD Mastercard in a flexible way, with additional capabilities such as getting real-time card payment details, issuing cards on the fly, freezing/unfreezing cards and setting spending limits.

To create a card, a user has to be registered as a card user on our card section, this requires basic KYC details of your users.


Card Issuing

There are some onboarding steps that need to be completed before you can issue cards. Access to this API has to be pre-approved. Contact us at [email protected] requesting API access to cards if you need access to this API.

After successful registration of a card user, a card is created by sending the user's email is sent to the create_card endpoint.

Top Up Card

Business wallets are not attached to users' cards. To attached or add money to a card, a top-up transaction will be made from the business USD wallet to the user card.


Withdrawals is the only internal debit on a card. When withdrawals are made on a card, the amount withdrawn is been sent to the business' USD wallet.

Freeze Card

Cards can be frozen(i.e. deactivated) to pause new transactions, primarily for security issues or financial purposes. Freezing of a card will pause all transactions except withdrawal.

Unfreeze Card

Unfreezing a card to resume transactions on a frozen card is also possible.


Time Restriction

Freeze and Unfreeze actions have 24-hour time restrictions. That is they are only effective after 24 hours.

  • Freezing and unfreezing a card can also be done on the dashboard.
Freeze and Unfreeze CardFreeze and Unfreeze Card

Freeze and Unfreeze Card

Card Transactions

Card Transactions include top-up, withdrawal and debits actions performed with users' cards. Businesses can view transactions via the API or on the dashboard:

Card TransactionsCard Transactions

Card Transactions

Webhook Events

A virtualcard.transaction.debit event for every debit transaction done on a card.
In a case for reversals, a reverse event virtualcard.transaction.reversed is also sent to your Webhook URL.

Webhook events should be verified and tested before production. Bitnob's Webhook can be tested following this setup.