Changelogs

All notable changes to the Bitnob API are documented here.

May 19th, 2026TAGS
BreakingWebhooksCard issuing

Card webhooks v2: snake_case payloads, micro-units, new envelope

Refreshed every outbound virtual-card webhook to a new payload shape. Event suffixes renamed from `.complete` to `.completed` (e.g. `virtualcard.created.completed`, `virtualcard.topup.completed`, `virtualcard.withdrawal.completed`). All JSON keys are now snake_case (`card_id`, `company_id`, `created_status`, etc.) and amounts are integers in micro-units (1 USD = 1,000,000) with a sibling `display_amount` float on transaction events. New top-level envelope adds `company_id` alongside `event_id` / `event` / `data`. Transaction events gain `transaction_type` (stable enum), `merchant_name` / `merchant_mcc` / `merchant_country`, and `timestamp`. Cross-border now emits two variants: `cross_border_pending` (company-wallet fee debit) and `cross_border_settled` (card-balance principal debit). Contactless and refund events also fire with multiple `transaction_type` values under the same `event` string — branch on `event` first, then `transaction_type`.

May 15th, 2026TAGS
ImprovedWebhooks

Webhook payloads: top-level event_id

Refreshed webhook payloads for card top-up, card withdrawal, stablecoin transfer, and stablecoin deposit events to include a top-level `event_id`, making deduplication and tracing easier. The `transfer.success` event now also includes `transaction_id` in its data payload.

February 28th, 2026TAGS
NewCard issuing

Card Issuing API v2 beta

New card creation endpoints are now available, with support for physical cards, custom BIN ranges, and 3D Secure. This update provides greater flexibility in how you issue and manage cards, while also improving security and control over card transactions.

January 30th, 2026TAGS
NewCard issuing

Virtual Cards API v2

Refactored the Virtual Cards API to a resource-oriented design. Replaced /api/virtualcards/* with /api/cards and /api/customers namespaces, standardized route structure using :cardId and :customerId path parameters, and consolidated card operations under /api/cards/:cardId/*. Added endpoints for extended card details, spending-limit controls, and customer-cards lookup.

January 30th, 2026TAGS
BreakingCard issuing

Breaking changes: legacy Virtual Cards endpoints removed

All previous endpoints under /api/virtualcards are no longer supported. Card operations now require an explicit cardId path parameter instead of implicit context, and the user-based model has been replaced with a customer-centric model using customerId. Update integrations to the new /api/cards and /api/customers namespaces before upgrading.

Old EndpointNew Endpoint
POST /api/virtualcards/createPOST /api/cards
POST /api/virtualcards/topupPOST /api/cards/:cardId/fund
POST /api/virtualcards/withdrawPOST /api/cards/:cardId/withdraw
POST /api/virtualcards/freezePOST /api/cards/:cardId/freeze
POST /api/virtualcards/unfreezePOST /api/cards/:cardId/unfreeze
POST /api/virtualcards/terminatePOST /api/cards/:cardId/terminate
Did you find this page useful?

Join our Discord