Authentication
All endpoints require either a Bearer token or an API key.TEMPORARY vs PERMANENT accounts
Use TEMPORARY accounts for single-use checkout flows where you want to guarantee a fixed exchange rate for a short window. Use PERMANENT accounts for customers who deposit repeatedly over time.
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
string
required
The customer’s UUID.
Response
object
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
string
required
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
string
required
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.string
UUID of the customer to associate with this onramp. Required for PERMANENT onramps.
string
ID of a previously fetched rate to lock in for this onramp. See Exchange Rates.
number
The NGN amount to lock for this virtual account. Required for TEMPORARY onramps.
object
How and where proceeds are settled after a deposit converts.
Response
object
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
number
Page number (1-indexed).
number
Results per page. Up to 100.
string
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
string
required
The onramp ID.