WhatsApp Wallet: Manage Messaging Credits
The WhatsApp Wallet is the prepaid balance used for outbound WhatsApp marketing and automation sends. It helps prevent campaigns from sending without budget and gives you a transaction history for charges, Paystack top-ups, and refunds.
Wallet balance is tracked as credits. 1 wallet credit equals ₦1.
What Uses the Wallet
The wallet is used for production WhatsApp sends from:
- Broadcasts
- WhatsApp workflow text messages
- WhatsApp workflow template messages
- WhatsApp workflow interactive messages
- WhatsApp workflow booking flows
Test sends from the Broadcasts page do not debit the wallet.
How Charging Works
Nviti reserves wallet funds before each outbound WhatsApp send attempt.
- The system checks that the wallet exists, is active, and has enough balance.
- The configured send price is debited.
- The WhatsApp API request is attempted.
- If Meta accepts the request, the debit remains.
- If the API request fails, the debit is refunded automatically.
This means a failed send can create two transactions:
- A debit for the send attempt
- A credit refund for the failed API request
The refund metadata links back to the failed delivery when available.
For template messages, Meta’s final billing details arrive later when WhatsApp sends a delivery status update. When available, Nviti stores whether Meta marked the message as billable and which category was applied, such as marketing or utility.
Accessing the Wallet
- Open your Workspace
- Go to Marketing
- Click WhatsApp Wallet
Wallet Fields
| Field | Description |
|---|---|
| Tenant | The workspace/tenant that owns the wallet |
| Balance | Current available balance |
| Currency | Wallet currency, currently NGN |
| Active | Whether outbound WhatsApp marketing sends can use this wallet |
If the wallet is inactive, outbound WhatsApp marketing sends are blocked.
Topping Up
To add funds with Paystack:
- Open the WhatsApp Wallet page.
- Click Top Up.
- Enter the number of credits to add.
- Continue to Paystack checkout.
- Complete payment.
After Paystack confirms the payment, Nviti credits the wallet automatically. The transaction history records the top-up as a credit and stores the Paystack reference.
Paystack processing fees are charged to the user according to the Paystack dashboard configuration. Nviti credits the wallet with the requested credit amount, not a fee-inclusive amount.
Transaction History
The wallet transaction list shows:
- Credits — top-ups, refunds, bonuses, or manual adjustments
- Debits — outbound WhatsApp send charges
- Description — what caused the transaction
- Metadata — supporting details such as broadcast ID, visitor ID, WhatsApp Business account, message type, or refund link
- Reference — Paystack reference for top-ups or internal reference for other tracked wallet movements
Use this history to answer questions like:
- Which campaign used my balance?
- Was a failed send refunded?
- Which WhatsApp account sent the message?
- What type of message was charged?
Message Types and Pricing
Template messages use WhatsApp Business Account category pricing where the template category is known:
| Category | USD Rate | NGN/Credit Rate at ₦1,500/USD |
|---|---|---|
| Utility | $0.0067 |
₦10.05 |
| Marketing | $0.0516 |
₦77.40 |
Administrators can update these rates when Meta pricing or the exchange rate changes.
Other outbound WhatsApp sends can still have separate configured fallback prices for:
- Text messages
- WhatsApp Flow messages
- Interactive messages
- Booking flow messages
The UI displays wallet balance in NGN, and transaction amounts are recorded in the same wallet currency.
Broadcast Billing Example
Suppose you send a template broadcast to 100 recipients:
- Recipient 1 is charged before sending.
- Meta accepts the message, so the delivery is marked sent.
- Recipient 2 is charged before sending.
- Meta rejects the message, so the delivery is marked failed and the charge is refunded.
- The process continues for the rest of the recipients.
At the end, your wallet reflects only successful accepted send attempts, plus any refunds for failed attempts.
Insufficient Balance
If the wallet does not have enough funds:
- The message is not sent.
- The delivery is marked failed when a broadcast delivery row exists.
- The failure reason indicates insufficient funds.
Top up the wallet and retry failed deliveries from the broadcast detail page.
Inactive Wallet
If the wallet is inactive:
- Broadcast sends are blocked.
- WhatsApp workflow marketing sends are blocked.
- No debit is taken.
Reactivate the wallet before retrying sends.
Relationship to Meta Billing
Meta bills WhatsApp Business accounts based on recipient market and template category. Nviti’s wallet is the local prepaid control used to manage outbound messaging spend inside the platform.
For prepaid control, Nviti reserves credits before sending. If Meta rejects the API request immediately, Nviti refunds the wallet. If Meta later reports that an accepted message failed delivery, Nviti records the failure and refunds the reserved wallet charge when possible.
Best Practices
- Top up before launching large broadcasts.
- Review transaction history after every major campaign.
- Keep a buffer above your expected campaign cost.
- Investigate repeated refunds; they usually indicate invalid templates, invalid phone numbers, expired credentials, or account setup problems.
- Keep only active production WhatsApp Business accounts selected for campaigns.
Related
- Broadcasts — Create and send wallet-billed WhatsApp campaigns
- WhatsApp Templates — Use approved templates for outbound campaigns
- WhatsApp Template Builder — Submit templates to Meta
- WhatsApp Integration — Connect WhatsApp Business accounts
Keywords
WhatsApp wallet, wallet balance, WhatsApp billing, broadcast billing, WhatsApp refunds, messaging credits, wallet top-up, WhatsApp marketing spend