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
string
required
Bearer token.
string
required
multipart/form-datafile
required
A 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.Example CSV
Response
boolean
true — the file was accepted and background processing has started.string
"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
string
required
Bearer token.
array
required
Array of transaction objects. Each item must have
customerId and amount. Entries with amount <= 1 or missing customerId are filtered out automatically.string
A reference for the entire batch. Minimum 10 characters. Auto-generated if omitted. Must be unique — duplicate batch references are rejected.
Response
boolean
true on success.string
"Transaction successfully completed." or a description of the result.object
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
string
required
Bearer token.
array
required
Array of transaction objects. Each item requires
customerId and amount.string
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
string
required
Bearer token.
array
required
string
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.array
required
string
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
string
required
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
string
required
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
string
required
Bearer token.
string
required
The ID of the batch to cancel.
Examples
Response
Error responses
400 Batch Reference Exists
