Skip to content
OfficialBuilt on the WhatsApp Business Platform

WhatsApp messaging, one API call away.

Send order confirmations, OTPs, delivery updates and support replies from your own app. FoxlyFlow handles onboarding, templates, delivery tracking and signed webhooks, so you ship messaging in an afternoon.

  • Official Cloud API
  • Your own WhatsApp number
  • REST + OpenAPI 3.1
  • Signed webhooks
send-message.sh
curl -X POST https://flow.foxlyapps.com/v1/messages \
  -H "Authorization: Bearer $FF_KEY" \
  -H "Idempotency-Key: order-1042" \
  -d '{
    "channel_id": "chn_01JX…",
    "to": "+91 99999 99999",
    "type": "text",
    "text": { "body": "Order #1042 confirmed ✅" }
  }'

Today

Order #1042 confirmed ✅ We'll message you when it ships.10:42

Everything a production messaging integration needs

WhatsApp Business PlatformEmbedded SignupMessage templatesDelivery & read receiptsSigned webhooksIdempotency keysImages, video & documentsOpenAPI 3.1Per-key scopesAudit log
Features

The boring parts of messaging, already built.

Delivery tracking, retries, idempotency and webhook security are where messaging integrations break. FoxlyFlow ships them on day one.

Official WhatsApp Business Platform

Messages go through Meta's Cloud API on your own verified business number. No phones to keep online, no unofficial clients.

Every status, tracked

queued → sending → sent → delivered → read, or failed with a reason code. Query it or get it pushed.

Signed webhooks with retries

HMAC-signed events with timestamps against replays, retried with backoff and dead-lettered, never silently dropped.

Idempotent sends

Retry any request with the same Idempotency-Key and get the original message back. No double messages to customers.

Templates & the 24-hour window

Send approved templates to start conversations and free-form replies inside the window. Checked before sending, not after.

Media in and out

Images, video, audio and documents. Upload once, send by ID; inbound media is stored and ready when the webhook fires.

Scoped API keys

Keys per channel with read/write scopes, rotation with a grace period, and an audit trail of every change.

OpenAPI 3.1 contract

The spec is the source of truth. Generate a typed client in any language and try every endpoint in the API reference.

How it works

From zero to first message in three steps.

  1. 1

    Connect WhatsApp

    Sign in with Facebook through Meta's Embedded Signup, pick or create your WhatsApp Business Account and verify your number. About five minutes.

  2. 2

    Create an API key

    Generate a key scoped to the channel and register a webhook URL. Your signing secret is shown once.

  3. 3

    Send and receive

    POST to /v1/messages. Replies, receipts and status changes arrive on your webhook, signed.

Use cases

Messages customers actually want.

WhatsApp works best for timely, expected messages. That's what FoxlyFlow is built for.

Order confirmations

Confirm cash-on-delivery orders before they ship and cut fake orders and returns.

One-time passwords

Deliver login and checkout codes with authentication templates.

Delivery updates

Shipped, out for delivery, delivered: keep customers informed without calls.

Support conversations

Receive customer messages and reply from your own tools or helpdesk.

Selling on Shopify? No code needed.

Foxly COD, our Shopify app for cash-on-delivery, partial and prepaid orders, is adding WhatsApp order confirmations, OTPs and delivery updates powered by FoxlyFlow.

Explore Foxly COD
Developers

An API you can reason about.

Plain REST and JSON. Consistent errors with machine-readable codes. Cursor pagination. Rate-limit headers on every response. Nothing provider-specific leaks into your code.

  • Every webhook signed with HMAC-SHA256 and a timestamp
  • Automatic retries with backoff, then a dead-letter log
  • Request IDs on every response for tracing
  • Per-channel keys for agencies and multi-store setups

201 Created · POST /v1/messages

{
  "id": "msg_01JXZ4Q8…",
  "status": "queued"
}

POST https://your-app.com/webhooks/foxlyflow

X-FoxlyFlow-Event: message.received
X-FoxlyFlow-Signature: t=1760000000,v1=5257a8…

{
  "id": "evt_01JXZ5…",
  "type": "message.received",
  "data": {
    "channel_id": "chn_01JX…",
    "from": "919999999999",
    "type": "text",
    "text": { "body": "Yes, please deliver tomorrow" }
  }
}

Built for messaging people want, not spam.

FoxlyFlow follows the WhatsApp Business Messaging Policy by design. That protects your customers, and it protects your number's reputation.

  • Opt-in firstCustomers agree to hear from a business on WhatsApp before it messages them. Our terms require it.
  • Approved templatesBusiness-initiated messages use templates reviewed by Meta. We sync their status for you.
  • 24-hour windowFree-form replies only while a conversation is open. We block the rest before Meta rejects them.
  • Quality visibleYour number's quality rating and messaging limits are shown in the dashboard and API.
FAQ

Questions developers ask first.

Is FoxlyFlow an official WhatsApp integration?

Yes. FoxlyFlow connects to the WhatsApp Business Platform (Cloud API) operated by Meta. You connect your own WhatsApp Business Account through Meta's Embedded Signup, and messages are sent through Meta's official API.

Who pays for WhatsApp messages?

Meta bills message charges directly to your WhatsApp Business Account, based on Meta's published pricing. FoxlyFlow's own plan is separate. Free-form replies inside the 24-hour customer service window are free under Meta's pricing.

Can I message anyone?

No, and neither can anyone else on the platform. WhatsApp requires customers to opt in before a business messages them first, and business-initiated messages must use templates Meta has approved. FoxlyFlow checks the 24-hour window and template status before it sends, so you get a clear error instead of a silent rejection.

How do I know a message arrived?

Every message moves through queued, sending, sent, delivered and read (or failed with a reason code). Each change is available from the API and pushed to your signed webhook.

I sell on Shopify. Do I need to code?

No. Foxly COD, our Shopify app, is adding WhatsApp order confirmations, OTPs and delivery updates powered by FoxlyFlow. You'll connect WhatsApp from inside the app. FoxlyFlow's API is for developers who build their own integrations.

What about SMS, RCS and email?

They're coming soon. The API is provider-neutral, so SMS, RCS and email will use the same endpoints, statuses and webhooks as WhatsApp. See the Features page for what each channel will include.

Your next customer update could be a WhatsApp message.

FoxlyFlow is in early access. Tell us what you're building and we'll help you connect your number and send your first message.