Wallet account numbers
Every wallet is identified by a unique 10-digit account number. This number works like a conventional Nigerian bank account number — other parties can send funds directly to it via NIP (bank transfer). You can look up any wallet by its account number usingGET /wallet/info.
Wallet states
A wallet can be in one of three states:| State | Description |
|---|---|
| Active | The wallet is open and can send and receive funds normally. |
| Closed | The wallet is permanently shut. No credits or debits are permitted. |
| Blocked | The wallet is temporarily suspended. Transactions are rejected until the wallet is re-enabled. |
Closing a wallet
To permanently close a wallet, callPOST /wallet/close. This action is irreversible.
Blocking and unblocking a wallet
Temporarily block a wallet withPOST /wallet/close (passing a reason) or re-enable it with POST /wallet/enable.
Creating a wallet
Create a wallet for a customer by callingPOST /wallet. You must supply the customer’s personal details, date of birth, phone number, and at least one KYC identifier (BVN or NIN).
You must provide either a
bvn or nin (or both). Wallets cannot be created without at least one KYC identifier.| Field | Required | Description |
|---|---|---|
firstName | Yes | Customer’s first name |
lastName | Yes | Customer’s last name |
phoneNumber | Yes | Customer’s phone number |
dateOfBirth | Yes | Date of birth in YYYY-MM-DD format |
email | No | Customer’s email address |
bvn | Conditional | 11-digit Bank Verification Number |
nin | Conditional | 11-digit National Identification Number |
tier | No | Wallet tier: TIER_1, TIER_2, or TIER_3 (default: TIER_1) |
currency | No | Currency code — only NGN is supported |
customerId | No | Your own identifier for the customer |
metadata | No | Arbitrary key-value data attached to the wallet |
Bulk wallet creation
To create wallets for multiple customers in one request, upload a CSV file toPOST /wallet/bulk-create-customers. The CSV must contain one row per customer with the same fields as the single-wallet endpoint.
Wallet balances
A wallet has two balance figures:| Balance | Description |
|---|---|
Wallet balance (availableBalance) | Funds available for the customer to spend right now. |
Booked balance (bookedBalance) | Total funds in the wallet, including amounts not yet cleared. |
availableBalance to determine how much a customer can spend.
Post-no-credit mode
Post-no-credit mode allows a wallet to be debited but not credited. Use this to enforce collection-only behaviour on specific wallets — for example, loan repayment accounts that should never receive inbound transfers. Enable or disable post-no-credit mode per wallet. Only main merchants and admins can toggle this setting.Crediting and debiting wallets
Use the wallet endpoints to directly credit or debit a customer’s wallet from your merchant account.Credit a wallet
Debit a wallet
The
reference field must be at least 10 characters. Use a unique value for every transaction to allow safe retries and prevent duplicates.Batch operations
To credit or debit multiple wallets in a single request, use the batch endpoints:| Endpoint | Description |
|---|---|
POST /wallet/batch-credit-customer-wallet | Credit multiple wallets by customerId |
POST /wallet/batch-debit-customer-wallet | Debit multiple wallets by customerId |
POST /wallet/batch-credit-customer-via-wallet-id | Credit multiple wallets by wallet ID |
POST /wallet/batch-debit-customer-via-wallet-id | Debit multiple wallets by wallet ID |
batchReference (minimum 10 characters) and an array of transactions:
Wallet-to-wallet vs bank transfers
TagPay supports two types of outbound transfers from a customer wallet:| Transfer type | Description | Endpoint |
|---|---|---|
| Wallet transfer | Instant transfer to another TagPay wallet by account number | Customer-initiated via /customer/transfer/phone or bulk CSV |
| Bank transfer | NIP transfer to any Nigerian bank account | Customer-initiated via POST /customer/transfer/bank |
Listing wallets
Retrieve all wallets under your merchant account:accountNumber, phoneNumber, or a search term. Up to 500 account numbers can be looked up in a single bulk request via GET /wallet/customer/accounts.
Related pages
Wallet management guide
Step-by-step guide to creating and managing wallets
Funds transfer
Send funds to banks and between wallets
Customers
Understand customer accounts and KYC tiers
Transactions
Understand transaction states, types, and reversals
