Virtual Cards
Bitnob's Cards API allows you to programmatically issue and manage virtual and physical debit cards for your customers. Cards can be used for online purchases, subscriptions, and other payments worldwide.
Create Card
Issue a new virtual or physical card for a customer. The card is created in an active state and can be used immediately after funding.
Create Card Body Parameters
Customer ID to issue the card for. The customer must exist in your Bitnob account.
The type of card to issue. Accepted values are virtual or physical.
The card network brand. Accepted values are visa or mastercard.
The currency denomination for the card (e.g., USD, NGN). All transactions on the card will be settled in this currency.
The billing address associated with the cardholder.
Primary street address line (e.g., house number and street name).
Secondary address line for additional information such as suite or apartment number.
City of the billing address.
State or province of the billing address.
Postal or ZIP code of the billing address.
Two-letter ISO 3166-1 alpha-2 country code (e.g., NG, US, GB).
Optional spending limits to apply to the card. Includes single_transaction, daily, weekly, and monthly limit fields.
Custom key-value pairs you can attach to the card for internal tracking (e.g., department, cost center).
Response
Unique identifier for the newly created card.
Identifier of the company that owns this card.
Identifier of the customer the card was issued to.
The type of card issued — virtual or physical.
The card network brand — visa or mastercard.
The last four digits of the card number.
The currency denomination for the card.
Current card status. Newly created cards are active.
Current balance on the card. Starts at 0.00 upon creation.
Applied spending limits including single_transaction, daily, weekly, and monthly caps.
The billing address associated with the card.
Custom key-value pairs attached to the card.
ISO 8601 timestamp of when the card was created.
ISO 8601 timestamp of the last update to the card.
Get Card
Retrieve the details of a specific card by its ID. This returns general card information including balance and status, but not sensitive card data like the full card number or CVV.
Path Parameters
The unique identifier of the card to retrieve.
The response is identical to that of Create Card. Refer to the Create Card Response section for field explanations.
Get Card Details (Sensitive)
Retrieve sensitive card data including the full card number, CVV, and expiry date. This endpoint returns PCI-sensitive information and should be used with extreme care.
Only call this endpoint when absolutely necessary. Never log or store the full card number or CVV. Display card details securely in the UI and consider implementing additional verification (e.g., 2FA) before showing details to end users.
Path Parameters
The unique identifier of the card whose sensitive details are being retrieved.
List Cards
Retrieve a paginated list of all cards. Use query parameters to filter by status, type, or customer.
Query Parameters
Filter cards by their current status (e.g., active, frozen, terminated).
Filter by card type. Accepted values are virtual or physical.
Filter cards belonging to a specific customer.
Number of results to return per page. Defaults to 20, maximum 100.
Number of results to skip before returning records. Used for pagination. Defaults to 0.
Fund Card
Add funds to a card's balance. The currency must match the card's denominated currency.
Path Parameters
The unique identifier of the card to fund.
Body Parameters
The amount to add to the card balance as a decimal string (e.g., "500.00").
Currency code for the funding operation. Must match the card's currency.
A human-readable description for this funding transaction.
Your internal reference identifier for this transaction. Used for idempotency and reconciliation.
Response
Identifier of the card that was funded.
The operation type. Value is fund for this endpoint.
The amount that was added to the card balance.
Currency code of the funding operation.
The updated card balance after the funding operation.
Unique identifier for this funding transaction.
The reference identifier provided in the request.
ISO 8601 timestamp of when the funding transaction was created.
Withdraw from Card
Remove funds from a card's balance back to your account. Useful for reclaiming unused funds or adjusting card balances.
Path Parameters
The unique identifier of the card to withdraw funds from.
Body Parameters
The amount to withdraw from the card balance as a decimal string (e.g., "200.00").
Currency code for the withdrawal. Must match the card's currency.
A human-readable description for this withdrawal transaction.
Your internal reference identifier for this transaction.
Response
The response is identical to that of Fund Card. Refer to the Fund Card Response section for field explanations.
Freeze Card
Temporarily suspend a card to prevent any new transactions. The card can be unfrozen later to restore its active state. Useful for responding to suspected fraud or temporary suspension needs.
Path Parameters
The unique identifier of the card to freeze.
Body Parameters
An optional reason for freezing the card. Stored for audit purposes.
Response
Identifier of the card that was frozen.
Updated card status. Value is frozen after this operation.
ISO 8601 timestamp of when the card was frozen.
The reason provided for freezing the card, if supplied.
Unfreeze Card
Restore a frozen card to an active state, allowing it to process new transactions again. No request body is required.
Path Parameters
The unique identifier of the frozen card to restore.
Terminate Card
Permanently terminate a card. This action is irreversible. Any remaining balance on the card will be returned to your account.
Path Parameters
The unique identifier of the card to terminate.
Body Parameters
An optional reason for terminating the card. Stored for audit and compliance purposes.
Response
Identifier of the card that was terminated.
Updated card status. Value is terminated after this operation.
The balance that was on the card at the time of termination.
Indicates whether the remaining balance was returned to your account.
ISO 8601 timestamp of when the card was terminated.
The reason provided for terminating the card, if supplied.
Update Spending Limits
Update the spending limits and merchant restrictions on a card. All fields are optional — only the fields you include will be updated.
Path Parameters
The unique identifier of the card whose spending limits are being updated.
Body Parameters
Maximum amount allowed per individual transaction as a decimal string.
Maximum total spending allowed per day as a decimal string.
Maximum total spending allowed per week as a decimal string.
Maximum total spending allowed per month as a decimal string.
List of allowed MCC (Merchant Category Code) categories. Transactions at merchants outside these categories will be declined.
List of blocked MCC categories. Transactions at merchants in these categories will be declined.
Whitelist of specific merchant IDs. When set, only transactions at these merchants are allowed.
Blacklist of specific merchant IDs. Transactions at these merchants will be declined.
Response
Identifier of the card whose spending limits were updated.
The operation type. Value is update_spending_limits for this endpoint.
The full set of updated spending limits, including single_transaction, daily, weekly, monthly, allowed_categories, blocked_categories, allowed_merchants, and blocked_merchants.
ISO 8601 timestamp of when the spending limits were last updated.
Get Cards by Customer
Retrieve all cards belonging to a specific customer.
Path Parameters
The unique identifier of the customer whose cards are being retrieved.