You can create Virtual Accounts from your Paystack Dashboard or via the API. Choose Dashboard if you’re creating a few accounts manually, and API if you want to assign accounts automatically at scale.
Virtual account
Give every customer a unique way to pay you.
Create a permanent bank account number for each customer.
When they transfer, the payment lands on your dashboard instantly.
Know exactly who paid you, every time.
Dashboard & API access
Launch quickly from your dashboard with no code, or build fully custom billing flows through the API
Permanent account numbers
Each customer gets a permanent bank account number that stays theirs for as long as they need it
Custom account naming
Account names show your business name by default
Real-time notifications
Get notified the moment a transfer lands, by email, on your dashboard, or via webhooks
Built for businesses that get paid more than once.
Give each customer their own permanent account number so they can pay you by transfer anytime.
Up to 1,000 accounts
Create up to 1,000 accounts out of the box. Need more? Reach out and we'll increase your limit
Inbound transfer approval
Accept or reject individual transfers before they're processed. Useful for controlling exactly what comes into your account
Works like any transaction
Bank transfers show up in your dashboard alongside card, USSD, and other payments.
Frequently asked questions
Have more questions? Get answers on our User Manual or contact sales
Typically, you’ll need the customer’s basic details (e.g., name and contact info). Some businesses may also need to complete additional customer validation depending on the category/use case.
Virtual Accounts are commonly used for wallet funding, savings, lending, collections, and any business that needs customers to pay by bank transfer repeatedly or prefers transfer-first experiences.
You assign a customer a dedicated account number, share it with them, and they send a bank transfer to that account whenever they need to pay. The payment is matched and recorded automatically.
Transfers paid into Virtual Accounts reflect on your Dashboard like other Paystack transactions, and you can also get notified programmatically (e.g., via webhooks) for instant confirmation.
Virtual Accounts are dedicated accounts assigned to customers for repeat payments, while Pay with Transfer typically generates a temporary account for a single Checkout attempt (useful for one-off payments).
You can create many Virtual Accounts for your customers often starting with a default allocation, and you can request an increase if you need more for your use case.
First confirm the customer details meet the requirements for assignment, then retry the assignment flow. If it persists, it’s usually a configuration/eligibility issue that support can help confirm quickly.
The account name a customer sees in their banking app is generated using Paystack’s naming convention for Dedicated Virtual Accounts. In practice, it typically shows up as a combination of your Paystack business name and the customer’s name
Yes. Many businesses start by creating Virtual Accounts from the Dashboard, then move to API-based assignment when they’re ready to automate at scale.
