The WhatsApp API that comes with a collaborator.
Send and receive WhatsApp messages from your software, get your templates approved by Meta, receive every event through a signed webhook. And let the collaborator reply, thread by thread, whenever you decide.
curl https://nodium.io/api/v1/inbox/conversations/<id>/messages \ -H "Authorization: Bearer $NODIUM_KEY" \ -H "Content-Type: application/json" \ -d '{ "text": "Your order 10482 has shipped.", "idempotencyKey": "order-10482-shipped" }'{ "data": { "message": { "id": "5b2e…", "channelType": "whatsapp", "status": "sent" }, "duplicate": false }}What the API does for you
What Meta requires, Nodium handles: you write to your customers, not to the platform.
Send and reply
Text, files, buttons, lists, a location request. Every send carries your idempotency key: replayed, a message only goes out once.
POST /inbox/conversations/{id}/messagesWrite first
An approved template opens the conversation with a customer who has not written yet; its variables are filled in when you send.
POST /inbox/conversationsTemplates
Draft them, submit them to Meta and follow their approval, through the API or from the console.
POST /templates/{id}/submitWebhooks
Fifteen events, from message received to message read. Every delivery is signed (HMAC-SHA256), attempted up to six times, and can be redelivered on demand.
POST /webhooksContacts and consent
Your contacts, your notes and your fields; consent given or withdrawn reaches you by webhook. And erasing a person, for good.
DELETE /privacy/contacts/{id}The collaborator, thread by thread
Let it reply on a thread, or keep it quiet: every message still reaches you by webhook. What needs a person is flagged to you.
POST /inbox/conversations/{id}/ai
The 24-hour window, handled for you
WhatsApp only accepts free text within 24 hours of your customer's last message. Past that, the API refuses the send with an explicit error and tells you to send an approved template: never a message that silently disappears.
- Inside the window: free text, buttons, lists.
- Outside the window: a template approved by Meta, variables filled in.
- Every refusal carries a stable code your software can test.
{ "error": { "status": 409, "code": "window_closed", "message": "More than 24 hours since the customer last wrote.", "requestId": "req_…" }}Your number, not ours
You connect your WhatsApp Business number from the console, and your customers recognise your business. Nodium does not provide numbers, and conversations billed by Meta remain yours to pay, at its per-country rates.
Do you build business software?
Connect Nodium once. Each of your customers gets their own workspace, their own number and, if they want, their own collaborator reading your records. Let's talk about the partner offer.
Write to the teamYour first message goes out with one key.
Create a free account, then a key under Account › Advanced › API keys.