> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tabsglobal.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Dedicated Virtual Accounts

> Collect Nigerian Naira (NGN) locally using dedicated NUBAN virtual accounts.

Tabs provides merchants with dedicated Nigerian NUBAN virtual bank accounts. Inbound bank transfers from any Nigerian commercial bank, microfinance bank, or mobile money wallet settle automatically into your NGN merchant wallet via the Nigeria Inter-Bank Settlement System (NIP).

## How virtual accounts work

1. **Account allocation**: Your merchant account is assigned dedicated NUBAN bank accounts backed by partner financial institutions (such as Wema Bank or Providus Bank).
2. **Payment collection**: You display these account details to customers, clients, or counterparties.
3. **Instant settlement**: Payers transfer funds via local bank mobile apps, USSD, or internet banking.
4. **Automated credit & webhook**: Within seconds of settlement, Tabs credits your NGN wallet and fires a `deposit.credited` webhook.

***

## Fetching virtual account details

You can retrieve your assigned virtual account details using the API:

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://api.tabsglobal.co/v1/wallets/virtual-account" \
    -H "Authorization: Bearer sk_live_..." \
    -H "Content-Type: application/json"
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api.tabsglobal.co/v1/wallets/virtual-account", {
    method: "GET",
    headers: {
      "Authorization": `Bearer ${process.env.TABS_SECRET_KEY}`,
      "Content-Type": "application/json",
    },
  });

  const virtualAccount = await response.json();
  console.log(virtualAccount);
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.tabsglobal.co/v1/wallets/virtual-account"
  headers = {
      "Authorization": f"Bearer {API_KEY}",
      "Content-Type": "application/json",
  }

  response = requests.get(url, headers=headers)
  print(response.json())
  ```
</CodeGroup>

### Sample response

```json theme={null}
{
  "accountNumber": "9948102941",
  "accountName": "TABS / ACME VENTURES",
  "bankName": "Wema Bank",
  "bankCode": "035",
  "currency": "NGN",
  "status": "ACTIVE"
}
```

***

## Receiving deposit webhooks

When a payer completes a bank transfer to your virtual account, Tabs dispatches the `deposit.credited` event:

```json theme={null}
{
  "id": "evt_1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
  "type": "deposit.credited",
  "createdAt": "2026-09-21T02:30:15.120Z",
  "data": {
    "depositId": "dep_8f7e6d5c-4b3a-2109-8765-43210fedcba9",
    "currency": "NGN",
    "amount": "150000.00",
    "channel": "VIRTUAL_ACCOUNT",
    "senderName": "OLUMIDE JOHNSON",
    "reference": "NIP-DEP-99481029",
    "creditedAt": "2026-09-21T02:30:14.980Z"
  }
}
```

For more details on handling webhooks, see the [Webhook overview](/webhooks/overview).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.