Developer Resource Index

WhatsApp Business API Documentation: A Developer's Guide & Resource Index (2026)

The official WhatsApp Business API documentation lives at developers.facebook.com/docs/whatsapp . This page is a curated index and practical orientation to help developers navigate it — covering the Cloud API (the current, recommended implementation), webhook setup, message templates, authentication, conversation pricing, tier limits, and the most common API operations. We link out to Meta's official reference throughout.

Where Meta's Official Documentation Lives

Meta organises the WhatsApp Business Platform docs into four areas you will return to repeatedly.

Cloud API reference

The primary technical reference for sending and receiving messages, managing phone numbers, uploading media, and working with business accounts. The Cloud API is hosted by Meta; the legacy on-premises API is deprecated. Start here: Cloud API overview.

Webhooks reference

Subscribing to events (incoming messages, status updates, template status changes) and verifying webhook payloads. Covers the full event object schema: Webhooks setup and reference.

Message Templates guide

Submission, category rules, header/body/footer/button structure, variable formatting, and the review process: Message Templates.

Conversation pricing reference

Category definitions (Marketing, Utility, Authentication, Service) and per-country rate cards: Pricing.

Authentication

All Cloud API calls are authenticated with a System User Access Token generated in Meta Business Suite.

The recommended production pattern is a System User (not a personal user account) scoped to whatsapp_business_messaging and whatsapp_business_management permissions. Tokens can be set to never expire, which avoids the operational burden of 60-day user token rotation.

The access token is passed as a Bearer token in the Authorization header on every request. Meta's full authentication setup guide: Access Tokens — WhatsApp Business Platform.

Sending Messages

Messages are sent via a POST to the Graph API at the path /PHONE_NUMBER_ID/messages. The PHONE_NUMBER_ID is the identifier for the WhatsApp-enabled phone number in your Business Account, not the number itself.

Request shape (schematic):

POST https://graph.facebook.com/v19.0/{PHONE_NUMBER_ID}/messages
Authorization: Bearer {ACCESS_TOKEN}
Content-Type: application/json

{
  "messaging_product": "whatsapp",
  "to": "{RECIPIENT_PHONE_E164}",
  "type": "text",
  "text": {
    "body": "Your message body here."
  }
}

For template messages, replace "type": "text" with "type": "template" and provide a template object that names the approved template and supplies any variable values.

For media messages (image, document, video, audio), set the appropriate type and provide either a media_id (from a prior media upload) or a publicly accessible URL. Meta's full send-message reference: Send Messages.

Receiving Messages (Webhooks)

The Cloud API delivers inbound messages and status updates to your server via webhooks — there is no polling endpoint.

Setup steps:

  1. Register a publicly accessible HTTPS endpoint in your Meta App dashboard.
  2. Respond to Meta's verification GET request with the hub.challenge value.
  3. Verify each incoming POST using the X-Hub-Signature-256 header (HMAC-SHA256 of the raw request body, keyed with your App Secret).
  4. Return HTTP 200 within five seconds of receiving a webhook event; process asynchronously if your handler is slow.

Payload orientation: Each webhook delivery wraps one or more entry objects. Inside, changes[].value contains the event data. For inbound messages, messages[] holds the message object. For delivery and read receipts, look at statuses[]. Full reference: Webhooks.

Message Templates

Templates are pre-approved message structures required for any business-initiated message sent outside an open 24-hour service window.

Categories:

  • Marketing — Promotions, offers, product announcements. Highest per-conversation rate.
  • Utility — Transactional messages tied to an existing customer action: order confirmations, shipping updates, appointment reminders.
  • Authentication — One-time passcodes. Strictest content rules; no custom footers or marketing copy.

Submission and approval: Templates are created in Meta Business Suite (or via the Business Management API) and reviewed by Meta, typically within 24 hours. Approval is not guaranteed.

Variables use positional placeholders — {{1}}, {{2}} — that are filled at send time. Full templates guide: Message Templates.

Conversation Categories and Pricing

WhatsApp bills per conversation, not per message. A conversation is a 24-hour window opened by the first message in an exchange. Category determines the rate.

CategoryOpened byNotes
ServiceUserFirst 1,000 service conversations per month are free
UtilityBusinessTriggered by a customer action (order update, etc.)
MarketingBusinessPromotions, re-engagement
AuthenticationBusinessOTP delivery only

Rates vary by country. The per-country rate card is in Meta's pricing reference: Conversation Pricing.

Practical note: If a user messages you and you reply within the 24-hour window, that is a Service conversation — even if you send a template. Category is determined at the point the conversation window opens, not by message type.

Messaging Tier Limits

The API enforces limits on how many unique users you can message in a rolling 24-hour period. Tier progression is based on volume and phone number quality rating.

TierUnique users / 24h
Tier 11,000 unique users / 24h
Tier 210,000 unique users / 24h
Tier 3100,000 unique users / 24h
Tier 4Unlimited

New phone numbers start at Tier 1. Progression to higher tiers happens automatically when you consistently send high-quality messages at or near your current limit. Meta's tier documentation: Messaging Limits.

Rate Limits

Beyond conversation-level tier limits, the Graph API enforces HTTP-level rate limits per access token.

Best practices:

  • • Implement exponential backoff with jitter when you receive 429 or error code 130429 responses
  • • Queue outbound messages and send at a controlled rate rather than bursting
  • • For high-volume sends (campaigns, notifications), spread sends across time rather than firing all at once
  • • Monitor your error rate in Meta Business Suite's API health dashboard

Meta's rate limit reference: Rate Limits & Error Codes.

Hyperleap's REST API and Webhooks

Hyperleap is a Meta-authorised Business Solution Provider (BSP) and operates on the Cloud API. If you are building on top of Hyperleap rather than calling Meta's API directly, you interact with Hyperleap's own REST API and webhook system — which expose conversation data, lead records, and message events from your Hyperleap-managed WhatsApp number.

Hyperleap's API gives you programmatic access to conversation threads, contact details, lead pipeline stages, and CRM-level data. Webhooks fire on lead creation, new inbound messages, outbound replies, and conversation start events. Book a demo to walk through the integration options with the team, or see the integration patterns.

Common Operations — Quick Reference

OperationWhat you're doing
Send a template messagePOST to /messages with type: template and approved template name
Send a free-form replyPOST to /messages with type: text inside an open 24-hour window
Upload mediaPOST to /PHONE_NUMBER_ID/media to get a media_id before sending
Set up a webhookRegister your endpoint in Meta App dashboard; handle the verification handshake
Fetch business profileGET /PHONE_NUMBER_ID/whatsapp_business_profile
Mark message as readPOST to /messages with status: read and the message ID
List phone numbersGET /BUSINESS_ACCOUNT_ID/phone_numbers
Check template statusGET /BUSINESS_ACCOUNT_ID/message_templates

Common Gotchas

The 24-hour customer service window is strict

Once it closes, you cannot send free-form messages. You must use an approved template — no exceptions. Build your retry logic and template library before you need them.

Opt-in is your responsibility

Meta requires that recipients have actively opted in to receive messages from your business via WhatsApp. Opt-in must be explicit and documented. Sending to users without opt-in is a policy violation.

Template approval takes time

Plan for 24–48 hours minimum. In practice, rejections are common during initial rounds. Submit templates well before your launch date.

Webhook signature verification is mandatory

Always validate the X-Hub-Signature-256 header before processing events. Skipping this opens your endpoint to spoofed payloads.

Account quality rating affects everything

High block rates, spam reports, or sudden volume spikes can drop your quality rating, which lowers your tier limit and can flag your number for review.

Phone number IDs, not phone numbers

Most API calls use the internal PHONE_NUMBER_ID, not the E.164 formatted number. These are different values. Fetch your phone number ID from the Business Account API.

Meta's API Directly vs. a BSP — Which Should You Use?

Both are valid. The choice depends on what layer you want to own.

Calling Meta's Cloud API directly gives you full control, no middleware, and the lowest-cost path if you are building a custom integration. You handle webhook infrastructure, conversation management, contact records, and the UI layer yourself.

Using a BSP like Hyperleap adds a managed layer on top of the Cloud API: shared inbox, AI-powered response automation, lead management, multi-channel support (Website, WhatsApp, Instagram DM, Facebook Messenger), and your own REST API for accessing conversation data without managing the Meta API surface directly.

For a detailed breakdown: Cloud API direct vs. BSP — comparison.

Get Started with Hyperleap

Hyperleap runs on the Cloud API as a Meta-authorised BSP. Plans start at $40/month (Plus) and include WhatsApp as a native channel alongside Website, Instagram DM, and Facebook Messenger.

Frequently Asked Questions

Where is the WhatsApp Business API documentation?

The official documentation is hosted at developers.facebook.com/docs/whatsapp. The Cloud API reference — the current, recommended implementation — is at developers.facebook.com/docs/whatsapp/cloud-api. The legacy on-premises API is deprecated.

Is there an SDK for the WhatsApp Business API?

Meta does not publish an official end-to-end SDK. The API is a standard REST/JSON HTTP API that you can call with any HTTP client. Meta maintains a Node.js business SDK for Business Management API operations, but message sending and webhooks are handled with direct HTTP calls. Most BSPs (including Hyperleap) abstract this into their own SDK or API layer.

How do I authenticate to the WhatsApp Business API?

Use a System User Access Token generated in Meta Business Suite. The System User should have whatsapp_business_messaging and whatsapp_business_management permissions. Pass the token as a Bearer token in the Authorization header on every request.

How do I receive messages from WhatsApp?

Via webhooks. You register a publicly accessible HTTPS endpoint in your Meta App configuration, handle the verification challenge, and Meta delivers inbound message events as POST requests to your endpoint. There is no polling endpoint.

Where can I find example code for the WhatsApp Business API?

Meta's sample apps repository on GitHub contains reference implementations. Meta's own developer documentation includes HTTP request examples inline. For community examples, the Meta Developer Community forums and the WhatsApp Business API tag on Stack Overflow are the most active sources.

How do I read about message templates?

Meta's full templates guide — covering categories, variable formatting, header/body/button structure, and the approval process — is at developers.facebook.com/docs/whatsapp/message-templates. Template submission and management are done through Meta Business Suite or the Business Management API.

What is the Cloud API base URL?

The Graph API base URL for Cloud API calls is https://graph.facebook.com/. Most message and phone number operations use the path structure https://graph.facebook.com/v{VERSION}/{PHONE_NUMBER_ID}/messages. Check Meta's documentation for the current recommended Graph API version.

Is there a Postman collection for the WhatsApp Business API?

Meta does not publish an official Postman collection, but several community-maintained collections are available on the Postman public workspace. Alternatively, Meta's inline documentation examples can be imported into Postman or Insomnia directly using the provided curl examples as a starting point.

Related