Bulk create wallets via CSV
POST /wallet/bulk-create-customers
Creates multiple customer wallets by uploading a CSV file. Processing happens asynchronously — the API returns immediately with a 202-style acknowledgement while wallets are created in the background.
Wallet creation for each row follows the same BVN/NIN verification rules as the single wallet creation endpoint. Rows that fail validation (missing required fields, duplicate phone/BVN, insufficient merchant balance) are silently skipped.
Request
Bearer token.
multipart/form-dataA CSV file with customer data. The file field name must be
customers. Maximum chunk size processed at a time is 5,000 rows.CSV format
The CSV file must include a header row. Column names are case-sensitive.| Column | Required | Description |
|---|---|---|
first_name | Yes | Customer’s first name |
last_name | Yes | Customer’s last name |
phone_number | Yes | Customer phone number |
date_of_birth | Yes | Date of birth (YYYY-MM-DD) |
bvn | Yes | 11-digit BVN (required for wallet creation) |
nin | No | 11-digit NIN (required for TIER_2/TIER_3) |
email | No | Email address |
address | No | Physical address |
tier | No | TIER_1, TIER_2, or TIER_3 (defaults to TIER_1) |
Example CSV
Response
true — the file was accepted and background processing has started."Wallet processing is in progress. Please check back soon"Examples
Response (201 Created)
Batch credit customer wallets
POST /wallet/batch-credit-customer-wallet
Credits multiple customer wallets in a single request using customer IDs. The merchant wallet is debited the total of all amounts plus applicable fees. Transactions that cannot be processed (insufficient balance, post-no-credit enabled, duplicate reference) are returned in the rejected array while valid ones proceed.
Request
Bearer token.
Array of transaction objects. Each item must have
customerId and amount. Entries with amount <= 1 or missing customerId are filtered out automatically.A reference for the entire batch. Minimum 10 characters. Auto-generated if omitted. Must be unique — duplicate batch references are rejected.
Response
true on success."Transaction successfully completed." or a description of the result.Examples
Response
Batch debit customer wallets
POST /wallet/batch-debit-customer-wallet
Debits multiple customer wallets using customer IDs. Requires canDebitCustomer to be enabled on your merchant account.
Request
Bearer token.
Array of transaction objects. Each item requires
customerId and amount.Reference for the batch. Minimum 10 characters.
Examples
Response
Batch credit by wallet ID
POST /wallet/batch-credit-customer-via-wallet-id
Credits multiple customer wallets using wallet IDs (UUIDs) instead of customer IDs. Use this when you have wallet IDs stored directly from previous API responses.
Request
Bearer token.
Reference for the batch. Minimum 10 characters.
Examples
Batch debit by wallet ID
POST /wallet/batch-debit-customer-via-wallet-id
Debits multiple customer wallets using wallet IDs.
Request
Same structure as batch credit by wallet ID, but debits the listed wallets.Reference for the batch. Minimum 10 characters.
Examples
List bulk credit records
GET /wallet/bulk-credit-customer-records
Returns a list of all batch credit records created under your merchant account, including accepted and rejected transaction details.
Request
Bearer token.
Examples
Check batch credit status
GET /wallet/bulk-credit-customer-status
Returns the current processing status of a bulk credit batch. Use this to poll background jobs initiated by the upload-based bulk credit flow.
Request
Bearer token.
Examples
Cancel a batch
DELETE /wallet/bulk-credit-customer/:batchId
Cancels a pending bulk credit batch before it is processed. Once a batch has started processing, it cannot be cancelled.
Request
Bearer token.
The ID of the batch to cancel.
Examples
Response
Error responses
| HTTP Status | Description |
|---|---|
400 | Batch reference already exists |
400 | Insufficient merchant wallet balance |
400 | Daily transaction limit exceeded |
400 | No valid transactions to process |
400 | CSV file missing or failed to upload |
401 | Missing or invalid authentication token |
403 | Customer debit not enabled for this merchant |
400 Batch Reference Exists
