Virtual accounts give your customers a real Nigerian Naira bank account number they can fund from any local bank. When NGN arrives in the account, Dubu Pay converts it to USDC or USDT and routes the proceeds to your configured settlement destination. You can issue accounts directly to a customer via the Customers API, or create standalone onramps with flexible settlement options.Documentation Index
Fetch the complete documentation index at: https://docs.dubupay.com/llms.txt
Use this file to discover all available pages before exploring further.
Authentication
All endpoints require either a Bearer token or an API key.TEMPORARY vs PERMANENT accounts
| Feature | TEMPORARY | PERMANENT |
|---|---|---|
| Expiry | 25 minutes after creation | No expiry |
| Rate | Locked at creation time | Floating (current market rate) |
amount field | Required | Not applicable |
| KYC requirement | None | Customer must have Tier 1 BVN verification |
Issue an NGN virtual account to a customer
POST https://api.dubupay.com/api/v1/customers/:id/ngn-virtual-account
Creates a permanent NGN virtual bank account and links it to the specified customer. The customer must have completed at least Tier 1 KYC (BVN verification) before you can issue a permanent account.
Path parameters
The customer’s UUID.
Response
The issued virtual account details.
Example
Get a customer’s NGN virtual account
GET https://api.dubupay.com/api/v1/customers/:id/ngn-virtual-account
Retrieves the NGN virtual account currently assigned to a customer.
Path parameters
The customer’s UUID.
Example
Create an onramp
POST https://api.dubupay.com/api/v1/payments/onramps
Creates an NGN virtual bank account (onramp) with configurable type, settlement mode, and target asset. This is the most flexible way to accept NGN deposits.
This endpoint supports idempotency. Pass an
X-Idempotency-Key header to safely retry requests without creating duplicate onramps.Request body
The onramp type. One of
TEMPORARY or PERMANENT. TEMPORARY accounts expire after 25 minutes with the rate locked at creation. PERMANENT accounts have no expiry and use the floating market rate at the time of deposit.UUID of the customer to associate with this onramp. Required for PERMANENT onramps.
ID of a previously fetched rate to lock in for this onramp. See Exchange Rates.
The NGN amount to lock for this virtual account. Required for TEMPORARY onramps.
How and where proceeds are settled after a deposit converts.
Response
The created onramp.
Example — TEMPORARY onramp
Example — PERMANENT onramp with internal balance
List onramps
GET https://api.dubupay.com/api/v1/payments/onramps
Returns a paginated list of onramps created under your merchant account.
Query parameters
Page number (1-indexed).
Results per page. Up to 100.
Filter by status:
ACTIVE, EXPIRED, or INACTIVE.Example
Get an onramp
GET https://api.dubupay.com/api/v1/payments/onramps/:id
Retrieves a single onramp by ID, including its current status and account details.
Path parameters
The onramp ID.