WhatsApp Marketing Setup: Accounts, Wallets, and Pricing
This page is for administrators configuring WhatsApp marketing delivery in Nviti.
Required Components
WhatsApp marketing requires:
- At least one active WhatsApp Business account
- Valid WhatsApp API credentials
- Payment setup completed for the WhatsApp Business Account
- A WhatsApp Wallet for the tenant
- Configured send prices
- Approved WhatsApp templates for proactive campaigns
WhatsApp Business Account Requirements
Each sending account should have:
- Business account ID or WABA ID
- Phone number ID
- Phone number
- Access token
- Active status enabled
- Payment setup status of attached for paid template sends
Broadcasts require the user to select the sending WhatsApp Business account. That account supplies the API credentials and sender phone number for the campaign.
WhatsApp Payment Setup
Each connected WhatsApp Business Account needs payment setup before paid template messages can be sent. Nviti checks this automatically when an account is connected.
On the WhatsApp account list, the Payment Setup status shows whether the account is ready:
| Status | Meaning |
|---|---|
| Attached | The account is ready to send paid marketing and utility templates. |
| Pending | Setup is still being checked. Try again later or contact support. |
| Failed | Setup could not be completed. Contact support before sending campaigns. |
| Not checked | The account has not completed payment setup yet. |
If payment setup is not attached, paid template sends are blocked before any wallet credits are debited. Workspace admins can retry setup from the WhatsApp account table using Sync Payment Setup.
Wallet Pricing
WhatsApp template prices are converted into wallet credits.
| Template Category | Default Price |
|---|---|
| Utility | ₦10.05 |
| Marketing | ₦77.40 |
These prices use the current platform exchange rate. If pricing changes, the updated amount will appear in wallet transactions.
Other outbound WhatsApp sends can have separate fallback prices.
| Message Type | Used For |
|---|---|
| Text | Plain text WhatsApp sends |
| Template fallback | Template sends when no category is available |
| Flow | WhatsApp Flow sends |
| Interactive | Interactive button/list messages |
| Booking flow | Booking flow sends |
These values are wallet units in NGN.
Paystack Top-Ups
Workspace users can top up the WhatsApp Wallet from the wallet page. Nviti initializes a Paystack checkout and includes wallet metadata in the payment reference.
1wallet credit equals₦1.- The wallet is credited after Paystack sends a signed
charge.successwebhook. - Duplicate webhook deliveries are ignored by Paystack reference.
- Paystack processing fees are charged to the user by the Paystack dashboard configuration.
- Nviti credits the requested wallet amount, not a fee-inclusive checkout amount.
Configure the Paystack webhook URL to point to:
/webhook/paystack
Billing Behavior
For production sends:
- Nviti reserves funds by debiting the wallet.
- Nviti calls the WhatsApp API.
- If the API succeeds, the debit remains.
- If the API fails, Nviti creates a refund credit.
This is used by:
- Broadcasts
- WhatsApp workflow text messages
- WhatsApp workflow template messages
- WhatsApp workflow interactive messages
- WhatsApp workflow booking flows
Broadcast test sends do not debit the wallet.
Broadcast Delivery Records
Broadcast deliveries can store:
- Status
- Failure reason
- Retry count
- Meta message ID
- Wallet transaction ID
- Metadata containing the WhatsApp API response or error context
Use this data when investigating campaign results.
Visitor Subscription Defaults
Visitors have a Subscribed to marketing flag. Existing visitors are subscribed by default after the marketing schema update so existing campaigns do not unexpectedly lose their audience.
Users can disable this flag when a contact opts out.
Operational Checklist
Before enabling campaigns for a tenant:
- Confirm the WhatsApp Business account is active.
- Confirm the access token and phone number ID are valid.
- Confirm the tenant has an active WhatsApp Wallet.
- Configure wallet send prices.
- Submit and approve at least one marketing template.
- Sync template status from Meta.
- Create a test broadcast to a controlled phone number.
- Review wallet transactions and delivery logs.
Troubleshooting
Broadcasts Fail With Missing Account
Check that the broadcast channel has a selected WhatsApp Business account and that the account is active.
Sends Fail With Insufficient Funds
Top up or activate the tenant WhatsApp Wallet.
Template Sends Fail With Payment Setup Incomplete
Use Sync Payment Setup on the WhatsApp account. If the status still shows failed or pending, contact support.
Template Sends Fail
Check that:
- The template is approved.
- The template exists under the selected WhatsApp Business/WABA account.
- The template name and language match Meta.
- The account token has permission to send messages.
Repeated Refunds
Repeated debit/refund pairs usually mean the wallet is working but the WhatsApp API is rejecting the send. Review delivery failure reasons and Meta responses.
Related
Keywords
WhatsApp marketing setup, WhatsApp wallet pricing, WhatsApp Business account, broadcast configuration, WhatsApp API credentials, Meta template setup