Integrations

WhatsApp API for developers: send with REST, receive events by webhook, a scoped key — without talking to Meta

8 min read Updated 23 September 2026 ArabyBot team
On this page 6
  1. The four doors open today — and what is not
  2. Order intake from any system
  3. Cart events
  4. The OTP API
  5. The agent reads your system: webhook tools and MCP servers
  6. Frequently asked questions

The short answer

With an API key you generate from the dashboard with permissions you choose, then one REST call sends a text message or an approved template to a number, endpoints list subscribers and approved templates, and an outbound webhook posts the inbound-message event and the events you pick to your URL — all on Meta's official API, so no number gets banned over an unofficial tool. You never talk to Meta directly: approval, templates, the window and pricing are handled by the platform, and your system sees one interface.

The short answer

With an API key you generate from the dashboard with permissions you choose, then one REST call sends a text message or an approved template to a number, endpoints list subscribers and approved templates, and an outbound webhook posts the inbound-message event and the events you pick to your URL — all on Meta's official API, so no number gets banned over an unofficial tool. You never talk to Meta directly: approval, templates, the window and pricing are handled by the platform, and your system sees one interface.

Also asked as: «واتساب api للمبرمجين» · «webhook واتساب» · «ازاي ابعت رسالة واتساب من الكود» · «ربط واتساب api بالنظام»

The four doors open today — and what is not

What a developer can do on our platform today
DoorDirectionAuthDoes
Order-intake webhookYour system → platformKey in the URLRuns order confirmation and status messages for a store on any platform
Cart-events webhookYour system → platformSecret + HMAC signature, or a keyRuns abandoned-cart reminders
OTP APIYour system → platformApp public key + secretSend a verification code on WhatsApp, verify it, resend it
Agent tools: webhook and MCPPlatform → your systemHeaders you set (encrypted at rest)The agent reads live orders, stock and appointments from your system and answers from them
General REST API (send, subscribers, broadcasts, templates)——Not open yet — on the roadmap, no keys issued

1. Order intake from any system

For stores not on Shopify or WooCommerce: your system posts the order event to an intake URL tied to your account, and the pre-shipping confirmation and status updates run as they do for connected stores. The URL and key come from the order-confirmation settings page, and the exact field shape is in the API Reference tab inside the dashboard.

POST https://app.arabybot.com/wa_notify_webhook/api/{api_key}
Content-Type: application/json

{ "order_id": "1042", "status": "created",
  "customer": { "name": "…", "phone": "+2010…" },
  "items": [ { "name": "…", "qty": 1, "price": 350 } ],
  "total": 350, "currency": "EGP" }

The exact field names and when each event is sent (created, confirmed, shipped, delivered, cancelled) are in the reference inside the dashboard — not copied here so they never go stale.

2. Cart events

A "cart created" and "cart abandoned" event from your store runs the recovery messages at the timing you set. Two ways: a URL with a secret and an HMAC signature for platforms we ship a plugin for, or a keyed URL for your own system. Cart recovery.

3. The OTP API

Three endpoints: send the code, verify it, resend it — with a public key and a secret for your app from the OTP page. The code arrives on an approved authentication template at Meta's rate for the recipient's country, cheaper than SMS in most of our markets. OTP on WhatsApp or SMS.

POST https://app.arabybot.com/wa_otp_api/send     { "phone": "+9665…", "app_key": "…", "secret": "…" }
POST https://app.arabybot.com/wa_otp_api/verify   { "phone": "+9665…", "code": "482913", … }
POST https://app.arabybot.com/wa_otp_api/resend   { "phone": "+9665…", … }

4. The agent reads your system: webhook tools and MCP servers

  1. Define the tool

    From the agent → tools → add: the name ("order_status"), the description the model reads ("returns an order's status by number"), a public URL, the method GET or POST. The description decides when the agent calls it, so write it as you would explain it to a teammate.

  2. Return simple JSON

    Clearly named fields with text values: {"status":"shipped","eta":"Thursday"}. The agent phrases the reply from them; return no HTML and no pages.

  3. Or connect an MCP server

    From the agent → MCP servers → quick connect: the URL, the token and headers. The server's tool list is read and you choose which are allowed; tokens are stored encrypted.

  4. Know the limits

    Public URLs only (no 10.x, no localhost), resolved once and pinned to one IP, redirects not followed, http/https only, and a per-customer call rate limit. That protects your system and ours alike.

What is not open today — plainly

A general REST API to send a message or template from your system, read subscribers, create broadcasts and manage templates — documented in the dashboard as a roadmap, not routed yet, and no keys are issued for it. Whoever needs to send from their system today uses the order webhook (runs confirmation messages) or the OTP API (sends the code), or lets the agent answer from their system through tools. When the general API opens, this guide and the page will change together.

Frequently asked questions

1

Is there a general REST API to send a message from my system?

Not open yet. What works today is four doors: the order-intake webhook, the cart-events webhook, the OTP API, and the AI agent calling your system (webhook tools and MCP servers). The general send API is on the roadmap, and the developer screen in the dashboard shows it plainly as "not shipped" and issues no keys for it.

2

How does the AI agent read live data from my system?

You define a tool for it: a name, a description, a public URL and a method (GET or POST). When the agent needs what the tool describes ("the status of order…") it calls it with the parameters, reads the JSON reply and answers the customer from it. The URL must be public (no private network), it is resolved once and pinned, redirects are not followed, and calls are rate-limited per customer.

3

What is MCP, and when do I use it instead of a webhook tool?

A protocol through which your server lists its tools to the model in one format. You connect the server URL and its token from the dashboard, its tools are read, and you choose which the agent may use. Pick it when you have more than a couple of tools or a system that already speaks it; a webhook tool when you have one simple endpoint.

4

My store is on a platform with no integration — how do I send orders?

Through the order-intake webhook: your system posts the order event (order number, customer and phone, items, amount, status) to your own URL with your key, and the confirmation and status messages run as if the store were connected. The exact request shape is in the API Reference tab inside the dashboard.

5

Do the calls cost anything?

The webhooks and calls themselves, nothing. What is billed is what they produce: a WhatsApp message you start on a template at Meta's rate for your country, and the AI agent's reply according to your plan. Pricing.

And you run all of it from your phoneEverything on this page is also run from the ArabyBot mobile app — replies, orders, campaigns and AI reports. Not a web dashboard only.

Try the agent before you pay anything

The agent that will answer your customers is the one answering you now: ask it from the chat button here or on WhatsApp. Your account is free with no credit card, and the free trial on your own number or page is activated after you contact our team on customer-service WhatsApp.