How a message travels
- A customer writes to your WhatsApp number.
- We store it in the inbox and post it to your platform’s address as
message.received. - Your agent decides what to say.
- Your platform calls
POST /api/v1/conversations/{conversationId}/reply. - We send it on WhatsApp and add it to the thread as the agent’s reply.
Only want the WhatsApp API?
If nothing of ours should answer — your own software does all of it — pick WhatsApp API when you sign up, under What will you use it for? You land on WhatsApp instead of Agents, and every number you connect starts with Connect External Agent/CRM already on. There is no agent to set up and no toggle to find; follow the steps under the number. Changed your mind — want voice or our AI agent too? Pick another use case from the dropdown in the top bar; your connected numbers keep answering through your software until you change them.- Start a conversation with an approved template:
POST /api/v1/messages. WhatsApp only lets a business message someone first with a template. - Reply once they write back, with text, media, a form or a template:
POST /api/v1/conversations/{id}/reply. - Read threads and catch up on anything missed: conversations.
Set it up
1
Connect your WhatsApp number
On WhatsApp, connect your own WhatsApp Business Account — a new one or
one you already have.
2
Switch on Connect External Agent/CRM
Under the number, switch on Connect External Agent/CRM. Our agent picker
moves to Not assigned and locks — nothing of ours answers this number.
The number then shows these same steps. Only admins can change it; switching
it off hands the number back, and you choose one of our agents again.
3
Create an API key
Settings → API keys. Send it on every call as
Authorization: Bearer ta_live_…. See authentication.4
Give us your external agent's address
Under the number, paste the HTTPS address customer messages should be posted
to and press Save. The signing secret is shown once — keep it. Saving
again mints a new one.
5
Reply
Call
POST /api/v1/conversations/{id}/reply
with the conversationId from the event.What your webhook receives
media— when the customer sent a photo, voice note, video or document:{ "kind": "image" | "audio" | "video" | "file", "mimeType", "filename" }. The file itself is not in the event — read the conversation’s messages for a download link.form— when the customer submitted a WhatsApp form:{ "answers": { "field": "value" } }.text— the message, or a media message’s caption.messageId— the same id the messages API returns, so you can tell a message you already handled from a new one.
x-thinnest-signature: sha256=…, an HMAC-SHA256 of the
raw body under your signing secret. Check it before trusting the body.
Every message is sent, not just the last one in a burst. If a customer sends
three messages quickly, your platform gets three events.
What your agent can send
One kind per call. The full reference, with every refusal, is on
Reply to a conversation.
When a person takes over
If a teammate takes a conversation over in the inbox, your agent’s replies to it are refused, and its new messages are not sent to your webhook, until the conversation is handed back. That way the customer never has two voices answering at once. The teammate’s exchange can be read through the conversations API. “STOP” and other opt-outs are handled before anything reaches you. The customer is unsubscribed from marketing whatever your agent does.Pricing
Meta bills your WhatsApp Business Account directly for its fee on each message, at Meta’s rates. ThinnestAI charges 10% of Meta’s rate per message, from your wallet — pay as you go, with no monthly subscription. A message Meta does not charge for costs nothing from us either. Replies your teammates send from the inbox or a connected helpdesk on these numbers are charged the same way. There is no AI usage to pay for on these numbers, because your agent does the answering.If your endpoint misses a message
Each message is sent once. One your endpoint does not accept is not retried, and the WhatsApp page shows the last failure under the number. Nothing is lost: read back what you missed with the conversations API.Not available yet
- No typing indicator or read receipts from your agent.
- WhatsApp only. Website chat, Telegram and voice are answered by ThinnestAI agents.