---
title: Bulk WhatsApp Messaging via the Official API, Without Bans
description: Bulk messaging on WhatsApp is allowed through the official API, with consent and Meta-approved messages. Rules, limits, costs, and step by step.
date: 2026-09-06
updated: 2026-09-16
category: envio-em-massa
tags: bulk messaging, mass sending, official api, opt-in, marketing number, campaigns
author: gabriel-miranda
cover: /blog-assets/covers/disparo-em-massa-whatsapp-oficial.jpg
coverAlt: People gathered using their phones
coverSource: https://www.pexels.com/photo/3184435/
ptSlug: disparo-em-massa-whatsapp-oficial
---

Bulk messaging on WhatsApp is allowed, but in only one way: through Meta's official API, to people who gave you their number and agreed to receive messages from your company, using a message Meta approved before sending. Outside that, bulk sending is what Meta calls "unauthorized bulk messaging," and it is the most common reason numbers get banned. The difference between the two paths is not in the tool you hire. It is in who Meta sees on the other side: an identified company, with known rules and limits, or an automated phone pretending to be a person.

This guide explains what Meta prohibits and why, the four rules of official sending, how many messages you can send per day, how much it costs, and what to do about the failures every bulk send has.

## Short answer: it is allowed, but only one way

Meta maintains two products with the same name. The **WhatsApp Business app**, on the phone, was built for conversation: one person handling customers at a time, with labels, quick replies, and a catalog. The **WhatsApp Business Platform**, which everyone calls the [official WhatsApp API](/en/blog/official-whatsapp-api), was built for companies that need volume, integration, and automation. That is where bulk sending exists as a feature, with a name, a rule, and a price.

What Meta calls official bulk sending has four ingredients, and all four are mandatory:

| Ingredient | What it is | Whose rule |
|---|---|---|
| Consent (opt-in) | The person gave their number and agreed to receive messages from your company | Meta, through the business messaging policy |
| Approved message (template) | The text is submitted to Meta first and only goes out after approval | Meta |
| Respect for "opt out" | Anyone who asks to stop, stops receiving, even if they asked through another channel | Meta |
| Number capacity | How many different people your business can reach in 24 hours | Meta, calculated per business portfolio |

Notice that none of the four rules belongs to the provider. A serious provider, like Frame Conexa, does not invent limits on top of that. It connects your number to the official API, organizes the audience, submits the text for approval, and sends within what Meta allows. If a send fails, the refusal comes from Meta, with a code, and the screen has to say that plainly.

## What Meta prohibits, and why WhatsApp Web tools get banned

WhatsApp's messaging guidelines prohibit, in plain text, the use of "unofficial clients, bulk messaging, auto-messaging, auto-dialing, or automation to harm WhatsApp or its users." The [WhatsApp Help Center](https://faq.whatsapp.com/5957850900902049) has a page just about "unauthorized use of automated or bulk messaging": detection is done by machine learning combined with user reports, the punishment ranges from a warning to permanent suspension, and the legitimate alternative pointed to by Meta itself is the WhatsApp Business Platform.

The part almost nobody explains is the mechanism. Cheap bulk-sending tools work with a WhatsApp Web session, or a modified app, controlling an ordinary number as if it were a person typing very fast. Meta does not need to "discover" the software. It sees the behavior: a number sending hundreds of identical messages to people who never talked to it, at a pace no human can sustain, and starting to receive blocks and reports. That pattern triggers the ban, first temporary, then permanent. The article on [blocked WhatsApp Business](/en/blog/whatsapp-business-blocked-what-to-do) explains what to do when that happens, and the comparison between the [official and unofficial API](/en/blog/official-vs-unofficial-whatsapp-api) details why a WhatsApp Web session is a risk by design.

With the official API, the scenario reverses. Meta knows who the company is, knows what is being sent because it approved the text, and knows each recipient has a button to stop receiving. The number is not banned for sending in volume. It is limited by capacity, warned about quality, and, if it insists on sending what people do not want, restricted with an error code that explains why.

## The four rules of official bulk sending

### 1. Consent (opt-in): how to collect it and what Meta requires

Meta's business messaging policy says you may only contact a person on WhatsApp if they gave your company their mobile number and if you received their permission confirming they want to receive messages. Both conditions together. Having the number in your phonebook is not consent. Having bought a list is even less.

The [official opt-in documentation](https://developers.facebook.com/documentation/business-messaging/whatsapp/getting-opt-in) is flexible about the channel: consent can be collected by SMS, on the website, in a phone IVR, in person, or on paper. What it requires on any channel is clarity: the text must say the person is agreeing to receive communication from the company, and the company's name must appear. "I agree to receive news from Clinic X on WhatsApp," with a box to tick, meets the rule. A pre-checked box hidden in the footer does not.

Three good practices that Meta itself recommends, and that pay off later:

- **Separate the opt-in by message type.** Someone who agreed to receive the order confirmation did not necessarily agree to receive promotions. Asking for the two separately avoids reports later.
- **Make the value clear.** "Promotion alerts, at most once a week" converts better and generates fewer blocks than "receive messages."
- **Keep the record.** Date, channel, and the text the person saw. Brazil's data protection law (LGPD) requires a legal basis for processing personal data, and the consent Meta already requires is the natural record of that. If someone ever questions it, that is what you show.

### 2. A Meta-approved message (template) to start the conversation

On the official API there are two kinds of message. The **free-form message**, any text, photo, or audio, can only be sent inside the [24-hour window](/en/blog/whatsapp-24-hour-window) that opens when the person writes to you. Outside that window, the company can only start a conversation with a **template**: a message model submitted to Meta in advance, classified into a category (marketing, utility, or authentication), and approved before it goes out.

That is why bulk sending is, in practice, template sending. You do not send whatever text you want to a list. You build the model, with variables for the name and the offer, submit it for approval, and only then send. The article on [how to get an approved template](/en/blog/approved-whatsapp-template) explains the categories and the most common reasons for rejection. If a free-form message tries to go out outside the window, Meta refuses it with error 131047, and no official tool can get around that.

Approval is Meta's decision, and there is no official deadline for it. Planning a campaign for tomorrow with a template created today is taking a risk for nothing: create the model with room to spare.

### 3. Respect "opt out," including outside WhatsApp

The same policy that requires opt-in requires the opposite: the company must "block, discontinue, or cease" sending to anyone who asks, and the request counts on any channel. If the person sent an email saying they no longer want to receive WhatsApp messages, they come off the list, even if they never touched the WhatsApp button.

On WhatsApp there are two automatic paths. The user can turn off receiving marketing from your company directly in the app, in which case any following marketing template fails with code 131050. And they can simply reply "stop" or "quit." A provider that takes this seriously handles both: in Frame Conexa, 131050 and opt-out keywords remove the contact from the audience on their own, and Meta also notifies through an event of its own when someone changes the preference. What the tool does not do for you is the request that came by email or phone: that goes onto the suppression list by hand.

### 4. Marketing number and the capacity Meta gives the number

Two details that tend to catch people by surprise. The first is about the product: Frame Conexa sells two types of number, and only the **marketing number** sends campaigns and creates marketing templates. The support number replies inside the 24-hour window and sends utility and authentication templates, which is what a clinic needs to confirm an appointment, but does not do promotional bulk sending. It is a commercial separation of ours, explained on the [plans page](/#precos), and it exists so you do not pay for capacity you will not use.

The second comes from Meta, and is the subject of the next section: every business has a sending capacity, measured in different people reached in 24 hours, and it starts small.

> **Important:** a connected and healthy number may still send nothing if its WhatsApp Business account has no payment method registered with Meta. As a Tech Provider, Frame Conexa does not register the card for the customer. That is done in Business Manager itself, and the dashboard shows the link when it detects the block.

## How many messages can I send per day?

The most common question has an answer that changes over time. There is no fixed daily cap. There is a **capacity** set by Meta, which grows with usage, and an additional per-person limit that nobody controls.

### The limit is Meta's, not the provider's: 250, 2,000, 10,000, 100,000, unlimited

The [messaging limits documentation](https://developers.facebook.com/documentation/business-messaging/whatsapp/messaging-limits) defines capacity as the maximum number of different phones to which the company can deliver messages outside a customer service window, in a rolling 24-hour period. The tiers are 250, 2,000, 10,000, 100,000, and unlimited. Since October 2025 this limit is calculated per business portfolio and shared by all its numbers; the old 1,000 tier no longer exists.

Three practical consequences:

1. **Every new number starts at 250.** A campaign of 1,000 people on day one does not go out in full. To leave the first tier, the way is to verify the company in Business Manager, or to deliver 2,000 out-of-window messages to 2,000 different numbers in 30 days, with good-quality templates.
2. **Moving up is automatic, and fast.** With high-quality messages on all numbers and at least half the current capacity used in the last 7 days, Meta moves you up one tier within 6 hours.
3. **Dropping because of quality no longer happens.** The old rule, that a red quality rating dropped the limit after 7 days, was eliminated by Meta in October 2025 along with the "flagged" state. Today quality counts toward moving up and toward spam restrictions, not toward downgrades. Plenty of articles out there still repeat the old rule.

The unit detail matters: capacity counts **people**, not messages. Sending three templates to the same person consumes one unit. And it counts only out-of-window messages: replying to someone who wrote to you does not spend capacity. The article on [API messaging limits](/en/blog/whatsapp-business-api-messaging-limits) goes into the details, including the per-second pace, which for a coexistence number is fixed at 20 messages per second.

In the Frame Conexa dashboard, the "Number capacity" tab under Campaigns shows how much was used in the last 24 hours and warns you from 80%. Creating a campaign larger than the available capacity is refused before it starts, so the send does not stop midway.

### Per-person limit: error 131049

Besides the company's capacity, Meta limits how many marketing templates **the same person** can receive, summed across all the companies that talk to them. The number is not disclosed: the [official page](https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/marketing-templates/per-user-limits) describes it as dynamic, based on how much that person reads the marketing messages they receive. Someone who reads little receives less.

When the limit is hit, the send fails with code 131049, and Meta's guidance is to wait at least 24 hours before trying again. Insisting earlier prolongs the block. Utility templates, authentication templates, and replies inside the window are not affected.

That means part of your audience is unavailable on any given day, and you do not know which part. It is the most common failure on a cold list, and it has nothing to do with your number.

## How much a bulk send costs

There are two separate costs, from two different billers.

**Meta charges per delivered template message**, with a rate that depends on the category and the recipient's country. According to the table Meta published in September 2026, marketing to a recipient in Brazil costs US$ 0.0625 per delivered message; check the official rate card before doing the math, because Meta updates the table and, since July 2026, has allowed billing in reais (R$, the Brazilian currency) for new accounts in Brazil. Brazilian providers cite something around R$ 0.32 per marketing message, but that figure comes from third parties, not from the official page. Two points that ease the load: Meta only charges delivered messages, so failures cost nothing; and a free-form reply inside the 24-hour window is free today, although Meta has announced it will start charging service messages and utility templates inside the window from October 1, 2026.

**The provider charges for the platform.** At Frame Conexa the charge is per number, monthly, quarterly, or annual, and there is no per-message fee from us and no send allowance: the only volume limit is Meta's. Payment for messages is made by the customer directly to Meta, with the card registered in their own Business Manager. There is no intermediation, markup, or credit line, which is a limitation of the Tech Provider model, but also a guarantee that Meta's invoice is Meta's invoice. The article on [WhatsApp Business API pricing](/en/blog/whatsapp-business-api-pricing) puts the two bills together with examples.

> **Note:** someone who arrives through a Click-to-WhatsApp ad and gets a reply within 24 hours opens a 72-hour window in which any message, including marketing templates, is free. It is Meta's documented rule for the "free entry point," and the dashboard flags it on ad conversations. See the guide on [Click-to-WhatsApp ads](/en/blog/click-to-whatsapp-ads).

## Step by step in Frame Conexa

The whole flow fits in three stages, and the longest is the middle one, because it depends on Meta.

### Import the audience and create segments

In **Audience**, contacts come in by manual entry, through the API, or by CSV import, with a preview before confirming and an error file for the rows that did not pass. The phone number is normalized, so "(85) 9 9999-0000" and "5585999990000" are the same contact.

From there you build **segments**. A static segment is a fixed list: people who came from the September import, people who bought a certain product. A dynamic segment is a rule recalculated on every read: people who replied to the previous campaign, people who have not written in over 30 days, people with a certain field filled in. The campaign freezes the list at the moment of creation, so a dynamic segment does not change the audience of a send that has already started.

Anyone who asked to opt out does not enter any segment. Suppression applies across the whole audience, and a new campaign to "all contacts" is born without them.

### Create the message and wait for approval

In **Templates**, with a marketing number selected, you create the model: name, language, category, text with variables, and optionally buttons. Two buttons deserve special attention in a bulk send: **quick reply**, which generates a measurable click, and **link**, which opens a page. The template goes to Meta and the dashboard tracks its status through the notification Meta sends on each change. Until it is approved, it does not appear as a choice in the campaign.

Marketing templates have a quality rating of their own, assessed by Meta based on blocks, reports, and read rate. A template that reaches low quality is paused automatically: 3 hours the first time, 6 the second, and disabled the third. Good text, for the right audience, is what prevents that.

### Send, track deliveries and button clicks

In **Campaigns**, the campaign is born from a segment and a template. Before saving anything, the dashboard runs a check: the template exists and is approved, the audience has valid contacts, and the WhatsApp Business account is not blocked for payment. If something fails, the campaign is not created and the screen says why. You can schedule it for a date and time. The pace is automatic: sending starts with a small group, continues in waves within the number's daily quota, and never goes beyond what Meta allows for it.

Anyone integrating by system has the same check in the [public API](/docs), with the same body as creation:

```bash
curl -X POST https://frameconexa.com/api/v1/campaigns/preflight \
  -H "Authorization: Bearer fc_SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "clientId": "6ed76b84-4d65-4f3d-88c1-8d4174bdce73",
    "segmentId": "1",
    "name": "Oferta de setembro",
    "template": { "name": "oferta_setembro", "language": "pt_BR" },
    "bindings": [],
    "sendIntervalMs": 200
  }'
```

During sending, the campaign page shows sent, delivered, read, and failed in real time, and each recipient appears with the result and the reason, if it failed. When it finishes, you download the full report as CSV, or just the error file.

If the template had a quick-reply button, the campaign shows who clicked, on which button, and how many times. Attribution is done by the message the person replied to, never by phone number, because in Brazil the number often comes back from Meta without the ninth digit (the extra leading 9 that Brazilian mobile numbers gained over the years) and matching by phone would miss half the clicks. With one click, those who clicked become a new audience, so the next campaign starts from people who showed interest.

> **Tip:** start small. A first campaign of 50 people from an audience that has already talked to you teaches more about your template and your audience than one of 2,000 to a cold list, and it raises the number's capacity the way Meta likes: with quality.

## Normal errors in a bulk send and what to do about each

Every bulk send has failures, and most of them are expected Meta behavior, not a defect. A field data point: in September 2026, a real campaign of 250 cold contacts sent through Frame Conexa ended with 36 failures. All 36 came from Meta, with three codes. None was a limit or error from the provider. The table below is what the dashboard shows next to each recipient, in the same vocabulary.

| Code | What happened | Whose | What to do |
|---|---|---|---|
| 131026 | The number has no WhatsApp, the person did not accept the new terms, or uses a very old app | Meta | Remove those contacts from the audience. Resending gives the same result |
| 130472 | The person is in a Meta test group that does not receive marketing from a company they never talked to | Meta | Do not resend. They only receive if they write first |
| 131049 | The person already received too much marketing, summed across all companies | Meta, per recipient | Wait at least 24 hours. Insisting prolongs the block |
| 131050 | The person turned off receiving marketing from your company | Meta, at the person's request | Nothing. The contact already left the audience on its own |
| 131047 | Attempt to send a free-form message with the window closed | Meta | Use an approved template |
| 131048 | Meta detected a high spam rate on the number and held the sends | Meta | The campaign pauses on its own. Review the audience and pace before resuming |
| 130429 | Pace above what is allowed, even after automatic retries | Meta | Resend at a lower pace |
| No confirmation | Meta did not respond in time; the message may have gone out | Network | Do not resend blindly. Use "Resend uncertain," which checks first |

What the table does not solve by itself is the proportion. A list with 10% of 131026 is an old list: numbers that changed owners or never had WhatsApp. A list with lots of 131049 is a list of people who already get too much marketing from everyone. In both cases the answer is the audience, not the tool. The [API error dictionary](/en/blog/whatsapp-api-errors-131047-131026-131049) explains each code in depth.

On failures there is good news worth repeating: Meta charges only delivered messages. A failure is not money lost.

## How to keep the number's quality high

The number's quality is the rating Meta gives based on what recipients did in the last 7 days: blocked, reported, gave a reason. Green is high, yellow is medium, red is low. Since October 2025 it no longer drops the number's capacity, but it still decides whether you move up a tier and is the trigger for spam restrictions. Keeping quality high is what keeps bulk sending allowed for your number.

What works, in order of impact:

- **An audience that asked for it.** This is the opt-in rule, applied. A purchased list is the fastest way to turn red.
- **Announced frequency, kept.** If you promised one message a week, send one a week.
- **An easy way out.** A "I don't want to receive this" quick-reply button on the template itself reduces reports: the person leaves instead of blocking.
- **Pace.** Sending 2,000 messages in two minutes and 2,000 messages in an hour gets to the same place, but the second case gives you time to notice a problem and pause.
- **Not insisting.** Anyone who failed with 131049 waits 24 hours. Anyone who failed with 130472 or 131050 does not receive again.

Frame Conexa has three automatic brakes that exist to protect the number's rating while you look at everything else. The campaign pauses on its own when the number's quality drops to red, when Meta responds with 131048, and when the failure rate passes a threshold with a sufficient sample. The pause is for you to review, and resuming is one click. It is not a punishment. It is what keeps a bad list from burning a good number in one afternoon.

## Frequently asked questions

### Is bulk messaging on WhatsApp allowed?

It is allowed through the WhatsApp Business Platform, Meta's official API, to people who gave their number and agreed to receive messages from your company, using Meta-approved templates. It is prohibited any other way: WhatsApp's guidelines forbid unofficial clients, bulk sending, and automation outside the platform, and the punishment ranges from a warning to permanent suspension of the number.

The word that separates the two is "authorized." Official sending is authorized because Meta knows who is sending, approved the text, and gave the person a button to stop.

### How many messages can I send per day through the official API?

It depends on the capacity Meta assigned to your business portfolio: 250, 2,000, 10,000, 100,000, or unlimited different phones in a rolling 24-hour window, counting only messages outside the customer service window. Every new business starts at 250. Moving up is automatic when quality is high and at least half the current capacity was used in the last 7 days, and Meta promises the move within 6 hours.

Frame Conexa does not impose a sending limit on top of that. The dashboard shows the capacity used and refuses to create a campaign larger than what remains.

### Do I need consent to send a promotional message?

Yes, under Meta's policy and under LGPD, Brazil's data protection law. Meta requires both conditions: the person gave your company their number and confirmed they want to receive messages. Consent can be collected on the website, by SMS, by phone, in person, or on paper, as long as it clearly says what the person is accepting and from which company. Keep a record of when and how it was given.

Without consent, besides violating the policy, the practical result is blocks and reports, which drag down the number's quality and stall capacity growth.

### How much does it cost to send 1,000 marketing messages?

On Meta's side, according to the table published in September 2026, marketing to a recipient in Brazil costs US$ 0.0625 per delivered message, which comes to about US$ 62.50 per 1,000 delivered messages. Check the official rate card before doing the math: Meta updates the table and has started allowing billing in reais for new accounts in Brazil. Only delivered messages are charged, so failures cost nothing.

On the provider's side, Frame Conexa charges per number, with no per-message fee. The prices are on the [plans page](/#precos).

### Why do some bulk messages fail?

Because Meta refuses delivery in situations it defines itself: a number with no active WhatsApp (131026), a person who already received too much marketing from all companies (131049), a person in a Meta experiment who does not receive marketing from companies they never talked to (130472), a person who turned off marketing from your company (131050). On a cold list that is expected: in the field campaign cited above, 36 of 250 contacts failed, all because of Meta refusals, with no problem on the number or the provider.

What to do varies by code, and that is what the dashboard shows next to each recipient: remove from the audience, wait 24 hours, or do nothing. The only failure that calls for care is the one with no confirmation, when Meta did not respond in time: in that case the message may have gone out, and resending blindly duplicates it.

## Next step

If your number is already on WhatsApp Business on the phone, it can be connected to the official API without leaving the app, in coexistence, and the marketing number starts sending campaigns through the dashboard or the API. See the [per-number plans](/#precos) and, if you will integrate by system, start with the [API quickstart](/docs/quickstart).
