Official WhatsApp API: what it is, what it costs and when it pays off

The official WhatsApp API, Meta's Cloud API, charges per delivered template message, not a monthly Meta fee. Free-form replies inside the 24-hour window are free.

Updated 5 min read

Learning objectives

After reading this article you will be able to:

  • Understand what the official WhatsApp API is and what it requires
  • Know which messages Meta charges for and which are free
  • Estimate the monthly cost and decide when the official API pays off
On this page

The official WhatsApp API is the interface Meta maintains so businesses can send and receive messages from code. Its technical name is WhatsApp Business Platform, and the most common way to use it is the Cloud API, hosted by Meta itself.

There is no single price: it depends on the message category, the recipient's country and who started the conversation. Meta can change prices and rules every quarter, so check the official page before you calculate.

customer service window (24 h)free-form textutility templatefreewindow closed:templates only, billedfree-form textmarketingutilityauthenticationthe customer writes24 h: window closes
Inside the window the customer opens, free-form text and utility are free; after it, only templates go out, and every template is billed.

What is the official WhatsApp API and what does it require?#

It is the authorized way to automate WhatsApp for business. You do not pair a phone or scan a QR code: you call Meta's Graph API with a token to send, and you receive messages and delivery statuses through a webhook (a public URL with valid HTTPS).

The requirements, according to the Cloud API documentation:

  • a Meta business portfolio;
  • a business phone number, real or virtual;
  • a server of your own to receive the webhooks.

When you start, Meta creates a test account and a test number, which send templates without asking for a payment method. In production, each number has a default messages-per-second limit and a maximum pace for messages to the same user; the current values are in the Cloud API documentation. For a comparison with the unofficial libraries, see Baileys, whatsapp-web.js or the official API.

What does Meta charge for?#

Since July 1, 2025, billing is per delivered template message. The official pricing page lists no platform subscription, only the price per message.

Templates are messages Meta approves in advance, and each one belongs to one of three categories:

Category What it is for When it is billed
Marketing Promotions, offers, re-engagement Whenever delivered
Utility Order confirmation, shipping status, payment reminder Outside the customer service window; inside it, free
Authentication Verification codes (OTP) Whenever delivered

The price depends on the category and the recipient's country code. Utility and authentication have volume tiers: the more you send, the lower the price. Marketing does not.

Which messages are free?#

Two situations bring the charge to zero:

  1. Customer service window (24 hours). It opens when the user writes to you. While it is open, non-template messages and utility templates are free. Once the 24 hours pass, you can only send templates, and those are billed.
  2. Free entry point window (72 hours). It applies when the user arrives through a Click to WhatsApp ad or a Facebook Page call-to-action button, from the mobile app (desktop and web do not count). If you reply within 24 hours, a 72-hour window opens in which every message, templates included, is free.

In practice, a support bot where the customer always starts the conversation costs little or nothing in Meta fees. The bill grows when the business is the one reaching out.

How do you estimate the monthly cost?#

Meta publishes the rate card by country and currency, as CSV and PDF, on its pricing page. It only changes prices on January 1, April 1, July 1 or October 1, with at least one month of notice. That is why this article does not pin down a price per message: download the current quarter's rate card and use the calculation below.

The script estimates the monthly cost. Fill rates with the values from the official rate card; the ones in the example are made up, just so the math runs.

js
// node estimate.js
// WARNING: made-up rates. Replace them with the values from Meta's official rate card.
const rates = { marketing: 0.5, utility: 0.1, authentication: 0.1 };

// DELIVERED messages per month that are billed.
// Utility sent inside the 24 h window is free: do not count it.
const volume = { marketing: 2000, utility: 1500, authentication: 800 };

let total = 0;
for (const [category, count] of Object.entries(volume)) {
  const cost = count * rates[category];
  console.log(`${category}: ${count} x ${rates[category].toFixed(2)} = ${cost.toFixed(2)}`);
  total += cost;
}
console.log(`Estimated total: ${total.toFixed(2)} per month`);

With those made-up numbers the total would be 1,230.00 (in the rate card's currency), of which 1,000.00 comes from marketing. That is what the calculation shows: marketing usually dominates the total, so cutting promotional sends lowers the cost more than any other change. And only delivered messages count.

What hidden costs are there?#

  • Provider (BSP). You are not required to use one, but many offer a dashboard, a shared inbox and support. Check whether they charge a monthly fee or a margin on top of Meta's price, and ask for the full price list before signing up.
  • Server. The webhook needs an application that is always up. It is a small cost, but a real one.
  • Currency. Meta publishes rates in several currencies, such as USD, EUR, MXN, ARS, CLP, COP and PEN. Check which currency your account is billed in, since each currency has its own rates.
  • Template approval. A rejected template delays campaigns; the cost is your team's time.

When does the official API pay off?#

It pays off when the number belongs to a business that cannot go offline: customer support, sales, order notifications, verification codes. The cost per message is predictable, and you avoid the risk of a banned number that comes with unofficial clients.

It does not pay off when the project is personal or for learning, or when it has to run on a number that cannot become a business number. In those cases the unofficial libraries cost only the server, but they carry the risk of bans and unannounced breakage. The underlying decision is covered in the comparison Baileys, whatsapp-web.js or the official API, and the step-by-step build in how to make a WhatsApp bot.

For bulk sends, the marketing bill adds up and template quality matters. If the bot needs to stay online all the time, see also how to host a WhatsApp bot 24/7.

How to do this on Square Cloud#

Beyond Meta's fees, what is left is hosting the server that receives the webhook. Square Cloud is self-service hosting: you deploy and control memory, variables and restarts from the dashboard. It supports the official Cloud API, as well as Baileys, WPPConnect and whatsapp-web.js. Meta still bills the messages; hosting is a separate cost.

For the webhook, the web application gets a squareweb.app subdomain with HTTPS, which can serve as the callback URL. Containers are always on, with no sleep mode, and automatic restart (on by default for dashboard deploys) when the process exits with an error.

Every plan is paid and billed in Brazilian reais. Hobby costs R$12.49 per month, with 1 GB of RAM shared across your applications (at least 512 MB per web application). You can deploy by ZIP, CLI, GitHub or the VS Code extension. The details are on the WhatsApp bot hosting page.

Bot hosting

Keep your bot online 24/7 with automatic restarts

Learn more

FAQs

Is the official WhatsApp API paid?

Yes, but per use. Since July 1, 2025, Meta charges for each delivered template message, priced by category and country. Meta's pricing page does not list a platform subscription. Free-form text inside the 24-hour window is not charged.

Which messages are free on the official API?

Non-template messages sent while the 24-hour customer service window is open, and utility templates sent inside that window. When the customer arrives through a Click to WhatsApp ad or a Facebook Page button and you reply within 24 hours, a 72-hour window opens in which every message is free.

Do I need a provider (BSP) to use the official API?

It is not required. You can use the Cloud API directly, with a Meta business portfolio and a business phone number. Providers offer a dashboard and support, with their own price list; check what they charge on top of Meta.

Can I use my personal number with the official API?

Not as a personal number. The Cloud API requires a business portfolio and a business phone number, which can be real or virtual.

How much does a marketing message cost?

It depends on the recipient's country and can change every quarter. Meta publishes the rate card by country and currency (CSV and PDF) on its pricing page. Check it before you calculate, because third-party estimates vary widely.

Next articleDiscord bot intents error: what privileged intents areThe Discord bot intents error (close code 4014) happens when your code requests a privileged intent that is off in the portal. Here is how to enable it and fix it.