Get Virtual Account
Retrieve a specific virtual account for the authenticated tenant.
Endpoint
GET /api/v1/virtual-accounts/{id}
Path Parameters
Response Fields
Unique identifier for the virtual account.
Tenant that owns the account.
Customer assigned to the account.
Provider bank code or slug.
Human-readable bank name.
Provider selected for the account.
Account type stored by the service.
Total inbound amount recorded on this account, in minor units.
Number of recorded inbound credits.
Provider expiry timestamp if the account allocation is temporary.
ISO 8601 creation timestamp.
ISO 8601 last-update timestamp.
Example Request
const account = await client.virtualAccounts.get('va_abc123xyz');
console.log(`Account: ${account.accountNumber}`);
console.log(`Received: ${account.totalReceivedMinor}`);
console.log(`Status: ${account.status}`);
Example Response
{
"data": {
"id": "va_abc123xyz",
"tenant_id": "tenant_123",
"customer_id": "cus_1234567890",
"account_number": "0123456789",
"account_name": "John Doe",
"bank_code": "wema-bank",
"bank_name": "Wema Bank",
"provider": "paystack_dva",
"status": "active",
"account_type": "standard",
"total_received_minor": 500000,
"transaction_count": 5,
"metadata": {
"purpose": "collections",
"tier": "premium"
},
"expires_at": null,
"created_at": "2026-03-07T10:30:00Z",
"updated_at": "2026-03-07T15:45:00Z"
},
"meta": {
"timestamp": "2026-03-07T15:45:00Z",
"requestId": "req_123"
}
}
Error Responses
{
"error": {
"code": "NOT_FOUND",
"message": "Account not found",
"details": null
},
"meta": {
"path": "/api/v1/virtual-accounts/va_missing",
"method": "GET"
}
}
Use Cases
Show customers their account number and bank details in your app.
Confirm whether an account is active, frozen, closed, or expired before presenting it to users.
Use total_received_minor and transaction_count for reporting and reconciliation.
Next Steps
List Accounts
View all virtual accounts
Close Account
Close the account
Webhooks
Handle account events