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
Response
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
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.ID of a previously fetched rate to lock in for this onramp. See Exchange Rates.
Response
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
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.