Business WhatsApp API
Integration Made Simple
Connect your application to the official Business WhatsApp API in under 30 minutes. REST endpoints, webhook callbacks, sandbox testing, and ready-to-use SDKs — everything a developer needs to ship fast.
# Send WhatsApp message via Business API
import requests
# ── Config ──────────────────────────
API_URL = "https://api.quickmessage.in/v1"
API_KEY = "YOUR_API_KEY"
PHONE_ID = "YOUR_PHONE_NUMBER_ID"
# ── Send Template Message ────────────
response = requests.post(
f"{API_URL}/messages",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json={
"phone_number_id": PHONE_ID,
"to": "919310313545",
"type": "template",
"template": {
"name": "order_confirmed",
"language": {"code": "en"},
},
}
)
print(response.json())
# {"messages":[{"id":"wamid.abc123"}]}
Go Live in 4 Simple Steps
No complex infrastructure. No vendor lock-in. Just clean REST calls.
Create Meta App
Register on Meta for Developers, create a Business App and link your Facebook Business Manager account.
Get API Credentials
Obtain your Phone Number ID, WhatsApp Business Account ID, and generate a permanent Access Token from QuickMessage dashboard.
Configure Webhook
Set your HTTPS callback URL to receive incoming messages, delivery receipts, and read receipts in real time.
Send First Message
Use our sandbox to test, then go live. Send your first template message with a single REST API call.
Core REST Endpoints
Standard HTTP methods. JSON request/response. Bearer token auth.
Ready-to-Use Integration Code
Copy, paste, and ship. Available in Python, Node.js, and PHP.
"""
QuickMessage Business WhatsApp API — Python Client
Docs: https://quickmessage.in/docs/api
"""
import requests
from typing import Optional
# ── Constants ───────────────────────────────────────────
BASE_URL = "https://api.quickmessage.in/v1"
API_KEY = "YOUR_API_KEY" # from dashboard
PHONE_ID = "YOUR_PHONE_NUMBER_ID" # Meta phone number ID
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
def send_text(to: str, body: str) -> dict:
"""Send a plain text message."""
payload = {
"phone_number_id": PHONE_ID,
"to": to,
"type": "text",
"text": {"body": body},
}
res = requests.post(f"{BASE_URL}/messages", json=payload, headers=HEADERS)
res.raise_for_status()
return res.json()
def send_template(to: str, template_name: str, lang: str = "en",
components: Optional[list] = None) -> dict:
"""Send an approved template message with optional variable components."""
payload = {
"phone_number_id": PHONE_ID,
"to": to,
"type": "template",
"template": {
"name": template_name,
"language": {"code": lang},
"components": components or [],
},
}
res = requests.post(f"{BASE_URL}/messages", json=payload, headers=HEADERS)
res.raise_for_status()
return res.json()
# ── Usage example ───────────────────────────────────────
if __name__ == "__main__":
# Simple text
result = send_text("919310313545", "Hello from QuickMessage API! 👋")
print(result) # {"messages": [{"id": "wamid.xyz"}]}
# Template with variable
result = send_template(
to="919310313545",
template_name="order_confirmed",
components=[{
"type": "body",
"parameters": [{"type": "text", "text": "ORD-9876"}],
}],
)
print(result)
Receive Messages &
Delivery Events in Real Time
Configure a single HTTPS endpoint. QuickMessage pushes all incoming messages, delivery receipts, and read receipts to your server instantly — no polling required.
{
"object": "whatsapp_business_account",
"entry": [{
"id": "WABA_ID",
"changes": [{
"field": "messages",
"value": {
"messages": [{
"id": "wamid.abc123",
"from": "919310313545",
"timestamp": "1718500000",
"type": "text",
"text": {
"body": "Hello, I need support!"
}
}],
"statuses": [{
"id": "wamid.abc123",
"status": "read",
"timestamp": "1718500010",
"recipient_id": "919310313545"
}]
}
}]
}]
}
Business WhatsApp API Messaging Tiers
Limits auto-upgrade as your message quality rating improves.
| Tier | Unique Users / 24h | How to Upgrade | API Requests / sec | QuickMessage Default |
|---|---|---|---|---|
| Tier 1 | 1,000 | Send 1K+ msgs in 7 days | 80 req/s | Starter |
| Tier 2 | 10,000 | Send 10K+ msgs in 7 days | 80 req/s | Growth |
| Tier 3 | 100,000 | Send 100K+ msgs in 7 days | 80 req/s | Pro |
| Tier 4 | Unlimited | Approved by Meta directly | 80 req/s | Enterprise |
⚠️ Sending to users who haven't opted in will lower your quality rating and reduce your tier. Always follow Meta's opt-in guidelines.
Connect Business WhatsApp API
With Your Existing Stack
Common API Error Codes & Fixes
Technical Questions
Which HTTP methods does the Business WhatsApp API support?
The API is RESTful — POST for sending messages/creating templates, GET for status checks and listing templates, DELETE for removing media. All responses return JSON.
How do I verify webhook authenticity?
QuickMessage signs every webhook POST with an HMAC-SHA256 signature in the X-Hub-Signature-256 header. Compute the HMAC of the raw request body using your app secret and compare before processing.
Can I test without a real phone number?
Yes. Our sandbox environment provides a test phone number and a pre-approved test recipient. Use base URL https://sandbox.quickmessage.in/v1 with your sandbox API key.
What is the maximum message size?
Text messages: 4096 characters. Media files: images 5 MB, video 16 MB, audio 16 MB, documents 100 MB. Templates with variables follow Meta character limits per component.
How do I handle the 24-hour session window?
Once a user messages you, a 24-hour session opens — you can reply with any message type. Outside the window, use only approved templates. Track session expiry server-side using the message timestamp.
Are there official SDKs available?
We provide SDKs for Python (pip install quickmessage), Node.js (npm install @quickmessage/sdk), and PHP (composer require quickmessage/sdk). Community libraries exist for Go, Ruby, and Java.
What authentication method does the API use?
Bearer token authentication. Pass your API key in the Authorization: Bearer YOUR_KEY header. Tokens do not expire but can be regenerated from the dashboard. Never expose tokens client-side.
How do I send interactive button messages?
Set type to "interactive" and provide an interactive object with type "button" or "list". Buttons support up to 3 reply buttons; lists support up to 10 rows across multiple sections.
Start Building on
Business WhatsApp API Today
Free sandbox access · REST API + webhooks · Python, Node.js & PHP SDKs · 99.9% uptime SLA · Dedicated developer support.