Multi-tenant WhatsApp API: one key for all your customers
A multi-tenant WhatsApp API lets a software publisher give each of its customers their own WhatsApp number, isolated from the others. With Nodium, each customer is a client of your account: one API key drives them all, and one header names the customer a call acts for.
The model
- A client per customer (
POST /tenants), with your ownexternalId: use your identifier everywhere a client id is expected. - Isolation: each client has its own numbers, conversations, contacts and templates. A resource of another client answers
404. - One key: add
Nodium-Tenant: <id or externalId>to any call. Or issue a key pinned to one client, which can never act on another. - One webhook: a subscription on your own company receives the events of every client, each payload carrying the client it comes from.
# Same key, one header: the call acts for that customercurl https://nodium.io/api/v1/messages \ -H "Authorization: Bearer $NODIUM_KEY" \ -H "Nodium-Tenant: cust_1042" \ -H "Content-Type: application/json" \ -d '{ "channelId": "<channel id>", "to": "+33612345678", "type": "text", "text": "Your glasses are ready.", "idempotencyKey": "order-1042-ready" }'Connecting each customer's number
Each customer connects their own number from a hosted connect link, without creating a Nodium account. The number stays theirs, and Meta bills its fees to their own WhatsApp Business account.
What it costs
A client is free. Your plan is priced on the numbers connected and the messages carried, pooled across all your clients. See pricing.
Frequently asked questions
Can one of my customers see another customer's messages?
No. Every resource belongs to one client, and a call acting for one client cannot read another: it answers 404, as if the resource did not exist.
Do I need one webhook per customer?
No. One subscription on your own company receives the events of all your clients. A subscription created for one client receives that client's events only.