Virtual accounts

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.

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? Find answers in our User Manual or contact Sales

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.

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 up to 1,000 Virtual Accounts by default. Contact us to request a higher limit, which is subject to review.

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.

Ready to get started?

Create an account instantly, or contact us to design a custom package for your business.

See what you’ll pay

Integrated pricing with no hidden fees

Start building

Get up and build with Paystack in 10 minutes