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
Bearer token for your merchant account. Format:
Bearer <token>Customer’s first name. Must match the name on file with the BVN/NIN provider for verification to succeed.
Customer’s last name.
Customer’s phone number. Must be unique across your merchant account (unless phone uniqueness checking is disabled). Accepts formats like
08012345678 or +2348012345678.Customer’s date of birth in
YYYY-MM-DD format.Customer’s Bank Verification Number (BVN). Exactly 11 digits, numbers only. Either
bvn or nin is required.Customer’s National Identification Number (NIN). Exactly 11 digits, numbers only. Either
bvn or nin is required.Customer’s email address. If omitted, a placeholder email derived from the phone number is generated automatically.
Customer’s physical address.
Wallet currency. Currently only
NGN is supported.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.If provided, the wallet reservation charge is debited from this existing customer’s wallet rather than from your merchant settlement wallet.
Arbitrary key-value data you want to attach to the wallet. Returned in webhook payloads.
Optional password for the customer account. Minimum 6 characters.
Response
true when the request succeeded.The newly created wallet 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
Bearer token.
Page number for pagination. Must be a positive integer.
Number of records per page. Must be a positive integer.
Filter by account name (partial match, case-insensitive).
Filter by an exact 10-digit account number. When provided, returns matching wallets directly without standard pagination.
Filter by customer phone number (partial match).
Response
true on success.Array of wallet objects.
Pagination metadata.
Examples
Response
Error responses
| HTTP Status | Description |
|---|---|
400 | Validation error — missing required fields or invalid format |
400 | BVN or NIN not provided |
400 | Phone number, BVN, or NIN already registered for this merchant |
400 | Insufficient balance for wallet reservation charge |
401 | Missing or invalid authentication token |
403 | API key lacks CREATE_CUSTOMER_WALLET permission |
400 Bad Request
