What a chat API means on WhatsApp
A chat API lets your software hold a live, two-way conversation with a customer on WhatsApp, rather than just send notifications. On WhatsApp there is no separate product for that. The same Cloud API that sends a template does three things that together make chat:
- Send: text, media, buttons and lists through the messages endpoint.
- Receive: the customer’s messages pushed to your webhook as they arrive.
- Track: sent, delivered and read events for every message you send.
Wire those three to a screen where people can see conversations and reply, and you have a WhatsApp inbox. The rest of this page is the detail. If you are new to the API itself, start with what the WhatsApp API is.
How a conversation works
Everything in WhatsApp chat is governed by one rule. When a customer messages you, a 24-hour customer service window opens. Inside it you can send any message type. Each new customer message resets the clock. When it expires, the only thing you can send is an approved template.
| Situation | What you can send | Category and cost |
|---|---|---|
| Customer wrote within the last 24 hours | Free-form text, media, buttons, lists, location, contacts, reactions | Service message. Free until 30 September 2026, then charged at the utility rate. |
| Customer has not written in 24 hours, or never has | An approved template only | Marketing, utility or authentication rate, depending on the template |
| Customer taps a button in your template | Free-form again, the window reopens | Service message |
In practice: a customer asks “is this in stock?”, you have a day to answer as freely as you like. If you want to follow up next week, that is a template. Templates that pass review are in our gallery.
Receiving messages
You never poll for messages. Meta POSTs each one to the webhook URL you registered, signed with your app secret. A text reply looks like this:
{
"object": "whatsapp_business_account",
"entry": [{ "changes": [{ "field": "messages", "value": {
"messaging_product": "whatsapp",
"contacts": [{ "profile": { "name": "Priya" }, "wa_id": "919876543210" }],
"messages": [{
"from": "919876543210",
"id": "wamid.HBgMOTE5...",
"timestamp": "1725000000",
"type": "text",
"text": { "body": "Is the blue one in stock?" },
"context": { "id": "wamid.of.the.message.they.replied.to" }
}]
}}]}]
}Three fields matter for chat. from is who to reply to. id is what to dedupe on, since Meta retries. And context, when present, tells you which of your messages they replied to, which is how a button tap or a quoted reply is linked to the right question. Media arrives as an ID you fetch separately. The full flow, with verification code, is in the webhook guide.
Buttons, lists and rich replies
Chat on WhatsApp is not only text. Interactive messages turn a question into a tap, which cuts typing on both sides and keeps answers clean enough for software to act on.
| Type | What the customer sees | Limits |
|---|---|---|
| Reply buttons | Up to 3 buttons under a message | 20 characters per button, one tap sends the button id back |
| List message | A button that opens a menu | Up to 10 rows, grouped in sections |
| CTA URL button | A button that opens a link | One link, useful for payment or tracking pages |
| Location request | A button that shares their location | Handy for delivery and site visits |
| Flows | A multi-step form inside WhatsApp | Booking, address capture, lead qualification |
| Reaction | An emoji on a specific message | Good for acknowledging without a new bubble |
A reply-button message
{
"messaging_product": "whatsapp",
"to": "919876543210",
"type": "interactive",
"interactive": {
"type": "button",
"body": { "text": "The blue one is in stock. Want me to reserve it for you?" },
"action": { "buttons": [
{ "type": "reply", "reply": { "id": "reserve_yes", "title": "Reserve it" } },
{ "type": "reply", "reply": { "id": "reserve_no", "title": "Just looking" } }
] }
}
}The tap comes back on the webhook as type: "interactive" with the button id, so your code gets reserve_yes rather than having to parse “yes pls”.
Read receipts and typing
For every message you send, Meta later posts status events: sent, delivered, read, and failed with a reason. Store them against the message ID and your inbox can show ticks like the app does.
You can also mark the customer’s message as read, which shows them blue ticks, and since 2025 you can show a typing indicator while an agent composes a reply. Both go through the messages endpoint:
{
"messaging_product": "whatsapp",
"status": "read",
"message_id": "wamid.HBgMOTE5...",
"typing_indicator": { "type": "text" }
}Small things, but they are the difference between a chat that feels live and one that feels like a ticket queue.
What a team inbox needs on top of the API
The API gives you messages in and messages out. A team needs more than that to answer customers without stepping on each other. This is the layer platforms exist to provide.
| Need | Why it matters | In Boldally Chat |
|---|---|---|
| Conversation threads | The API sends single events. Someone has to group them by customer, in order. | Yes |
| Assignment | So one person owns a chat and two people do not reply at once. | Yes, manual and rule-based |
| Internal notes | Context for a handoff without the customer seeing it. | Yes |
| Quick replies | The same ten answers, typed once. | Yes, with media |
| Window awareness | Show when the 24-hour window closes and switch to a template automatically. | Yes |
| History and search | Find what a customer was told last month. | Yes |
| Contact records and tags | Who this person is, what they bought, which list they are on. | Yes |
| Read and delivery status | Ticks on each message from status webhooks. | Yes |
What chat costs
Replying inside the window is a service message. Meta has not charged for those since November 2024, and continues not to until 30 September 2026. From 1 October 2026 service messages are billed per message at the utility rate for the country, which for India is ₹0.13 today. Reopening a conversation with a template costs the template’s category rate: ₹0.88 for marketing, ₹0.13 for utility.
Build it or use a platform
Building a chat integration is a weekend if you only need a bot to answer one question. It is months if you need a team to use it every day, because the inbox layer above is where the work is: threads, assignment, media handling, retries, template management, and reporting.
Build it yourself if WhatsApp chat is your product, or if you need the conversation embedded inside a system you already run. Use a platform if your goal is to answer customers well and run campaigns. Either way, register the number to your own WhatsApp Business Account so you can move later.
Boldally Chat is the platform option: the official API, a shared inbox built for Indian teams, and Meta’s message rates with nothing added on top. See what the inbox includes or the pricing.
Message types, limits and pricing are set by Meta and change over time. Verify against Meta for Developers before building on any specific value here.
Common questions
Is there a separate WhatsApp chat API?
No. Two-way chat runs on the same WhatsApp Cloud API used for templates and broadcasts. Sending is the messages endpoint, receiving is a webhook. 'Chat API' is what people call that combination when they want live conversations rather than one-way notifications.
Can I reply to a customer at any time with the chat API?
You can reply with free-form text, media or buttons for 24 hours after the customer's last message. After that you must send an approved template to reopen the conversation. This applies to everyone, including large platforms.
Can multiple agents chat on one WhatsApp number through the API?
Yes. The API has no concept of a phone or a device, so any number of people can reply through software connected to the number. Assigning conversations, showing who is typing and keeping history are the inbox layer's job, which is what Boldally Chat provides.
Does the WhatsApp chat API support group chats?
Not for business messaging. The Cloud API is one-to-one between a business and a customer. Meta has been trialling group features for businesses, but for practical purposes plan on individual conversations.
Can customers see which agent replied?
Not by default. The customer sees your business name and number. Platforms usually let you add the agent's name to a message if you want, and it is often worth doing for trust.
How fast is delivery through the chat API?
Typically within a second or two. Meta's Cloud API reports p99 latency under five seconds and supports up to 1,000 messages per second per number for high-volume senders, so the bottleneck is almost always your own webhook handling.
Keep reading
- WhatsApp API webhook guideReceive messages and statuses with verified payloads.
- WhatsApp Business API documentation, mappedEndpoints, message types and code.
- WhatsApp auto replyThe first message a customer gets, before a human joins.
- Boldally Chat shared inboxAssignments, notes, quick replies and history on one number.