Quickstart
Everything here happens against the live API.
Before you start
Section titled “Before you start”Neike is a technical provider, not a BSP. You connect your own Meta assets and Meta bills you for what you send. That means three things have to be in place on your side before a single message goes out:
| You need | Why |
|---|---|
| A Neike account | Where you get the API key and point us at your backend. |
| Your own WhatsApp number, Instagram professional account or Facebook page | You connect it to Neike; ownership stays yours. |
| A payment method on your own WhatsApp Business Account, in Meta | Meta charges you per conversation. Without it, Meta rejects every send — see Meta’s guide. |
-
Look around without an account
Section titled “Look around without an account”The whole reference is available as plain text, no key required:
Terminal window curl https://api.neike.dev/api/llms.txt -
Connect a channel
Section titled “Connect a channel”Channels are connected from the console, not from this API — the flow runs Meta’s Embedded Signup in a popup and has to happen in a browser.
Go to Channels, pick WhatsApp, Instagram or Messenger and follow Meta’s dialog. When it finishes you get a
channel_idthat looks likenk_dvzobn7m4h4y. That is the id you use everywhere else.Connecting succeeds even if your Meta account has no payment method — we do not block the channel over it. The console marks the channel and the Embedded Signup response carries
meta_payment_status: "missing", so you can surface it in your own flow. Sending will keep failing until you add it. -
Create an API key
Section titled “Create an API key”In API keys, create a key. It is shown once and stored only as a hash — we cannot recover it for you.
Scope it to what the integration actually does (
messages:send,messages:read,templates:manage, …) so a leaked key cannot do everything. -
Point us at your backend
Section titled “Point us at your backend”Tell us the base URL we should call and a shared token, either in Webhooks or through the API:
Terminal window curl -X PATCH https://api.neike.dev/api/webhooks/config \-H "x-neike-api-key: whk_live_…" \-H "Content-Type: application/json" \-d '{ "webhook_url": "https://your-backend.com" }'We append the platform’s path to that base. An inbound WhatsApp message becomes
POST https://your-backend.com/chat/whatsapp/receive. -
Receive a message
Section titled “Receive a message”Write to your connected number from your phone. Your backend gets:
{"event": "message.received","channel": { "id": "nk_dvzobn7m4h4y", "platform": "whatsapp" },"contact": {"id": "5491112345678","name": "Ana","phone": "+5491112345678","username": null,"avatar_url": null},"message": {"id": "wamid.HBgNNTQ5MTEy…","direction": "inbound","timestamp": "2026-08-09T18:12:44.310Z","type": "text","content": { "text": "Do you have stock?" },"reply_to": null}}Check the
x-webhook-tokenheader against your shared token before you process anything, and answer200quickly — slow handlers get retried. -
Terminal window curl -X POST https://api.neike.dev/api/outbound/send \-H "x-neike-api-key: whk_live_…" \-H "Content-Type: application/json" \-d '{"channelId": "nk_dvzobn7m4h4y","to": "5491112345678","type": "text","content": { "text": "Yes, we do." }}'You get
202with ajobId. The send is queued, so the response means accepted, not delivered — delivery arrives as a status webhook. -
Follow the status
Section titled “Follow the status”As Meta confirms each step we
POSTtohttps://your-backend.com/chat/whatsapp/updatewith the provider message id and the new state:sent→delivered→read, orfailedwith a reason.
What to read next
Section titled “What to read next”- Core concepts — the vocabulary the rest of the docs assume.
- Receiving messages — the full envelope and how to validate it.
- Sending messages — media, templates and the 24-hour window.