How to Set Up WhatsApp Business API: A 2026 Guide
A practical, step-by-step guide to setting up the WhatsApp Business API in 2026 — from Meta verification to your first outbound message.
DMHub Team
DMHub Team
The WhatsApp Business API unlocks broadcast campaigns, AI agents, chatbots, and automation at scale. The regular WhatsApp Business app caps you at 256 contacts per broadcast and requires a human to respond to every message.
Here is exactly how to set up the API in 2026.
What You Need Before You Start
- A Meta Business Manager account (free — business.facebook.com)
- A phone number not currently registered on any WhatsApp account (a new SIM or a landline works)
- A business website or Facebook page (Meta verifies these)
- A BSP (Business Solution Provider) account — or a platform like DMHub that handles this for you
Note: Meta requires Business Verification for most API features. The process takes 2-5 business days. Plan accordingly.
Step 1: Create or Access Your Meta Business Manager
Go to business.facebook.com and either log in with an existing account or create a new one.
Your Business Manager is the parent container for everything: your phone number, Facebook page, and API access. Keep this account secure — losing access means losing your WhatsApp API number.
Step 2: Complete Business Verification
In Business Manager, go to Business Settings > Business Info > Security Center, then click Start Verification.
You'll need:
- Legal business name (must match government records)
- Business address and phone number
- A document proving the business exists: tax certificate, utility bill, business license, or bank statement
Meta usually reviews within 2-5 days. If rejected, they provide a reason — fix it and reapply.
Common rejection reasons:
- Document name doesn't exactly match the Business Manager name
- Website is too thin (no About page, no contact info, no product description)
- Business address is a PO Box
Step 3: Add a WhatsApp Business Account (WABA)
Inside Business Manager, go to Accounts > WhatsApp Accounts > Add.
A WhatsApp Business Account (WABA) is the Meta-side container for your phone number. One WABA can hold multiple phone numbers, but you typically start with one.
Step 4: Add and Verify Your Phone Number
Go to your WABA settings and click Add Phone Number.
Enter the number you want to use. Meta will send a verification code via SMS or voice call. Enter it and your number is registered.
Important: The number must not be registered on personal WhatsApp or WhatsApp Business App. If it is, migrate it first.
After verification:
- Set your display name (this appears to customers in their chat)
- Set your business description, category, and website
- Upload a profile picture (square, at least 500×500px)
Display names must comply with Meta's policy — no generic terms like "WhatsApp Business" or trademarked names you don't own. Approval takes 1-3 days.
Step 5: Connect to a BSP or Platform
Meta doesn't give you a direct API endpoint to call. You connect through a BSP (Business Solution Provider) — companies Meta has certified to route API traffic.
You have two paths:
Path A: Direct API via Meta Cloud API Meta now hosts the API themselves (free). You get API credentials and call graph.facebook.com/v20.0/{phone_number_id}/messages directly. You need to handle webhook verification, rate limits, message status callbacks, and template management yourself.
Path B: Use a platform (recommended for most businesses) Platforms like DMHub abstract the API complexity. You connect your WABA, and the platform handles webhook routing, message queuing, rate limit management, template submission, and delivery tracking.
For most SMBs, Path B saves weeks of engineering work.
Step 6: Submit Your First Message Templates
The WhatsApp API distinguishes between two types of messages:
- Session messages — replies to inbound messages within a 24-hour window. No approval required.
- Template messages — outbound messages (campaigns, order updates, appointment reminders). Must be pre-approved by Meta.
Templates go through a review process (usually 30 minutes to 24 hours). Structure a template like this:
`` Name: order_confirmation Language: en_US Category: TRANSACTIONAL Body: Hi {{1}}, your order #{{2}} has been confirmed. Expected delivery: {{3}}. Footer: Reply STOP to opt out ``
Template categories:
MARKETING— promotional messages. These now incur a per-conversation fee.UTILITY— transactional (order updates, appointment reminders). Lower fee.AUTHENTICATION— OTP codes. Lowest fee.
Meta charges per conversation (24-hour window), not per message. Fees vary by country — typically $0.01-0.15 per conversation depending on region and category.
Step 7: Configure Webhooks
Webhooks deliver inbound messages and status updates (sent, delivered, read, failed) to your server.
In Meta App Dashboard, add a webhook URL pointing to your server (or your platform's webhook URL if using a BSP). Select events:
messages— inbound messagesmessage_deliveries— delivery receiptsmessage_reads— read receiptsmessaging_handovers— handoff between bots and humans
Your webhook endpoint must:
- Respond to GET with the
hub.challengevalue for verification - Respond to POST within 20 seconds
- Return HTTP 200
Step 8: Send Your First Message
Test with a session message (reply to someone who messaged you first):
``bash curl -X POST \ "https://graph.facebook.com/v20.0/{PHONE_NUMBER_ID}/messages" \ -H "Authorization: Bearer {ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "messaging_product": "whatsapp", "to": "{{RECIPIENT_PHONE}}", "type": "text", "text": { "body": "Hello from DMHub!" } }' ``
A 200 OK with a messages.id in the response means it worked.
Common Gotchas
| Problem | Cause | Fix | |---------|-------|-----| | Template rejected | Name too generic or promotional language | Rewrite with neutral language, resubmit | | Webhook not verifying | Wrong challenge response | Echo back hub.challenge as-is | | Message not delivered | Recipient hasn't opted in | Only message opted-in contacts | | 130429 error | Rate limited | Implement exponential backoff | | 100 error | Phone not registered | Re-verify your number |
Quality Rating and Limits
WhatsApp tracks your message quality. If customers block your number or report spam, your quality drops from Green → Yellow → Red. At Red, your number can be suspended.
Quality affects your messaging limits:
- Tier 1: 1,000 conversations/day
- Tier 2: 10,000/day
- Tier 3: 100,000/day
- Tier 4: Unlimited
You move up tiers by maintaining high quality and volume over time.
Using DMHub vs. Building It Yourself
If you're a developer comfortable with REST APIs and webhook management, the direct Meta Cloud API is free and powerful.
If you're a business owner who wants to send campaigns, set up AI agents, and track analytics — DMHub connects your WhatsApp Business Account in one click and handles all of the above. The Meta Embedded Signup flow takes under 5 minutes.
Questions about WhatsApp API setup? Talk to our team — we set up hundreds of accounts every month.
Related articles
Ready to automate your customer communication?
Start free — set up your WhatsApp AI in under 10 minutes.
Get started free