> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lazyapp.in/llms.txt
> Use this file to discover all available pages before exploring further.

# WhatsApp

> Send messages, manage templates and contacts, run broadcasts and flows — one API for WhatsApp Cloud.

LazyApp is WhatsApp-only. Everything in these docs — sends, webhooks, templates, platform customers — sits on Meta's WhatsApp Cloud API. You connect a WhatsApp Business Account (WABA) and phone number once; LazyApp holds credentials and gives you a stable REST surface.

Most teams start with [quickstart](https://docs.lazyapp.in/quickstart.md), then read [connecting WhatsApp](https://docs.lazyapp.in/guides/connecting-whatsapp.md) when they need console or platform onboarding.

## Quick reference

| What | LazyApp |
| - | - |
| Message types | Text, template, image, video, audio, document, sticker, location, contacts, reaction, interactive |
| Template required | Yes — outside the [24-hour window](https://docs.lazyapp.in/sending/messages.md#the-24-hour-window) |
| Upload limit | **16 MB** per file by default (`MEDIA_MAX_SIZE_KB`). Meta may refuse a type or size WhatsApp does not accept for that message kind |
| Scheduling | Yes — `send_at` on [`POST /v1/messages`](https://docs.lazyapp.in/sending/messages#scheduling) |
| Broadcasts | Yes — [template campaigns](https://docs.lazyapp.in/sending/broadcasts.md) with segments and caps |
| Inbox | Yes — [Inbox guide](https://docs.lazyapp.in/guides/inbox.md), conversations API, and console |
| Group chats | Meta-gated — [`GET /v1/capabilities`](https://docs.lazyapp.in/concepts/capabilities); see [Group chats](https://docs.lazyapp.in/guides/groups.md) |
| Flows | Yes — [Flows guide](https://docs.lazyapp.in/guides/flows.md). Disabled on [coexistence](https://docs.lazyapp.in/guides/connecting-whatsapp.md#whatsapp-business-app-coexistence) numbers |
| Calling | Meta-gated — check [`GET /v1/capabilities`](https://docs.lazyapp.in/concepts/capabilities) |
| Analytics API | No dedicated analytics endpoints |

Do not hard-code calling, block lists, or India payments. Ask [capabilities](https://docs.lazyapp.in/concepts/capabilities.md) per connection — Meta can flip flags without a deploy on your side.

## Before you start

> [!WARNING]
>
> WhatsApp requires a **WhatsApp Business Account (WABA)**, not a personal WhatsApp account.
>
> You need:
>
> * A Meta Business Portfolio ([business.facebook.com](https://business.facebook.com))
> * A WABA (created during Embedded Signup)
> * At least one phone number on that WABA
> * Approved [templates](https://docs.lazyapp.in/sending/templates.md) to start business-initiated conversations
> * Awareness of the **24-hour rule** — free-form replies only within 24 hours of the contact's last message; outside that window you must use an approved template

New numbers often start in Meta's **sandbox tier** (`TIER_250` — about 250 unique contacts per 24 hours). The limit rises automatically as messaging history and quality improve. Watch `messaging_limit_tier` and `quality_rating` on [capabilities](https://docs.lazyapp.in/concepts/capabilities.md) and the `phone_number.quality_changed` [webhook](https://docs.lazyapp.in/webhooks/events.md).

## In this section

> **[Sandbox](https://docs.lazyapp.in/guides/sandbox.md)**
>
> Test mode, claim a pool number, test recipients, webhook simulation

> **[Connecting WhatsApp](https://docs.lazyapp.in/guides/connecting-whatsapp.md)**
>
> Console Embedded Signup, platform setup links, coexistence, reconnect

> **[Messages](https://docs.lazyapp.in/sending/messages.md)**
>
> Every send type, the 24-hour window, scheduling

> **[Calling](https://docs.lazyapp.in/guides/calling.md)**
>
> Permission requests, call webhooks, and history — not a PSTN/SIP bridge.

> **[Phone numbers](https://docs.lazyapp.in/guides/phone-numbers.md)**
>
> Connect your own number, monitor quality and limits, recover from disconnects.

> **[Contacts & profile](https://docs.lazyapp.in/guides/contacts.md)**
>
> Upsert contacts, record consent, business profile via Meta proxy.

> **[Inbox](https://docs.lazyapp.in/guides/inbox.md)**
>
> List conversations, fetch messages, reply with POST /v1/messages.

> **[Group chats](https://docs.lazyapp.in/guides/groups.md)**
>
> Create groups and send with group\_id — capability-gated; no participant APIs yet.

> **[Templates](https://docs.lazyapp.in/sending/templates.md)**
>
> Create, submit for Meta review, sync status

> **[Media](https://docs.lazyapp.in/sending/media.md)**
>
> Upload, retention, Meta's \~30-day expiry

> **[Broadcasts](https://docs.lazyapp.in/sending/broadcasts.md)**
>
> Template sends to a segment with quiet hours

> **[Flows](https://docs.lazyapp.in/guides/flows.md)**
>
> Create, publish, send interactive forms — and collect submissions

> **[Verify](https://docs.lazyapp.in/sending/verify.md)**
>
> OTP send and check with fraud controls

> **[Webhooks](https://docs.lazyapp.in/webhooks/overview.md)**
>
> Signed delivery, retries, event catalogue

> **[Capabilities](https://docs.lazyapp.in/concepts/capabilities.md)**
>
> What each connected number supports today

> **[Media & limits](https://docs.lazyapp.in/reference/media-and-limits.md)**
>
> Upload caps, tiers, analytics, and common Meta error codes

> **[Build a platform](https://docs.lazyapp.in/platform/overview.md)**
>
> One workspace per customer, setup links, scoped keys

> **[WhatsApp rates](https://docs.lazyapp.in/billing/whatsapp-rates.md)**
>
> Meta's rates, billed to you by Meta. LazyApp adds 0%

> **[Migrate from Kapso](https://docs.lazyapp.in/migrating/from-kapso.md)**
>
> Keep Meta-shaped sends on the proxy, move webhooks and setup links

## Related endpoints

* [`POST /v1/messages`](https://docs.lazyapp.in/api-reference/messages/send-a-message) — send any message type
* [`GET /v1/templates`](https://docs.lazyapp.in/api-reference/templates/list-templates) — list and manage templates
* [`GET /v1/contacts`](https://docs.lazyapp.in/api-reference/contacts/list-contacts) — contacts in the workspace
* [`GET /v1/conversations`](https://docs.lazyapp.in/api-reference/conversations/list-conversations) — conversation threads
* [`POST /v1/broadcasts`](https://docs.lazyapp.in/api-reference/broadcasts/create-a-broadcast) — start a broadcast
* [`GET /v1/capabilities`](https://docs.lazyapp.in/api-reference/capabilities/list-connection-capabilities) — per-number features and limits
* [`POST /v1/platform/setup-links`](https://docs.lazyapp.in/api-reference/platform/create-a-setup-link) — hosted connect for your customers

## What we skip (Zernio-style)

| Zernio surface | LazyApp |
| - | - |
| Buy a phone number via API | Connect your own number through Embedded Signup |
| Headless `POST /connect/whatsapp/credentials` | Console onboarding only — no public credentials-paste API |
| Conversation-centric inbox create | Recipient-centric [`POST /v1/messages`](https://docs.lazyapp.in/sending/messages) |
| Sandbox sessions + reply activation | [Test mode + console sandbox](https://docs.lazyapp.in/guides/sandbox.md) |
| Full groups API (participants, join requests) | Partial — create/list/send only; see [Group chats](https://docs.lazyapp.in/guides/groups.md) |
| Click-to-WhatsApp conversion API | Not documented |
| Multi-network OAuth hub | WhatsApp only |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.