USD 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 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.

Terminate Card

Terminating a card stops any further use of the card by a user. On card termination, any funds on the card is moved to the user's USD wallet.


Time Restriction

Freeze and Unfreeze actions have 5-minute time restrictions. That is they are only effective after 5 minutes.


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;

Visa Card
Top Upβœ…

Card Issuing Fees

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

Card Creation$1 for every newly issued card
Top Up$1 if funding is below $100 and 1% if funding is equal to or above $100
Chargeback$60 flat rate for Visa Card
Terminationno fee is charged for the termination of cards, you get back the balance on the card
Cross Border Fees2.5% + $0.5 per transaction settled outside the USA
Card Declined$1 for automatic termination after 3 Insufficient funds Transactions