Dubu Pay gives you a fully managed payment and trading experience through a single REST API. By the end of this guide you will have a working merchant account, a live API key, a customer record, and a virtual bank account ready to receive NGN payments.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.
All API requests use the base URL
https://api.dubupay.com/api/v1. Responses follow the shape { "success": true, "data": { ... } } for successful requests.Prerequisites
- A valid business email address
- Node.js 18+ or any HTTP client (the examples below use cURL and the native
fetchAPI)
Steps
Register your merchant account
Send a Example response
POST request to /auth/register with your business name, email, and a password of at least eight characters.Request bodyYour legal business or trading name. Minimum two characters.
The email address you will use to sign in to Dubu Pay.
A password of at least eight characters.
Log in and obtain tokens
Log in to receive an access token (valid for 15 minutes) and a refresh token (valid for 7 days). You need the access token to complete onboarding steps in the dashboard and to create your first API key.Example response
Your registered email address.
Your account password.
Create an API key
For server-side integrations, API keys are more convenient than short-lived JWT tokens. Create one now using the access token from the previous step.Example responseFrom this point on, pass the API key in the
A human-readable label for this key, such as
"production-server" or "staging". Maximum 100 characters."sandbox" (default) or "live". Sandbox keys have the prefix dubu_sk_test_; live keys have dubu_sk_live_.X-Api-Key header instead of a Bearer token.Create your first customer
Before issuing a virtual bank account, you need a customer record. Customers represent the end-users who will send payments to you.Example response
Issue a virtual bank account
With a customer ID in hand, create a virtual bank account (onramp) so your customer can send an NGN payment. Use Example responseShare the
TEMPORARY type for a one-time payment with a locked exchange rate and a 25-minute expiry, or PERMANENT type for a reusable account (requires customer BVN).account_number and bank_name with your customer. When they transfer funds, a deposit record is created and progresses through the statuses PENDING_FX → PENDING_WITHDRAWAL → SETTLED.What’s next
Authentication
Understand JWT tokens, API keys, and when to use each.
API keys
Create, list, revoke, and delete API keys for your integration.