> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notifique.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Anti-ban policy

> How to reduce WhatsApp block risk: human pace, warm-up, and good practices.

<Tip>
  WhatsApp is not a megaphone. The more sending looks like a **bot**, the higher the risk. Notifique adds **brakes** between your code and the recipient, queue, delay, and limits.
</Tip>

## In brief

* Risk exists in both modes; **unofficial** needs more care with volume and new SIMs.
* On the **official** line, Meta also enforces rules (templates, 24h window, billing, quality).
* You need **opt-in**, allowed content, and gradual use on new numbers.
* Notifique **does not guarantee** zero blocks if usage violates policies.

Connection modes: [Connection modes](/en/whatsapp-api/como-funciona/modos-de-conexao).

***

## What increases risk

| Behavior                                                 | Risk                 |
| -------------------------------------------------------- | -------------------- |
| Hundreds of identical messages in seconds                | High                 |
| Huge campaign on **one number**                          | High                 |
| **New SIM** + API on the same day                        | High                 |
| Message to someone who **never contacted you**           | High                 |
| Volume **split** across numbers with pauses              | Lower (with warm-up) |
| Reply to someone who **already reached out** or opted in | Lower                |

<Warning>
  Follow [Meta policies](https://www.whatsapp.com/legal/business-policy) and Notifique [Terms](https://app.notifique.dev/terms). Opt-in and lawful content are not optional.
</Warning>

***

## New numbers and SIMs

New SIMs and **new Business accounts** are watched more closely. The platform applies **automatic warm-up** (20 msgs/day for the first 3 days), a **safety ceiling**, not a day-one target.

### Before connecting the API (3–7 days)

Use the number **on the phone**, without the API:

1. Complete the profile (photo, name, description)
2. Chat **manually** with real contacts
3. Avoid activating the SIM and connecting the API **on the same day**

### After connecting

| Period       | What to do                                                                                       |
| ------------ | ------------------------------------------------------------------------------------------------ |
| **Day 0**    | Internal tests only, **no** campaign                                                             |
| **Days 1–3** | Few sends (ideal **5–10**/day), varied content                                                   |
| **Days 4–7** | Increase slowly if there are no failures                                                         |
| **After**    | Scale with [Sending Pools](/en/whatsapp-api/como-funciona/sending-pools) when the line is stable |

Check `warmup` on **GET /v1/whatsapp/instances/:id** (`active`, `sentToday`, `daysRemaining`).

### Opt-in and conversations

| Send type                             | Opt-in needed?     |
| ------------------------------------- | ------------------ |
| OTP, order status, invoice            | No (transactional) |
| Marketing / promo                     | **Yes**            |
| Cold outreach (“Hi, we're company X”) | **Avoid**          |

Notifique does not block all cold outreach automatically, **you** model consent in your product. Inbound message webhooks help you know who already opened a chat.

***

## How Notifique helps

| Protection          | What it does                                              |
| ------------------- | --------------------------------------------------------- |
| **Smart Delay**     | Calculated pause before send (less robotic pace)          |
| **Priority queue**  | OTP can use `"priority": "high"`, urgent only             |
| **Sending Pools**   | Split volume across several numbers                       |
| **Retries**         | Backoff (30 s → 5 min → 30 min → 2 h), not infinite loops |
| **Circuit breaker** | A failing number pauses **in the pool**; others continue  |

<Info>
  With a fixed `instanceId`, the pool does not apply. Pools are **optional**. Details: [Sending Pools](/en/whatsapp-api/como-funciona/sending-pools).
</Info>

***

## Unofficial connection only

| Rule                         | Summary                                                               |
| ---------------------------- | --------------------------------------------------------------------- |
| **One SIM per instance**     | After first pairing, new number = **new instance**                    |
| `expectedPhoneNumber`        | Optional on create; wrong SIM → `PHONE_NUMBER_MISMATCH`               |
| **Reconnect cooldown (6 h)** | Involuntary drop blocks a new code for a while (`RECONNECT_COOLDOWN`) |
| **Manual disconnect**        | Via API does **not** apply that cooldown                              |
| **3-day warm-up**            | 20 sends/day (`WARMUP_DAILY_LIMIT` when exceeded)                     |

<Warning>
  **Ban screen** on the phone? Do not keep requesting codes on the same instance. Wait or use another **healthy** number.
</Warning>

***

## Official connection only

Meta controls quality, templates, and billing:

| Requirement                              | Why                                                   |
| ---------------------------------------- | ----------------------------------------------------- |
| **Approved** template outside 24h window | Without it → `META_TEMPLATE_REQUIRED`                 |
| Card in WhatsApp Manager                 | Without it → `META_PAYMENT_METHOD_REQUIRED`           |
| Opt-in for marketing                     | Meta policy + fewer reports                           |
| Valid token on the instance              | Expired → `META_TOKEN_EXPIRED` / `META_TOKEN_INVALID` |

Details: [Official Meta templates](/en/whatsapp-api/como-funciona/templates-oficiais-meta).

<Note>
  Sandbox (`sk_test_`) does **not** run real Meta gates. In production (`sk_live_`), treat `META_*` as Meta account or policy signals.
</Note>

***

## Related error codes

| `code`                  | HTTP | What to do                                        |
| ----------------------- | ---- | ------------------------------------------------- |
| `PHONE_NUMBER_MISMATCH` | 409  | Wrong SIM, use the right number or a new instance |
| `RECONNECT_COOLDOWN`    | 429  | Wait `retryAfterSec` before a new code            |
| `WARMUP_DAILY_LIMIT`    | 429  | Warm-up daily cap, send tomorrow (UTC)            |

Full catalog (pools, Meta, campaigns): [Error responses](/en/guides/conceitos/resposta-de-erros).

***

## Best practices

1. **Warm up the SIM** on the phone before the API
2. **Start slow** on the API (5–10 sends/day in the first days)
3. **Prioritize** people who already contacted you or opted in
4. **Separate** transactional from marketing (instance, pool, or priority)
5. **Monitor** failure webhooks (`message.failed`)
6. Use **idempotency** to avoid duplicate sends

***

## What Notifique does not do

* Does not guarantee zero blocks with abusive content or volume
* Does not replace recipient **consent**
* Does not control bans or quality decisions made by Meta on the official line

***

## Next steps

* [Introduction](/en/whatsapp-api/como-funciona/introducao): channel overview
* [Quick Start](/en/whatsapp-api/como-funciona/quick-start): connect and send
* [Sending Pools](/en/whatsapp-api/como-funciona/sending-pools): multiple numbers
* [Official Meta templates](/en/whatsapp-api/como-funciona/templates-oficiais-meta): official line
