On this page

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.

  1. The system checks that the wallet exists, is active, and has enough balance.
  2. The configured send price is debited.
  3. The WhatsApp API request is attempted.
  4. If Meta accepts the request, the debit remains.
  5. 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

  1. Open your Workspace
  2. Go to Marketing
  3. 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:

  1. Open the WhatsApp Wallet page.
  2. Click Top Up.
  3. Enter the number of credits to add.
  4. Continue to Paystack checkout.
  5. 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:

  1. Recipient 1 is charged before sending.
  2. Meta accepts the message, so the delivery is marked sent.
  3. Recipient 2 is charged before sending.
  4. Meta rejects the message, so the delivery is marked failed and the charge is refunded.
  5. 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.

Keywords

WhatsApp wallet, wallet balance, WhatsApp billing, broadcast billing, WhatsApp refunds, messaging credits, wallet top-up, WhatsApp marketing spend