Create a wallet
You must have either a BVN or NIN — or both — to create a wallet. Wallets created without verified identity documents are frozen until verification is completed.
POST /wallet
Creates a new customer wallet and assigns a dedicated virtual account number. The merchant’s settlement wallet is debited a reservation charge upon creation.
If BVN or NIN verification succeeds, the wallet is activated immediately with status: "ACTIVE". If verification fails, the wallet is created but frozen with status: "FROZEN".
Request
string
required
Bearer token for your merchant account. Format:
Bearer <token>string
required
Customer’s first name. Must match the name on file with the BVN/NIN provider for verification to succeed.
string
required
Customer’s last name.
string
required
Customer’s phone number. Must be unique across your merchant account (unless phone uniqueness checking is disabled). Accepts formats like
08012345678 or +2348012345678.string
required
Customer’s date of birth in
YYYY-MM-DD format.string
Customer’s Bank Verification Number (BVN). Exactly 11 digits, numbers only. Either
bvn or nin is required.string
Customer’s National Identification Number (NIN). Exactly 11 digits, numbers only. Either
bvn or nin is required.string
Customer’s email address. If omitted, a placeholder email derived from the phone number is generated automatically.
string
Customer’s physical address.
string
default:"NGN"
Wallet currency. Currently only
NGN is supported.string
default:"TIER_1"
Requested wallet tier. One of
TIER_1, TIER_2, or TIER_3. The actual assigned tier depends on successful verification — wallets requiring dual BVN and NIN verification may be downgraded to TIER_1 if either check fails.string
If provided, the wallet reservation charge is debited from this existing customer’s wallet rather than from your merchant settlement wallet.
object
Arbitrary key-value data you want to attach to the wallet. Returned in webhook payloads.
string
Optional password for the customer account. Minimum 6 characters.
Response
boolean
true when the request succeeded.object
The newly created wallet object.
object
The customer record created alongside the wallet.
Examples
Response (201 Created)
List wallets
GET /wallet
Returns a paginated list of all customer wallets for your merchant account, ordered by creation date (newest first).
Request
string
required
Bearer token.
number
default:"1"
Page number for pagination. Must be a positive integer.
number
default:"20"
Number of records per page. Must be a positive integer.
string
Filter by account name (partial match, case-insensitive).
string
Filter by an exact 10-digit account number. When provided, returns matching wallets directly without standard pagination.
string
Filter by customer phone number (partial match).
Response
boolean
true on success.array
Array of wallet objects.
object
Pagination metadata.
Examples
Response
Error responses
400 Bad Request
