Skip to content
Get an API key

Get started

Coexistence

A number that keeps the WhatsApp Business app: what is written from the phone reaches you too.

With coexistence, a business connects its number to Nodium and keeps using the WhatsApp Business app on its phone. GET /channels?scope=account tells which numbers do (coexistence). Both sides write in the same threads; Nodium carries what the phone does to you.

What is written from the phone

  • message.echoed — the person holding the phone wrote to a contact from the app, not through the API. The payload carries to, type, text (or the caption), media and sent_at, and sender is always phone.
  • message.edited — a message was edited from the phone. message_id and provider_message_id are those of the original message; text is the text after the edit.
  • message.revoked — a message was deleted for everyone from the phone; same identifiers as the original.
  • These messages are stored as outbound, in the conversation, and signed by the person the client named as holding the phone. They do not reopen the 24-hour window: only a message from the customer does.

JSON

{ "id": "evt_9a8b7c6d5e4f30211a2b3c4d5e6f7081", "event": "message.echoed", "workspace_id": "…", "external_id": "crm-4187", "occurred_at": "2026-09-29T09:59:58.900Z", "data": { "message_id": "…", "conversation_id": "…", "channel_id": "…", "to": "+33612345678", "sender": "phone", "type": "text", "text": "Received, see you tomorrow.", "sent_at": "2026-09-29T09:59:58.000Z" }}

How to tell them apart in messages

  • origin on a message is phone when it was written from the WhatsApp Business app; otherwise null. Use it to tell a person's message from one your code sent.
  • imported is true for a message taken from the phone's chat history, not received live.
  • Both appear in GET /conversations/{id}/messages and in the journal.

History

When the number is connected, Meta can hand over the conversations already on the phone, and the address book. Nodium imports them into the same conversations and contacts: read them through the API (imported: true). No webhook is sent for imported history — it is not news — so do not wait for one; list the conversations instead. Imported history never moves the 24-hour window backwards.