The WhatsApp Business Platform is the most powerful — and most misunderstood — messaging channel available to developers today. 2 billion active users, end-to-end encryption, and rich interactive components. But it has rules that catch most developers off guard. This guide covers everything you need to know before you send your first message.

The two message types

WhatsApp draws a hard line between template messages and session messages. Template messages are pre-approved notifications you can send to anyone who has opted in — order confirmations, shipping updates, OTPs. Session messages are free-form replies you can send within a 24-hour window after a user messages you first.

Most developers start with templates. Here's the shape of a template message through Wasika:

bash
curl -X POST https://api.wasika.dev/v1/messages \
  -H "Authorization: Bearer wsk_live_••••" \
  -d '{
    "channel": "whatsapp",
    "to": "+14155550142",
    "template": "order_shipped",
    "variables": {
      "customer_name": "Ada",
      "order_id": "#A-8821",
      "eta": "Thursday, May 8"
    }
  }'

Template approval

Templates must be approved by Meta before use. Approval typically takes a few minutes for straightforward utility templates (OTPs, shipping updates) and up to 24 hours for marketing templates. Wasika's dashboard includes a template manager where you can submit, track, and version templates without touching the Meta Business Suite directly.

Interactive components

WhatsApp supports buttons (up to 3 reply buttons or a URL + call button), list messages (up to 10 items), and media headers (image, video, document). These map to Wasika's components field and dramatically improve engagement rates compared to plain text — especially for order tracking and support flows.

Opt-in and compliance

You must obtain explicit opt-in before sending template messages. This is a hard requirement — accounts that send to non-opted-in numbers get flagged quickly and risk suspension. Store opt-in records with timestamps and source (web, app, IVR) and make them queryable — Meta can ask for them during quality reviews.