WhatsApp best practices and FAQ
Keep your number healthy, understand WhatsApp's failure codes, and check everything before you go live.
WhatsApp watches how customers react to business messages. Businesses whose messages are wanted keep a high quality rating, reach more customers, and see fewer failures. This page collects the practices that keep you there, the failure codes you may see, and answers to common questions.
Get and respect opt-in
WhatsApp requires customers to agree to receive messages from your business on WhatsApp before you message them.
- Ask clearly. The opt-in names your business and says that messages arrive on WhatsApp, for example a checkbox reading "Send me order updates from Acme on WhatsApp".
- Ask in your own channels: your website, app, checkout, or in person. A pre-checked box or a buried clause in your terms is not consent.
- Keep a record of when and how each customer opted in.
- Make stopping easy. Tell customers how to stop messages, and stop as soon as they ask in any channel.
- Separate marketing from updates. A customer who agreed to delivery updates did not agree to promotions.
Write messages customers value
- Send what customers expect, when they expect it: a shipping update when the parcel ships, a reminder the day before an appointment.
- Make the first line count. Say who you are and why you are writing; customers decide in seconds whether to block.
- Personalize with names, order numbers, and dates through variables, instead of generic broadcasts.
- Mind the hour. Send in the recipient's daytime, not at night.
- Limit marketing frequency. WhatsApp limits how many marketing messages one customer receives from all businesses, and holds back messages beyond it (code
meta_131049).
Protect your quality rating
Your quality rating reflects how customers reacted to your messages in the last few days. Blocks and spam reports lower it; read and replied messages don't raise it on their own, but they show the messages are wanted.
- Watch the rating on each sender's page. A move from High to Medium is a warning: slow down marketing sends and review the templates you sent recently.
- Act on paused templates. A paused template received too much negative feedback. Rework its wording before you send it again; repeated pauses disable it.
- Clean your lists. Stop sending to numbers that fail repeatedly with
meta_131026, or that opted out of marketing (meta_131050). - Grow gradually. When your messaging limit rises, increase volume step by step rather than sending to everyone at once.
Send reliably
- Use an idempotency key derived from the triggering event, such as
order-A-1234-shipped, so a retry never sends twice. See Idempotency keys. - Send from background jobs, not inside user-facing requests, and retry rate limits and network errors with backoff.
- Don't resend
uncertainmessages blindly. They may have reached the customer. See When a message is uncertain. - Track delivery with webhooks rather than polling, and store the message ID with your order, appointment, or account record.
- Keep the payment method valid in WhatsApp Manager; Meta refuses template messages without one (code
meta_131042).
WhatsApp failure codes
When WhatsApp refuses or cannot deliver a message, the message becomes failed, with WhatsApp's error code in failure_code as meta_<code>, and WhatsApp's explanation in failure_reason. When WhatsApp gives no code, failure_code is meta_error.
failure_code | What happened | What to do |
|---|---|---|
meta_131026 | The message could not be delivered. The number may not use WhatsApp, or the recipient's app may be outdated or not have accepted WhatsApp's latest terms. | Confirm the number with the customer. Don't retry repeatedly. |
meta_131049 | WhatsApp held back a marketing message to protect the recipient from too many business messages. | Wait at least 24 hours before trying again, and reduce marketing frequency. |
meta_131050 | The recipient stopped marketing messages from your business. | Don't send marketing templates to this recipient. |
meta_131056 | Too many messages from your number to the same recipient in a short time. | Wait before sending to this recipient again. |
meta_130472 | The recipient is part of a WhatsApp marketing experiment and the message was not sent. | No action needed; it is not caused by your account. |
meta_130429 | Your number reached its throughput. | Send more slowly and retry later. |
meta_131048 | WhatsApp restricted sending from your number after messages were blocked or reported as spam. | Check the quality rating, pause marketing sends, and review your opt-in. |
meta_131042 | WhatsApp found a payment problem on your WhatsApp Business Account. | Check the payment method in WhatsApp Manager. |
meta_131031 | The WhatsApp Business Account is restricted or locked. | Open the sender's page and follow the link to WhatsApp Manager. |
meta_368 | Your account is temporarily blocked for a WhatsApp policy violation. | Review the notice in WhatsApp Manager. |
meta_132001 | The template no longer exists in this language, or is not approved in WhatsApp. | Sync your templates and check the template's status. |
meta_132007 | The message content breaks a WhatsApp policy. | Review the template and the values you sent. |
meta_132015 | The template is paused for low quality. | Rework the wording, or wait until WhatsApp resumes it. |
meta_132016 | The template is disabled after repeated pauses. | Create a new template. |
meta_133010 | The number is not registered with WhatsApp anymore. | Connect the number again from Senders. |
meta_131000 | An unknown error at WhatsApp. | Retry later with a new idempotency key. |
Meta's error code reference lists every code.
Go-live checklist
Account
- Your production number is connected in your production project and shows Connected.
- Your business verification is submitted or approved, and your display name is approved.
- A valid payment method is set in WhatsApp Manager.
- The business profile has a description, website, and photo customers will recognize.
Templates
- Every template you will send is Approved, in every language you need.
- Your code maps each use case to its Template IDs, and fills every variable.
- Templates are categorized honestly: updates as utility, promotions as marketing.
Integration
- Production uses its own API key with the WhatsApp send only permission, stored as a secret.
- Every send uses an idempotency key derived from the triggering event.
- Your code handles
failedanduncertainmessages, and distinguishes plan limits from transient errors. - A webhook receives
whatsapp.message.deliveredandwhatsapp.message.failed, verifies signatures, and stores events before acknowledging them.
Customers
- Every recipient opted in to WhatsApp messages from your business, and you keep a record of it.
- Customers can stop messages easily, and opt-outs are honored everywhere.
- You know your plan's included messages, your wallet balance, and your messaging limit.
Frequently asked questions
Why do customers see my phone number instead of my business name?
WhatsApp shows your display name only after it approves the name and Meta verifies your business. Until both are done, chats show your phone number. You can send normally in the meantime. See Display name.
How long does template approval take?
Most templates are reviewed within minutes; some take up to 24 hours. The status updates in the dashboard automatically. You can't send a template until it is approved.
Can I send a message without a template?
Not yet. Every message is a template message, and you need at least one approved template before you can send. Free-form messages, which WhatsApp allows only within 24 hours of a customer's last message, are not available yet.
Can customers reply to my messages?
Customers can reply in WhatsApp, but Nexiom Connect doesn't receive or show their replies yet. If you expect replies, say in your template where customers can reach you, for example your support email or phone number.
Can I send images, documents, or videos?
Not yet. Templates with a media header sync but can't be sent. Text headers, bodies, footers, and quick reply, website, and phone buttons are supported.
Can I check whether a number uses WhatsApp before sending?
WhatsApp doesn't offer this check to businesses. A message to a number without WhatsApp becomes failed with the code meta_131026.
Why is a message delivered but never read?
The recipient may not have opened it yet, or they turned off read receipts in WhatsApp. WhatsApp reports read only for recipients who share read receipts.
Can I still use my number in the WhatsApp app?
No. A number connected to Nexiom Connect can't be used in the WhatsApp or WhatsApp Business app at the same time. Use a dedicated number for business messages.
Can I send from several numbers?
Yes, up to your plan's number of connected numbers. Nexiom Connect connects one number per WhatsApp Business Account, so give each number its own account. All numbers of a business portfolio share its messaging limit.
Why don't my totals match WhatsApp Manager?
Nexiom Connect counts by UTC day, while WhatsApp Manager reports in its own time zone, so messages near midnight can fall on different days. Messages that were refused before reaching WhatsApp appear only in Nexiom Connect.
Can I send one-time passwords?
Not yet. WhatsApp requires one-time codes to use authentication templates, which include a copy-code or one-tap button that Nexiom Connect can't send yet.