Skip to main content
Money arriving in a virtual account isn’t something you initiate, so there’s no response to read it from. Bitnob sends virtual_account.deposit.success to your webhook URL when a transfer lands, normally within 10 minutes of the sender’s transfer. The funds credit your company NGN balance, not a per-customer balance. Signature verification, retries, and source IPs work the same way as every other Bitnob webhook. They’re covered on Webhooks.

virtual_account.deposit.success

Fired when a transfer into one of your virtual accounts is confirmed. Use it to mark an order paid, release goods, or credit the customer in your own ledger.
virtual_account.deposit.success
Mobile-money and temporary accounts also send lifetime, rail, and network inside data.

Handle it once

  1. Verify the x-bitnob-signature header over the raw body. See Verify every delivery.
  2. Skip the event if you’ve already processed its event_id.
  3. Look up which customer owns data.virtual_account_id, and credit them data.amount kobo in your ledger.
  4. Respond 200. If your own processing fails temporarily, respond with a 5xx so the event is retried.
Reconcile on a schedule with Get account transactions, so a missed delivery never becomes a missing credit.

Test it in sandbox

Call Simulate deposit instead of waiting on a real transfer. Each call credits a fixed ₦10,000 ("1000000" kobo), up to ₦100,000 per hour, and fires this event to the webhook URL set in your sandbox dashboard.