Dashboard

1. Activate Coexistence

Loading Facebook SDK…

Once set, WhatsApp delivers incoming messages straight to this URL — we're never in that path.

Your endpoint needs to handle these, not just plain messages

smb_message_echoes A human sent a message from the phone's WhatsApp Business App. Ignore it and your bot won't know — it may auto-reply to the same customer, causing a double response.
smb_app_state_sync Contacts added/removed in the Business App. Ignore it and your contact list drifts out of sync.


        
      

2. Send messages through the relay

Once onboarded, send outgoing messages by calling our relay instead of Meta directly — same request body Meta's own /{phone-number-id}/messages endpoint takes, forwarded with your own access token:

POST /api/relay/<phone-number-id>/messages
Authorization: Bearer <your WhatsApp access token>
Content-Type: application/json

{
  "messaging_product": "whatsapp",
  "to": "<recipient>",
  "type": "text",
  "text": { "body": "Hello!" }
}

We never store your token — it's forwarded per-request. Rate limiting and per-recipient serialization are upcoming.

3. Verify it worked

Not a "send a test message" button — that only proves the relay works, which isn't in doubt. What actually matters:

  • Coexistence activated? Check the phone's WhatsApp Business App itself — Meta refreshes it automatically to show the number is now connected to the API. No message needed.
  • Is your echo handling correct? Send a message from that phone app and confirm your own server received an smb_message_echoes webhook for it. Only your real phone + your real server can prove this — nothing we send on your behalf would test it.

Recording App Review videos?

Use the send-message / create-template test buttons on the Test page — not part of the product, just there to satisfy Meta's demo-video requirement.