API

An honest comparison of WhatsApp APIs in Brazil (2026)

Picking a WhatsApp API has become an architecture decision, and most comparisons hide the weak spots of the tool they want to sell. This one does the opposite: two worlds (Meta's official API and unofficial, instance-based ones), where each shines, where each gets expensive and how to decide for your real case, whether that is support, sales, controlled bulk messaging or a SaaS that needs WhatsApp for its end customers. You finish knowing what to test before you pay.

Published on · Updated on · 10 min read

This article is also available in: Português · Español

Official vs unofficial: understand the difference before comparing prices

Before looking at any table, you need to decide which of the two models you will operate on, because they do not even compete on the same ground. The official API (WhatsApp Cloud API) is Meta's own solution: you register a business number, go through business verification, use approved templates to start conversations and pay per message under Meta's pricing categories. It is the most stable and predictable route for high volume and for brands that need full compliance, but it comes with approval friction, requires templates for outbound messages and charges per message window.

Unofficial APIs work differently: they connect a regular WhatsApp number through an instance, the same way WhatsApp Web does, and expose that as an API so you can send and receive messages programmatically. The upside is almost total freedom: any number, no template approval, free-form messages, and a fixed cost per number instead of a cost per message. The trade-off is that you operate under WhatsApp's terms of use, so the number can be restricted or banned if the behavior looks abusive, and good tools work to reduce that risk instead of promising immunity.

Rule of thumb: if you need the green badge, massive scale of transactional notifications and a lower risk of a number ban (lower, but not zero), go with the official API. If you need flexibility, predictable cost per number, free-form conversation and speed to get up and running, the unofficial route delivers more. Many companies end up using both in parallel. We break down both models side by side on our comparison pages and explain the technical foundation on the WhatsApp API page.

What really matters when comparing a WhatsApp API

Price is the criterion everyone looks at first and should look at last. What changes the game is the billing model: per-message billing (the official standard) scales with volume and can surprise you on the invoice, while a fixed charge per active number is predictable and favors those with many conversations per number. Also check whether there is a setup fee, whether credit is prepaid or postpaid, and whether leftover balance gets stuck when you pause an operation.

Connection reliability and ban-prevention maturity are the second pillar, especially in the unofficial model. Ask how the tool handles warm-up of a new number, whether it spreads sends with humanized intervals, whether it monitors instance health and reconnects on its own, and whether it alerts you when something drops. No serious vendor promises a number will never be restricted, so be wary of absolute guarantees. What a good platform does is reduce risk with realistic behavior and telemetry.

The third pillar is the product layer around the raw API: reliable webhooks to receive messages in real time, support for media and groups, sending text and files, and automation features such as AI per instance, send queues and pluggable modules. An API that only sends text forces you to build everything on top. A platform that already delivers webhooks, support AI, multi-number management and a dashboard saves weeks of development. Finally, evaluate multi-tenancy and documentation: if you will resell or integrate end customers, you need per-account isolation and clear docs, ideally with a machine-readable reference endpoint.

Comparing the main options used in Brazil

WhatsApp Cloud API (official, from Meta): this is the foundation for anyone who wants the official model. High stability, verified number, great for transactional notifications at volume. Points of attention: it requires business verification, outbound messages depend on approved templates, billing is per message and the setup curve is longer. Many businesses access the official API through a BSP (business solution provider), which adds a dashboard and support on top of the raw API.

Generic instance providers (self-hosted unofficial): there are several libraries and services that expose WhatsApp through instances. They give maximum freedom and low infrastructure cost if you host them yourself, but they put all the responsibility for stability, warm-up, reconnection and scale on you. Good for those with a dedicated technical team who want full control. Bad for those who want to deliver value fast without becoming a WhatsApp infrastructure operator.

Support and chatbot platforms with an attached API: these are tools focused on shared inboxes, funnels and bots, which offer an API as a secondary feature. Excellent for support and sales teams that live inside the dashboard, less ideal for those who want the API as the core product to integrate into their own systems or resell. Pricing is usually per agent or per contact, which weighs more as the operation grows.

ZapZap API (unofficial via instances, with a product layer): it is positioned for those who want the flexibility of the unofficial model without building the infrastructure alone. Fixed, predictable pricing per active number, a focus on reducing ban risk and ready-made automation features. More details below. None of these options is the best for everyone: the fit depends on volume, budget and how much you want to build yourself.

ZapZap API in detail

ZapZap API is an unofficial WhatsApp API that runs through instances, designed for those who want cost predictability and less infrastructure work. The pricing model is straightforward: R$15 per active number per month, prepaid, with a welcome credit (subject to the current campaign). Because billing is per number and not per message, operations with a lot of message exchange per number do not see the invoice explode with volume, which helps financial planning.

On reliability, the focus is on reducing the risk of restrictions instead of promising immunity. New numbers go through community warm-up before entering production pace, sends follow more humanized patterns, and there are ban-prevention mechanisms along with instance health monitoring to detect drops and reconnect. It is the kind of invisible work that separates an instance that holds up day to day from one that keeps dropping.

The product layer is what saves development time. Each instance can have its own support AI, you receive real-time events through webhooks, you enable modules as needed and you manage multiple numbers from the same account, with tenant isolation for those who integrate end customers or resell. In other words, besides sending and receiving messages, you inherit automation, intelligent support and number fleet management without building everything from scratch. The technical reference for features and endpoints is on the WhatsApp API page, and the comparison with the official model is on the comparison pages. It is worth being honest about the trade-off: since it is unofficial, there is no green badge and not the same level of continuity guarantee as the official route, so for pure transactional notifications at massive scale the official API may still make more sense.

How to integrate in practice: receiving messages by webhook

Regardless of the tool you choose, the heart of any WhatsApp integration is the webhook: the URL on your system that the platform calls every time a message arrives. You expose a public HTTP endpoint, register it on the platform and start receiving events in real time. From there, your code decides what to do: reply automatically, save to a CRM, trigger an automation or call an AI.

A minimal Node.js handler with Express illustrates the pattern. What matters is replying quickly with status 200 to confirm receipt and processing the heavy logic asynchronously, avoiding timeouts and webhook redeliveries. Here is an illustrative example, not a literal endpoint of any specific API:

const express = require('express'); const app = express(); app.use(express.json()); app.post('/webhook', (req, res) => { const evento = req.body; if (evento.message && !evento.message.fromMe) { const de = evento.message.sender; const texto = evento.message.text; console.log(`Message from ${de}: ${texto}`); /* call your own logic here: CRM, AI, auto-reply */ } res.sendStatus(200); }); app.listen(3000);

The exact format of the event body, the available fields and the sending routes vary by platform, so always check the official documentation of the tool you choose. For ZapZap API, the machine-readable reference is at api.zapzapapi.com/llms.txt, which even makes it easy to generate integrations with the help of AI. The conceptual pattern, though, is the same in any unofficial API: receive the event by webhook, reply 200, process in the background and use the send route to respond.

How to choose the right one for your case

If your case is high-volume transactional notification, with the green badge and full compliance, start with the official API and accept the setup friction and the per-message cost as part of the package. If you need free-form conversation, a fixed cost per number and speed, the unofficial model delivers more value per real invested. And do not treat this as mutually exclusive: it is common to use the official API for critical transactional messages and an unofficial API for support, sales and more flexible automations.

Do the math based on your real usage pattern, not the list price. Add up how many numbers you will need, how many conversations per number per month, and how much development time you save with ready-made features such as AI, webhooks and multi-number management. A tool with a fixed cost per number usually wins when there is a lot of conversation per number, while per-message billing favors low, sporadic volumes.

The last piece of advice is to test before committing. Before migrating the operation, spin up a number, configure the webhook, send and receive real messages and watch stability for a few days. That is how you separate what works in marketing from what works in practice. To go deeper on official vs unofficial, see the comparison pages, and for the technical details of the API see the WhatsApp API page.

If your case is free-form conversation at a predictable cost per number, the shortest path is to test: connect a number in ZapZap API, point your webhook and watch stability for a few days before moving the operation. A real test answers better than any table.

Quick summary

  • The first decision is the model, not the tool: the official API (per message, with the badge and templates) or an unofficial one (per instance, free-form conversation).
  • A fixed charge per active number is predictable and favors those with many conversations per number; per-message billing favors low-volume, transactional use.
  • No serious tool promises immunity to bans: warm-up, humanized sending and monitoring are what reduce risk.
  • ZapZap API is prepaid per active number and already includes AI per instance, webhooks, modules and ban prevention.
  • The webhook is the heart of the integration: expose an endpoint, reply 200 quickly and process the logic asynchronously.

Also read

Frequently asked questions

What is the difference between the official and unofficial WhatsApp API?

The official API (WhatsApp Cloud API, from Meta) uses a verified number, approved templates for outbound messages and charges per message, with more stability and compliance. Unofficial APIs connect a regular number through an instance, allow free-form messages and a fixed cost per number, with more flexibility, but they operate under WhatsApp's terms of use and require care with sending behavior.

How much does ZapZap API cost?

ZapZap API charges R$15 per active number per month, on a prepaid model, and offers a welcome credit (subject to the current campaign). Since billing is per number and not per message, the cost stays predictable even with a high volume of messages per number.

Can an unofficial API get my number banned?

There can be restrictions or a ban if the behavior looks abusive, since you operate under WhatsApp's terms. No honest tool promises immunity. What a good platform does is reduce the risk with number warm-up, humanized sending and instance health monitoring.

How do I receive messages in real time?

By webhook: you expose a public URL, register it on the platform and start receiving each message as an HTTP event. The standard is to reply quickly with status 200 and process the logic asynchronously. For the exact fields and routes of ZapZap API, see api.zapzapapi.com/llms.txt.

Compare by testing for real

Connect a number by QR code, set up the webhook and check stability with your own data. Verify your phone and you get a welcome credit to test without depositing (one per phone, subject to the current campaign).