Requires the WhatsApp add-on and an API Platform subscription, and a
WhatsApp Business number connected in your meetergo dashboard. Calls without the
add-on return
403.The 24-hour window (read this first)
WhatsApp only lets businesses send free-form messages within 24 hours of the contact’s last inbound message (the “customer-service window”). Outside that window you may only send pre-approved templates.
The window opens (and re-opens) whenever the contact messages you. Every
conversation reports
windowOpen and windowExpiresAt so you can decide
client-side. This is a WhatsApp platform rule — meetergo enforces it the same
way via the API and the dashboard.
Send a message
One endpoint sends all three kinds; pick withtype. The conversation for the
number is created or reused automatically — you never manage conversation
ids to send.
Text (within the window)
Template (anytime)
Media (within the window)
id, conversationId,
waMessageId, and status. The media url must be HTTPS and publicly
reachable by WhatsApp.
Finding your templates
To send a template you need its exactname, language, and how many
positional params it takes. List them:
name, language, status (only APPROVED can be sent),
category, variableCount (the length of the params array), and the body
text with its {{n}} placeholders.
Delivery & read receipts
After you send, the message’s status movessent → delivered → read (or
failed). Subscribe to the
whatsapp_message_status
webhook to track it — the payload carries the waMessageId you got back from
the send call, so you can correlate without polling.
Receive messages
Webhook (recommended)
Subscribe a webhook to thewhatsapp_message_received
event. meetergo POSTs every inbound message to your URL with the conversation
id, sender, text, and whether the 24h window just (re)opened. No polling, no new
infrastructure beyond an HTTPS endpoint.
POST /v4/whatsapp/messages with the from number. Because
the contact just messaged you, the window is open, so a free-form text reply
is allowed.
For media messages (
type of image, document, audio, …), the webhook
signals arrival but does not embed the file. Fetch it, with a fresh
time-limited URL, via
GET /v4/whatsapp/conversations/{conversationId}/messages.Polling (fallback)
If you can’t host a webhook, pollGET /v4/whatsapp/messages?since=<ISO timestamp>. It returns messages created
after since, oldest first, defaulting to inbound only. Persist the returned
nextSince and pass it back each cycle. since is millisecond-granular; for
guaranteed no-skip delivery, prefer the webhook.
Read conversation history
Endpoints
Full schemas and a request playground are in the
API Reference under WhatsApp V4.
Authentication
Use an API key (Authorization: Bearer ak_live:...) or a
Personal Access Token. With an API
key, you may target a specific sending user with the
x-meetergo-api-user-id header; omit it to act as the company owner.