📱 WhatsApp Cloud API - Meta’s Official API
Configure WhatsApp Business using Meta (Facebook) official API. Two configuration methods: quick via Embedded Signup or manual with credentials.📋 Overview
WhatsApp Cloud API is Meta’s official solution for integrating WhatsApp Business:Embedded Signup
⚡ Automatic setup via Meta
✅ Recommended for beginners
✅ Recommended for beginners
Manual
🔧 Credential-based setup
✅ More technical control
✅ More technical control
✨ Official API Features
Capabilities
✅ Text Messages - Send and receive✅ Media - Images, videos, audio, documents
✅ Location - Share/receive location
✅ Contacts - Send vCard
✅ Templates - Pre-approved messages by Meta
✅ Interactive Messages - Buttons and lists
✅ Replies - Reply to specific message
✅ Reactions - Emoji reactions
✅ Indicators - Typing, read, delivered
Limitations
⚠️ 24-hour window: After 24h of customer’s last message, can only send approved templates⚠️ Templates: Need Meta approval (takes 1-24h)
⚠️ Message limits: Based on account quality rating
🚀 Method 1: Embedded Signup (Recommended)
Automatic setup in 3 clicks!Prerequisites
- Facebook Business account
- Be administrator of Facebook Business Manager
- Modern browser (Chrome, Edge, Firefox)
Step by Step
1
Access Create Inbox
- Go to “Settings” → “Inboxes”
- Click “Add Inbox”
- Choose “WhatsApp”
2
Choose Embedded Signup
- In provider list, select: “WhatsApp Business - Quick setup with Meta”
- Click “Continue”
3
Connect with Meta
- Click “Connect with WhatsApp Business”
- A Meta pop-up window will open
- Log in to your Facebook Business account
4
Authorize Access
- Select WhatsApp Business Account or create new
- Choose phone number or add new
- Authorize permissions:
- Manage messages
- Send messages
- Manage templates
- Click “Continue”
5
Automatic Configuration
Chatwoot automatically:
- ✅ Gets API credentials
- ✅ Configures webhook
- ✅ Registers phone number
- ✅ Syncs templates
6
Done!
✅ Inbox created successfully!Now you can:
- Add agents to inbox
- Start receiving messages
- Send approved templates
Embedded Signup Advantages
✅ Zero manual config: Everything automatic✅ Secure: OAuth2 via Meta
✅ Fast: Ready in 2 minutes
✅ Error-free: Correct credentials guaranteed
✅ Auto webhooks: Already configured
🔧 Method 2: Manual Configuration
For those who prefer full control or use custom systems.Prerequisites
- Meta for Developers account
- WhatsApp Business App created
- Verified phone number
Get Credentials from Meta
1
Access Meta for Developers
- Go to developers.facebook.com
- Login with your Facebook Business account
- Click “My Apps”
2
Create/Select App
Create new:
- Click “Create App”
- Type: “Business”
- App name: “Chatwoot WhatsApp”
- Contact email
- “Create App”
3
Add WhatsApp Product
- On app dashboard, search “WhatsApp”
- Click “Set up”
- Follow Meta’s setup wizard
4
Get Phone Number ID
- On sidebar: “WhatsApp” → “Getting Started”
- In “Send and receive messages” section
- Copy the Phone Number ID
5
Get Business Account ID (WABA ID)
- Still on WhatsApp page
- Look for “WhatsApp Business Account ID”
- Or go to “WhatsApp” → “API Setup”
- Copy the Business Account ID
6
Generate Access Token (API Key)
- Go to “WhatsApp” → “API Setup”
- “Temporary access token” section:
- Click “Generate token”
- ⚠️ Token expires in 24h - for testing only!
- Create System User in Business Manager
- Generate permanent token with permissions:
whatsapp_business_managementwhatsapp_business_messaging
- Store token securely!
7
Add Phone Number
- Go to “WhatsApp” → “API Setup”
- Click “Add phone number”
- Choose number:
- Use Meta’s test number (limited)
- Add your own number
- Verify number via SMS/Call
Configure in Chatwoot
1
Create Inbox
- “Settings” → “Inboxes” → “Add Inbox”
- Choose “WhatsApp”
- Provider: “WhatsApp Cloud - Quick setup via Meta”
2
Fill Credentials
Form:Inbox Name:Phone Number (E.164 format):Phone Number ID:Business Account ID:API Key (Access Token):
3
Create Inbox
- Click “Create WhatsApp channel”
- Wait for credential validation
- ✅ Inbox created!
Configure Webhook in Meta
Important: Without webhook, you WON’T receive messages!1
Get URL and Token from Chatwoot
- In Chatwoot, go to created inbox
- “Settings” → “Configuration” tab
- See “Callback URL” section:
2
Configure in Meta
- Back to Meta for Developers
- Your app → “WhatsApp” → “Configuration”
- “Webhook” section
- Click “Edit”
3
Add URL
Callback URL:Verify Token:Click “Verify and save”✅ Should show “Verified” in green
4
Subscribe to Events
In “Webhook fields” section, check:✅ messages - Received messages
✅ message_template_status_update - Template status
⚠️ account_alerts - Important alerts
⚠️ phone_number_quality_update - Number qualityClick “Subscribe”
✅ message_template_status_update - Template status
⚠️ account_alerts - Important alerts
⚠️ phone_number_quality_update - Number qualityClick “Subscribe”
5
Test Webhook
- Still in Webhook configuration
- Click “Test”
- Choose “messages”
- Click “Send”
📝 Create Message Templates
Templates are pre-approved messages to send outside 24h window.Create Template in Meta
1
Access WhatsApp Manager
- Go to business.facebook.com
- Select your WhatsApp Business Account
- Sidebar: “Messaging tools” → “Message templates”
2
Create New Template
- Click “Create template”
- Category:
- Marketing: Promotions, offers
- Utility: Order updates, reminders
- Authentication: OTP codes
- Name:
welcome_message(no spaces, use _) - Language: English
3
Compose Message
Header (Optional):Body (Required):Footer (Optional):Buttons (Optional):
- Call to Action (URL, Phone)
- Quick Reply
4
Submit for Approval
- Review template
- Click “Submit”
- Wait for approval: 1-24 hours
- 🟡 Pending: Awaiting review
- 🟢 Approved: Can use now!
- 🔴 Rejected: See reason
Use Template in Chatwoot
1
Sync Templates
- In Chatwoot, go to WhatsApp inbox
- “Settings” → “Templates”
- Click “Sync”
- Approved templates appear in list
2
Send Template
- Open conversation (can be > 24h inactive)
- In message box, click “Templates” (⚡ icon)
- Choose template from list
- Fill variables (ex: customer name)
- “Send”
🔍 Verify Configuration
Configuration Checklist
🚨 Common Issues
Not Receiving Messages
Cause 1: Webhook not configuredCannot Send
Cause 1: Outside 24h window💡 Best Practices
Operations
✅ Monitor webhook: Check logs regularly✅ Sync templates: Weekly or after creating new
✅ Account quality: Check status monthly
✅ Permanent token: Use System User, not temporary
Security
✅ Secure API Key: Don’t share, don’t commit to Git✅ Webhook HTTPS: Always use secure URL
✅ IP whitelist: Configure in Meta if possible

