WhatsApp Business API documentation covers the REST API endpoints for sending messages, the webhook event schemas for receiving messages, the Cloud API authentication method (System User access token), template management, and the Catalog and Flows APIs. Get Click Media provides complete API documentation with code samples in Node.js, Python, PHP, and Java. The official Meta documentation is at developers.facebook.com/docs/whatsapp.
This page is the central reference for developers building on Get Click Media's WhatsApp Business API platform. It covers authentication, the core messaging endpoints, webhook event schemas, message type formats, and links to deeper technical guides for specific topics. Maintained by Get Click Media's API engineering team as an official Meta Business Solution Provider (BSP).
Authentication — How API Calls Are Authenticated
All API calls to Get Click Media's WhatsApp API require two headers:
Authorization: Bearer {GCM_API_KEY}
X-Phone-Number-ID: {PHONE_NUMBER_ID}
// GCM_API_KEY: your permanent API key from GCM dashboard
// PHONE_NUMBER_ID: your WhatsApp Business phone number identifier
// Both available in GCM dashboard > Settings > API Credentials
// Base URL for all API calls:
// https://api.getclickmedia.com/v2/whatsapp/
Core API Endpoints — Quick Reference
| Method | Endpoint | Description | Key parameters |
|---|---|---|---|
| POST | /messages | Send a WhatsApp message (template or session reply) | to (phone), type, template or text |
| POST | /messages/batch | Send bulk messages — campaign broadcast | recipients array, template, variables |
| GET | /messages/{id} | Get status and delivery events for a message | message_id path param |
| POST | /media | Upload media file for use in messages | multipart/form-data — file + type |
| GET | /media/{id} | Download previously uploaded media | media_id path param |
| GET | /contacts/{phone} | Check if phone number has WhatsApp | phone in E.164 format |
| GET | /templates | List all approved message templates | status filter optional |
| POST | /templates | Submit a new template for Meta approval | name, category, language, components |
| POST | /webhooks | Register or update webhook endpoint URL | url, events array |
| GET | /analytics | Get message delivery and campaign analytics | date_from, date_to, template_name |
| GET | /usage | Get monthly usage summary and conversation counts | month, year |
Message Types — Sending Different Content Formats
{
"to": "+919876543210",
"type": "text",
"text": { "body": "Thank you for contacting us. How can we help you today?" }
}
{
"to": "+919876543210",
"type": "template",
"template": {
"name": "order_shipped_v2",
"language": { "code": "en" },
"components": [
{
"type": "header",
"parameters": [
{ "type": "image", "image": { "link": "https://yourcdn.com/logo.png" } }
]
},
{
"type": "body",
"parameters": [
{ "type": "text", "text": "Priya" },
{ "type": "text", "text": "#ORD-4782" },
{ "type": "text", "text": "Blue Dart" },
{ "type": "text", "text": "BD123456789" }
]
},
{
"type": "button",
"sub_type": "url",
"index": 0,
"parameters": [
{ "type": "text", "text": "BD123456789" }
]
}
]
}
}
{
"to": "+919876543210",
"type": "interactive",
"interactive": {
"type": "button",
"body": { "text": "Your appointment is tomorrow at 10 AM. Confirm?" },
"action": {
"buttons": [
{ "type": "reply", "reply": { "id": "btn_confirm", "title": "Confirm" } },
{ "type": "reply", "reply": { "id": "btn_reschedule", "title": "Reschedule" } },
{ "type": "reply", "reply": { "id": "btn_cancel", "title": "Cancel" } }
]
}
}
}
{
"to": "+919876543210",
"type": "image",
"image": {
"link": "https://yourcdn.com/product-abc.jpg",
"caption": "Nike Air Max 270 — now available in Black. Rs 12,999. [Shop Now]"
}
}
Template Management — Submit and Track Approval
{
"name": "payment_reminder_v3",
"category": "UTILITY",
"language": "en",
"components": [
{
"type": "BODY",
"text": "Dear {{1}}, your EMI of Rs {{2}} is due on {{3}}. Pay now to avoid late charges.",
"example": {
"body_text": [["Rajan", "12,450", "30 June 2026"]]
}
},
{
"type": "BUTTONS",
"buttons": [
{ "type": "URL", "text": "Pay Now", "url": "https://pay.yourbank.com/{{1}}" }
]
}
]
}
// Template status values after submission:
// PENDING — Meta is reviewing
// APPROVED — Ready to use
// REJECTED — See rejection_reason field for details
// PAUSED — Quality score below threshold
SDK Quickstarts
| Language | Install command | Import |
|---|---|---|
| Node.js | npm install @getclickmedia/whatsapp-sdk | const { GCMClient } = require('@getclickmedia/whatsapp-sdk'); |
| Python | pip install gcm-whatsapp --break-system-packages | from gcm_whatsapp import GCMClient |
| PHP | composer require getclickmedia/whatsapp-php | use GetClickMedia\WhatsApp\Client; |
| Java | Maven: com.getclickmedia:whatsapp-sdk:2.0.0 | import com.getclickmedia.whatsapp.GCMClient; |
API Rate Limits and Throttling
| Plan tier | Messages per second | Daily conversation limit | Burst allowance |
|---|---|---|---|
| Starter | 10 messages/sec | 1,000 business-initiated conversations | 2x for 60 seconds |
| Growth | 100 messages/sec | 10,000 – 1,00,000 (tier based) | 3x for 60 seconds |
| Enterprise | 1,000+ messages/sec | Unlimited | Custom burst negotiated |
Rate limit response: the API returns HTTP 429 with a
Retry-Afterheader when a rate limit is exceeded. Implement exponential backoff: waitRetry-Afterseconds, then retry. Do not retry immediately on 429 — it causes cascading failures. Full detail in WhatsApp API rate limits.
Frequently Asked Questions — WhatsApp API Documentation
Where is the official WhatsApp API documentation? Meta's official WhatsApp Cloud API documentation is at developers.facebook.com/docs/whatsapp. Get Click Media's platform documentation — including GCM-specific endpoints, code samples in 4 languages, and integration guides — is available on this page. GCM documentation includes India-specific examples and use cases not covered in Meta's generic docs.
What is the difference between WhatsApp Cloud API and On-Premise API documentation? On-Premise API was deprecated by Meta for new accounts in 2023. All new WhatsApp Business Platform accounts use Cloud API. The Cloud API documentation (developers.facebook.com/docs/whatsapp/cloud-api) is the current reference. If you encounter older documentation referencing On-Premise API, it applies to legacy deployments only.
What programming languages does the WhatsApp API support? WhatsApp Business API is a REST API — it works with any programming language that can make HTTP requests. Get Click Media provides official SDKs for Node.js, Python, PHP, and Java. Community-maintained libraries exist for Go, Ruby, Kotlin, and other languages. Code samples in all four official languages are included in GCM's documentation.
How do I handle API errors in my integration?
All API errors return a JSON response with an error object containing: code (numeric error code), message (human-readable description), and type (error category). See the complete error code reference at WhatsApp API error codes. Implement specific handling for common codes: 429 (rate limit — backoff and retry), 400 (bad request — fix payload, do not retry), 131030 (template not approved — submit template first).
Get Started
Continue building with the full technical guide set: WhatsApp webhooks for receiving inbound events, WhatsApp API error codes for troubleshooting, WhatsApp API rate limits for scaling send volume, and WhatsApp API security before going to production.
Get WhatsApp Business API — Read API Docs · Get API Access · Talk to Technical Team
Frequently Asked Questions
Meta's official WhatsApp Cloud API documentation is at developers.facebook.com/docs/whatsapp. Get Click Media's platform documentation — including GCM-specific endpoints, code samples in 4 languages, and integration guides — is available on this page. GCM documentation includes India-specific examples and use cases not covered in Meta's generic docs.
On-Premise API was deprecated by Meta for new accounts in 2023. All new WhatsApp Business Platform accounts use Cloud API. The Cloud API documentation (developers.facebook.com/docs/whatsapp/cloud-api) is the current reference. If you encounter older documentation referencing On-Premise API, it applies to legacy deployments only.
WhatsApp Business API is a REST API — it works with any programming language that can make HTTP requests. Get Click Media provides official SDKs for Node.js, Python, PHP, and Java. Community-maintained libraries exist for Go, Ruby, Kotlin, and other languages.
All API errors return a JSON response with an error object containing code, message, and type. See the complete error code reference at WhatsApp API error codes. Implement specific handling for common codes: 429 (rate limit — backoff and retry), 400 (bad request — fix payload, do not retry), 131030 (template not approved — submit template first).




