Skip to main content

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-data
file
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