Virtual cards

USD Virtual Cards

Creating Virtual Card

The Bitnob virtual cards API allows you to offer Virtual Visa and MasterCard USD cards flexibly, 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 in our card section; this requires basic KYC details of your users.

We support all countries and have different IDType for certain countries; here is the list;

CountriesAccepted Documents
Other Countries[NATIONAL_ID]

Also, note, bvnnumber is a required field for Nigerian 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 and type of card (visa or mastercard) is sent to the create_card endpoint. In the case of a visa card, cardType of virtual or giftcardis required.


During the development session, there's no need to register a user who has to go through the KYC process. You get started by creating a virtual card and using the cards immediately.

To create a virtual card on the sandbox, additional information like the firstName and lastName.

After creating a card, it is set up in progress, and a webhook is sent after successfully creating a card; virtualcard.created.success and in the case of a failure; virtualcard.created.failed.

Use the fetch card endpoint to get the full details of the card.


Enter amounts in cents, not dollars!

Every amount field in all endpoints are to be sent in cents. Instead of writing $5 as 5, put it as 500 instead. $1=100 cents

Top Up Card

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


Withdrawals is the only internal debit transaction 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.


Dealing with dollar amounts

Enter the amounts in cents instead of dollars. $1 = 100 cents

Card Transactions

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

Webhook Events

Most actions in virtual cards are pending actions, and on completion, a webhook is sent.

A virtualcard.transaction.debit event for every debit transaction done on a card.
In the case of a reversal, 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.

Visa vs MasterCard

We currently offer both MasterCard and Visa Cards. Our Visa Cards work almost everywhere. Here are the key differences between both cards to help you choose what service to offer if you don't want to offer both;

MasterCardVisa Card
Top Upβœ…βœ…

Card Issuing Fees

These fees apply to both MasterCard and Visa Virtual USD cards.

Card Creation$0.5for every newly issued card
Top Up$1charged every time a card is funded
Maintenance Fee$1.5charged monthly as long as a transaction was done on the card
Chargeback$60flat rate for Mastercard
Termination$0no fee charged for termination of cards, you get back the balance on the card