Virtual Accounts
Give each customer their own dedicated bank account number. When they transfer to it, the payment lands in your balance with the payer already identified — no prompts, no redirects.
Great for top-ups
Virtual accounts shine for wallet top-ups, escrow-style flows and B2B invoicing, where the payer is already known and simply needs somewhere to send money from their banking app.
Create a virtual account
POST
/api/v1/virtual-accountsIssue a dedicated UMB virtual account for one of your customers.
Authenticates with your API keys.
Body parameters
| Parameter | Description | |
|---|---|---|
customerName | required | stringLegal name of the customer who will own the account. |
customerPhone | required | stringCustomer's phone number. |
ghanaCardNumber | required | stringCustomer's Ghana Card number — required by the bank for account issuance. |
accountNickname | optional | stringFriendly label to identify the account in your integration. |
masterAccountId | optional | stringIssue under a specific master account; omit to use your default. |
curl -X POST "https://api.namibrapay.com/api/v1/virtual-accounts" \
-H "X-API-Key: pk_test_xxxxxxxxxxxxxxxx" \
-H "X-API-Secret: sk_test_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"customerName": "Ama Mensah",
"customerPhone": "+233241234567",
"ghanaCardNumber": "GHA-712345678-0",
"accountNickname": "wallet-topup-ama"
}'201
{
"success": true,
"data": {
"id": "va_7fk21j9d",
"accountNumber": "1020820171412",
"bankName": "UMB Bank",
"accountName": "AMA MENSAH",
"nickname": "wallet-topup-ama",
"status": "active"
}
}List virtual accounts
GET
/api/v1/virtual-accountsList every virtual account issued on your merchant account.
Authenticates with your API keys.
Sync a balance
POST
/api/v1/virtual-accounts/{id}/sync-balancePull the latest balance from the provider rail for a specific virtual account.
Authenticates with your API keys.
curl -X POST "https://api.namibrapay.com/api/v1/virtual-accounts/va_7fk21j9d/sync-balance" \
-H "X-API-Key: pk_test_xxxxxxxxxxxxxxxx" \
-H "X-API-Secret: sk_test_xxxxxxxxxxxxxxxx"Incoming transfers to the account are credited to your NamibraPay balance with the payer identified by the account — surface them in your own ledger by listening to the appropriate webhook events.