STATIC account
Permanent account; requires BVN or NIN. Safe to store and reuse.
DYNAMIC account
Temporary, one-time use. Create when needed; do not store.
STATIC vs DYNAMIC
How it works
- You call the Reserve an Account API with customer details and
account_type:STATICorDYNAMIC. - Payvessel returns one or more virtual account numbers (per partner bank).
- You share the account number, account name, and bank name with the customer.
- When the customer transfers to that account, Payvessel, the partner bank, and you (the merchant) get notified.
- You use the account reference / tracking reference for reconciliation and records.
Partner bank codes
| Rubies MFB |
090175 |
You can request accounts for one or both banks by passing their codes in the bankcode array.
For DYNAMIC accounts, you can now use Rubies MFB (090175) in addition to the existing banks. The bank name will be returned in the response.
When to use which
- Single-service payments (e.g. electricity, ISP): Reserve an account per customer so they pay by transfer; you get notifications and can confirm payment.
- Wallets / top-up (e.g. super agents, investment apps, logistics): Use STATIC accounts so each customer has a permanent account number to fund their wallet.
- One-time checkout: Use DYNAMIC: create an account when the user chooses “Pay with bank transfer”, show the details, and do not reuse that account.
API reference (code, payload, response)
For the Create Virtual Account and Get Virtual Account endpoints: including request/response bodies, headers, and code samples: use the API reference tab:Next steps
Create Virtual Account (API)
OpenAPI reference for create virtual account
Get Virtual Account
Fetch account details by business ID and account number
Payment notifications
Configure webhooks for payment notifications
API overview
Authentication and base URLs
