Skip to main content

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.

Customers represent the end users who interact with your payment flows — they can receive NGN virtual bank accounts, undergo KYC verification to unlock higher transaction limits, and maintain a balance ledger you can query at any time. All customer resources are scoped to your merchant account; customers created by one merchant are never visible to another.

Authentication

All endpoints require either a Bearer token or an API key.
Authorization: Bearer <access_token>
X-Api-Key: dubu_sk_live_...

Create a customer

POST https://api.dubupay.com/api/v1/customers Creates a new customer record. The email address must be unique within your merchant account.

Request body

email
string
required
A valid email address for the customer. Must be unique within your merchant account.
first_name
string
required
The customer’s first name. Between 1 and 100 characters.
last_name
string
required
The customer’s last name. Between 1 and 100 characters.

Response

success
boolean
true when the request succeeds.
data
object
The created customer object.

Example

curl -X POST https://api.dubupay.com/api/v1/customers \
  -H "X-Api-Key: dubu_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "email": "ada.obi@example.com",
    "first_name": "Ada",
    "last_name": "Obi"
  }'

List customers

GET https://api.dubupay.com/api/v1/customers Returns a paginated list of customers belonging to your merchant account. Use cursor-based pagination for large datasets.

Query parameters

limit
number
Maximum number of customers to return. Positive integer, up to 200. Defaults to 20.
cursor
string
Pagination cursor from the previous response’s next_cursor field.
email
string
Filter by exact email address.

Example

curl "https://api.dubupay.com/api/v1/customers?limit=50" \
  -H "X-Api-Key: dubu_sk_live_..."

Get a customer

GET https://api.dubupay.com/api/v1/customers/:id Retrieves a single customer by their UUID.

Path parameters

id
string
required
The customer’s UUID.

Example

curl "https://api.dubupay.com/api/v1/customers/cus_01HXYZ" \
  -H "X-Api-Key: dubu_sk_live_..."

Update a customer

PATCH https://api.dubupay.com/api/v1/customers/:id Updates the customer’s name. At least one of first_name or last_name must be provided.

Path parameters

id
string
required
The customer’s UUID.

Request body

first_name
string
Updated first name. Between 1 and 100 characters.
last_name
string
Updated last name. Between 1 and 100 characters.
At least one of first_name or last_name must be included in the request body.

Example

curl -X PATCH "https://api.dubupay.com/api/v1/customers/cus_01HXYZ" \
  -H "X-Api-Key: dubu_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"last_name": "Okonkwo"}'

Submit Tier 1 KYC

POST https://api.dubupay.com/api/v1/customers/:id/tier1-verification Submits a customer’s BVN (Bank Verification Number) and a selfie image to initiate Tier 1 identity verification. Tier 1 unlocks basic transaction limits.

Path parameters

id
string
required
The customer’s UUID.

Request body

bvn
string
required
The customer’s 11-digit Bank Verification Number. Must contain only digits.
image_url
string
required
A publicly accessible URL to a selfie or portrait photo of the customer.

Example

curl -X POST "https://api.dubupay.com/api/v1/customers/cus_01HXYZ/tier1-verification" \
  -H "X-Api-Key: dubu_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "bvn": "12345678901",
    "image_url": "https://cdn.example.com/selfies/ada-obi.jpg"
  }'

Submit Tier 2 KYC

POST https://api.dubupay.com/api/v1/customers/:id/tier2-verification Submits full KYC documentation for Tier 2 verification. Tier 2 unlocks higher limits and is required for permanent virtual accounts. You must provide residential address, government-issued identification, and declarations about the customer’s financial profile.

Path parameters

id
string
required
The customer’s UUID.

Request body

residential_address
object
required
The customer’s current home address.
nationality
string
required
ISO 3166-1 alpha-3 country code for the customer’s nationality (e.g., NGA).
birth_date
string
required
Date of birth in YYYY-MM-DD format.
identifying_information
array
required
At least one government-issued identity document.
source_of_funds
string
required
Where the customer’s funds originate. One of: company_funds, ecommerce_reseller, gambling_proceeds, gifts, government_benefits, inheritance, investments_loans, pension_retirement, salary, sale_of_assets_real_estate, savings, someone_elses_funds.
account_purpose
string
required
The intended purpose of the account. One of: charitable_donations, ecommerce_retail_payments, investment_purposes, operating_a_company, other, payments_to_friends_or_family_abroad, personal_or_living_expenses, protect_wealth, purchase_goods_and_services, receive_payment_for_freelancing, receive_salary.
expected_monthly_payments_usd
string
required
Expected monthly USD transaction volume. One of: 0_4999, 5000_9999, 10000_49999, 50000_plus.
acting_as_intermediary
boolean
required
Whether the customer is acting as a payment intermediary on behalf of another party.
employment_status
string
required
Employment status. One of: employed, homemaker, retired, self_employed, student, unemployed.
most_recent_occupation
string
required
Occupation category. One of: BUSINESS_ADMIN, STEM, HEALTHCARE_SOCIAL, EDUCATION_ARTS_MEDIA, SERVICE_PUBLIC_SAFETY, TRADES_LABOR.
documents
array
Optional supporting documents (e.g., proof of address, proof of source of funds).

Get customer balance

GET https://api.dubupay.com/api/v1/customers/:id/balance Returns the current balance held for a customer across all currencies.

Path parameters

id
string
required
The customer’s UUID.

Response

data
object
Balance breakdown for the customer.

Example

curl "https://api.dubupay.com/api/v1/customers/cus_01HXYZ/balance" \
  -H "X-Api-Key: dubu_sk_live_..."

Get customer ledger

GET https://api.dubupay.com/api/v1/customers/:id/ledger Returns a paginated transaction history (ledger) for a customer, showing credits and debits over time.

Path parameters

id
string
required
The customer’s UUID.

Response

data
array
List of ledger entries.

Example

curl "https://api.dubupay.com/api/v1/customers/cus_01HXYZ/ledger" \
  -H "X-Api-Key: dubu_sk_live_..."