Virtual Accounts API provides endpoints for managing virtual bank accounts
linked to master wallets or child addresses. This API enables businesses to
create virtual accounts for customers to receive payments, retrieve virtual
account details, and activate/deactivate virtual accounts.
Introduction
Virtual Accounts allow your customers to receive fiat payments through traditional bank transfers, which are automatically converted to stablecoins on the blockchain. This bridges the gap between traditional banking and stablecoin payments, enabling seamless payment processing for your business. When a customer sends fiat currency to a virtual account, the system can automatically mint the stablecoin equivalent and transfer it to the linked wallet or address, providing real-time payment processing capabilities.How Virtual Accounts Work
Account Creation
Create virtual accounts linked to master wallets or child addresses with
customer information.
Payment Receipt
Customers send fiat payments to the virtual account using traditional bank
transfers.
Auto-Funding
For AUTO_FUNDING type accounts, payments automatically trigger minting of
the stablecoin.
Fund Management
Minted stablecoins are transferred to the linked wallet or address for
immediate use.
Virtual Account Types
Virtual accounts support different types with varying behaviors:AUTO_FUNDING (Default)
- Automatically mints stablecoin when fiat payments are received
- Transfers stablecoin to the linked wallet/address immediately
- Best for real-time payment processing
- Provides instant conversion from fiat to stablecoin
The auto-funding flow only applies to virtual accounts with type AUTO_FUNDING.
Other types have different processing behaviors.
How It Works - Auto-Funding Flow
When a customer sends fiat currency to a virtual account with typeAUTO_FUNDING:
1. Payment Receipt
The payment is received in the virtual account through traditional bank transfer.2. Automatic Minting
The system automatically mints the stablecoin equivalent on the blockchain.3. Blockchain Transfer
The minted stablecoin is transferred to the virtual account’s linked wallet or address.The auto-funding flow only applies to virtual accounts with type AUTO_FUNDING.
Other types have different processing behaviors.
Prerequisites
Before creating virtual accounts, ensure:- Virtual accounts feature must be enabled for your business(reach out to [email protected] to enable the feature)
- Only available on MAINNET environment (not available on testnet)
- Master Wallet must support stablecoin asset
Environment: Virtual accounts are only available in the MAINNET environment.
Testnet environments do not support virtual account creation or operations.
Supported Currency
- Fiat: NGN (Nigerian Naira) - Traditional bank transfers
- Stablecoin: cNGN - Minted automatically on blockchain (for AUTO_FUNDING type)
API Endpoints
Below are the core API endpoints for Virtual Accounts operations:Master Wallet Endpoints
- POST /wallets//virtual-accounts – Create a virtual account for a master wallet
- GET /wallets//virtual-accounts – Retrieve virtual account details
- PATCH /wallets//virtual-accounts/ – Update virtual account status
Child Address Endpoints
- POST /wallets//addresses//virtual-accounts – Create a virtual account for a child address
- GET /wallets//addresses//virtual-accounts – Retrieve virtual account details
- PATCH /wallets//addresses//virtual-accounts/ – Update virtual account status
Creating Virtual Accounts
You can create virtual accounts for both master wallets and child addresses, depending on your use case. Use the Create Virtual Account API for master wallets or the Create Virtual Account API for child addresses.Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
firstname | string | Yes | Customer’s first name |
lastname | string | Yes | Customer’s last name |
email | string | Yes | Customer’s email address (must be unique per business) |
phone | string | Yes | Customer’s phone number in format: +234XXXXXXXXXX |
Response Example
Retrieving Virtual Accounts
To retrieve virtual account details, use the Get Virtual Account API for master wallets or the Get Virtual Account API for child addresses.Updating Virtual Accounts
You can activate or deactivate virtual accounts to control auto-funding behavior. Use the Update Virtual Account API for master wallets or the Update Virtual Account API for child addresses.Auto-Funding Behavior
- Active accounts: Payments received trigger automatic stablecoin minting
- Inactive accounts: Payments are received but auto-funding is disabled
Update Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
isActive | boolean | Yes | true to activate, false to deactivate |
When a virtual account is deactivated (
isActive: false), payments can still
be received but the automatic stablecoin minting and transfer process is
disabled. You can reactivate the account at any time to re-enable
auto-funding.Use Cases
E-commerce Payments
Create virtual accounts for customers to receive payments for products or services. The automatic conversion to stablecoins enables seamless integration with your blockchain-based payment system.Subscription Services
Link virtual accounts to customer subscriptions, allowing recurring payments through traditional bank transfers that are automatically converted to stablecoins.Marketplace Transactions
Enable peer-to-peer transactions where customers can send fiat payments that are instantly converted to stablecoins and credited to their wallet.Remittance Services
Provide customers with virtual accounts to receive remittances in NGN, which are automatically converted to stablecoins for easy cross-border transfers.Best Practices
Account Management
- Unique email addresses: Ensure each customer has a unique email address
- Phone number format: Always use the correct format (+234XXXXXXXXXX) for Nigerian phone numbers
- Account activation: Activate accounts only when ready to process payments
- Monitor account status: Regularly check account status and handle inactive accounts appropriately
Security
- Customer verification: Verify customer information before creating virtual accounts
- Account validation: Validate account details before processing payments
- Access control: Implement proper access controls for virtual account management
Support & Resources
Getting Help
- Support for more stablecoins and currencies: Reach out to [email protected] to enable support for your stablecoin and currency
- Email: [email protected]
- API Reference: Virtual Accounts
Virtual accounts provide a powerful way to bridge traditional banking with
blockchain payments. Start by creating accounts for your master wallets, then
expand to child addresses as your use case requires. Always ensure your
wallets support stablecoin for AUTO_FUNDING type accounts.
Happy hacking! ❤️

