Bulk sending on WhatsApp without getting banned: what the official API actually changes
By José Pedro · Co-founder of CRPRO
Bulk sending through the official WhatsApp API turns some ban causes into an API error you see before the damage, and puts a gauge on the number — but it doesn't remove the two causes that take down the most numbers. See the mechanics piece by piece, from template approval to messaging tiers to the October 2026 pricing change.
Bulk sending on WhatsApp through Meta's official API means sending pre-approved template messages to many contacts at once — and it does not make the number immune to a ban. Meta keeps its own account block states for exactly this, plus a specific error code for a deactivated number: anyone promising immunity is lying. What the API does is different, and more useful: it turns common ban causes into an API error you read before the damage is done, takes another one out of the game entirely, and puts a gauge on the number. The ban stops being a surprise and becomes the consequence of a decision you made, one you can see coming.
The mechanics are below, piece by piece: what each part of official sending does, which risk it erases, and which it doesn't touch. The step-by-step for building the campaign is in the bulk sending on WhatsApp guide.
What the official API takes out of the game — and what it doesn't
| Ban cause | On QR code / the regular app | On the official API |
|---|---|---|
| Free-form message outside the support window | Nothing stops the send; the report comes later | Impossible: the API refuses with error 131047 |
| Exceeding the recipient's marketing limit | Invisible, you only find out through a block | Error 131049: the message doesn't go out and doesn't become a violation |
| Automation on top of the app | Violates the Terms on its own | Doesn't apply: sending happens through the official endpoint |
| Aggressive copy sent cold | Nobody reviews it beforehand | Prior review of the template |
| Sending to someone who never gave permission | Ban possible, no warning | Still a violation, the same way |
| Mass blocks and reports | Ban possible, no warning | Still takes the number down |
Read the last two rows carefully: they're the causes that take down the most numbers in practice, and the API doesn't touch either of them. What it changes there is the process around it — quality rating per number, an email warning with a deadline to fix things, a penalty ladder before shutdown, and a formal appeal channel. It's the difference between being warned and being shut off, detailed here.
Does an approved template protect the number from a ban?
It doesn't protect it — it front-loads the review, and that's it. An approved template is what lets you start a conversation with someone who hasn't messaged you in the last 24 hours. Meta's analysis happens before the send: you submit the copy, it gets reviewed, and only then can it be sent as many times as you want. What happens after the send still counts against the number.
Three consequences almost nobody explains:
Template rejection doesn't punish the number. You get the reason, adjust it, and resubmit. The cost is time, not reputation. That's why it's worth submitting variations before the campaign, not the day before.
An approved template can be paused later. Approval measures the copy; quality measures what people do with it. A template that accumulates blocks and reports gets paused — and that pause is the circuit breaker: it stops the campaign before the whole account ends up in the crosshairs. A send that dies midway because a template got paused is the system working, not a tool defect.
The wrong category is the expensive mistake. Every template has a category: marketing, utility, or authentication. Writing an offer and classifying it as utility to pay less isn't a shortcut — Meta recategorizes it, and content that diverges from its category counts against you.
What counts as opt-in on WhatsApp?
No technical piece fixes a bad list, and opt-in is the one control the official API doesn't hand you ready-made. Meta's policy requires contacting only people who gave you the number and gave permission to receive messages through this channel.
| Counts as opt-in | Doesn't count as opt-in |
|---|---|
| A checkbox on a form saying contact will happen via WhatsApp | A number pulled from a billing record |
| A conversation the customer started via a link or an ad | A list of group members |
| In-person sign-up where the person was told about the channel | A spreadsheet inherited from an agency, with no provenance |
| A reply to a dated, logged opt-in message | — |
If you can't say when and where the contact authorized this, they didn't authorize it. Keep the record with a date and a source: in a ban appeal, the base's provenance is the first thing that counts in your favor — and the hardest thing to reconstruct afterward.
Why does my campaign stall midway through the send?
Because there's a cap on marketing messages per recipient. It's adaptive: it varies by user and by business, and Meta doesn't publish a figure.
That knocks down a line that goes around a lot: "it's 2 marketing messages a day." It isn't, and there's no published number. What exists is error 131049 when you exceed that particular recipient's limit: the message isn't delivered.
That changes how you read the report. A batch with a big chunk of messages hitting 131049 isn't a technical problem — it's a signal that those contacts are already saturated with marketing, yours or someone else's. Pushing harder the next day makes it worse; the fix is cutting frequency.
Number warm-up has a formal name: messaging tier
On QR code, "warming up the number" is folklore: send little, talk to people you know, ramp up slowly — with no indicator telling you whether it's working.
On the official API, that same process is a declared step — the limit of unique contacts you can initiate per day (tiers in effect as of August 2026):
| Tier | Unique contacts initiated per day |
|---|---|
| Unverified number | 250 contacts/day |
| Tier 1 | 1,000 contacts/day |
| Tier 2 | 10,000 contacts/day |
| Tier 3 | 100,000 contacts/day |
| Tier 4 | Unlimited |
You climb by combining two things: consistent volume and a rating that isn't red. Volume alone doesn't climb; a good rating with sporadic sending doesn't either. And the road runs both ways — a low rating freezes or drops the tier.
In practice: start with your warmest audience — whoever bought in the last 30 days, whoever replied last week. A high reply rate is what builds the next tier. Cold audience first is burning fuel in the wrong place.
What is quality rating and when should you check it?
Quality rating is the quality score every official API number carries, in green, yellow, or red, calculated on a weighted basis over the last 7 days and visible in WhatsApp Manager and through the API itself. It's the only instrument that warns you before the problem — on the regular app, it doesn't exist.
The 7-day window is the detail that changes your routine. The score carries the effect of the previous week's campaigns: it doesn't reset the next day, nor does it immediately reflect what you just sent. That's why the rule is simple: check the color before each big campaign, not after. Yellow means postpone the campaign, not scale it back. What to do at each color is in the WhatsApp quality rating guide.
How much does bulk sending through the official API cost?
Since July 1, 2025, Meta's charge has been per delivered template message. The old model, which charged per 24-hour conversation, is deprecated: any per-conversation price table you find is stale content.
For marketing in Brazil, the reference is around US$0.0625 per delivered marketing message (rate in effect as of August 2026), roughly R$0.32 per message. A campaign of 10,000 marketing messages costs, by that reference, approximately R$3,200 in Meta's fee, before the platform's monthly fee.
That's the sending math. The return math is the one almost nobody does — and it changes in a few weeks.
What changed in cost on October 1, 2026?
Until September 30, 2026, replying to someone who replied was free. Since October 1, 2026, Meta charges per message for service messages and utility templates sent inside the 24-hour window — and service is the only category with no volume discount.
| Message | Until September 30, 2026 | Since October 1, 2026 |
|---|---|---|
| Service, inside the 24-hour window | Free | Charged per message, no volume discount |
| Utility template, inside the 24-hour window | Free | Charged per message |
| 72-hour window opened by a Click-to-WhatsApp ad | Free | Free, unchanged |
The effect flips the intuition: a campaign with a good response rate now generates a cost tail that didn't exist before October 1. The service-message rate is in Meta's current price table; any figure circulating without citing it is a guess. The full breakdown is in the anti-ban playbook, priced.
The checklist before you hit send
- Documented base provenance: date, channel, and form of consent.
- The number's rating in green, checked today, not last week.
- A tier that matches the batch. No point prepping 50,000 sends on tier 1 (a cap of 1,000 unique contacts a day).
- The right template category, with the person's real name and context.
- An explicit opt-out ("reply STOP") honored the same day.
- A small initial batch, reading delivery,
131049errors, and blocks before scaling up.
Is it worth migrating to the official API?
Depends on how much weight campaigns carry in your process. The official API isn't for everyone: low volume, inbound support, and no campaigns? QR code can still be the rational choice — the cases are in when not to migrate to the official API.
But if bulk sending is part of your commercial process, the calculus flips: on QR code you're doing through the back door something that has a front door, and the price is the whole number, with no warning and no appeal — recovering it is a different story.
On CRPRO you connect both, the official API and QR code, and decide case by case which number does what. The campaign operation is on the bulk sending page.
Frequently Asked Questions
Can bulk sending through the official API get banned?
It can. Meta keeps block states for accounts on the official API and its own error code for a deactivated number. The API doesn't grant immunity: it gives you a per-number quality rating, a warning with a deadline to fix things, a penalty ladder, and a formal appeal channel.
How many marketing messages can I send per day to the same person?
There's no published number. The limit is adaptive, calculated per user and per business. When you exceed it, the message returns error 131049 and isn't delivered — it doesn't become a violation, but it's the signal that your frequency is too high.
How long does it take to warm up a number on the official API?
It depends on volume and quality together, not on time. You climb a tier by sending consistently to an audience that replies. Sending little doesn't move you up; sending a lot to a cold base tanks the rating and freezes the tier.
Over what period is quality rating calculated?
Over the last 7 days, on a weighted basis. In practice, the score you see today still carries the effect of last week's campaigns — which is why it doesn't recover the day after a bad send.
Does a rejected template hurt my number?
No. A rejection returns the reason so you can adjust the copy and resubmit. What counts against the number is an approved template that accumulates blocks and reports after it goes live — that one can get paused.
Do I need opt-in for someone who's already my customer?
Yes. A prior business relationship doesn't substitute for permission to receive WhatsApp messages. The policy requires that the person gave you the number and authorized contact through this channel — and you need to be able to prove when and where that happened.
Does WhatsApp Business's broadcast list work for campaigns?
Only for small volume. The broadcast list only delivers to people who saved your number, has a low cap, and no quality indicator. It works for notifying loyal customers, not for recurring campaigns.