WhatsApp Conversations

When a customer messages your WhatsApp sender, a conversation opens a 24-hour service window during which you can reply with free-form text. Inbound messages and delivery receipts arrive on the inbound webhook.

List Conversations

GET
/v1/whatsapp/conversations

List conversations with their window state (windowOpen), most recently active first.

Get Conversation

GET
/v1/whatsapp/conversations/{id}

Retrieve a conversation and its full message thread (inbound + outbound).

Reply

POST
/v1/whatsapp/conversations/{id}/reply

Send a free-form text reply. Only valid while the 24h window is open (otherwise 422 — send a template instead).

Parameters

ParameterTypeDescription
bodyrequiredstringThe reply text.

Inbound Webhook

POST
/v1/whatsapp/webhooks/inbound

Provider-called endpoint for inbound messages and delivery-status receipts. HMAC-signed; no API key.

The body is HMAC-SHA256 signed with your configured webhook secret and supplied in the X-Signature: sha256=<hex> header. Three event types: a message event opens/extends the conversation window; a status event advances the matching outbound message; a template_status event applies Meta's template review (approved/rejected/disabled, resolved by WhatsApp Business Account ID + template name + language). Redelivered events are de-duplicated (idempotent).

Example Body

{
  "events": [
    { "type": "message", "phoneNumberId": "pn-1", "from": "+61411111111",
      "text": "Hi there", "providerMessageId": "wamid.inbound1" },
    { "type": "status", "providerMessageId": "wamid.outbound1", "status": "read" }
  ]
}