WhatsApp Business API Setup Guide

Complete step-by-step guide for Meta Business Suite & Developer Console configuration

1. Overview & Requirements

The WhatsApp Business API allows businesses to send messages programmatically. This guide walks you through the complete setup process on Meta's platforms.

What You'll Need

Important URLs

đŸĸ
Meta Business Suite
https://business.facebook.com/
👨‍đŸ’ģ
Meta Developer Console
https://developers.facebook.com/
â„šī¸ Note The WhatsApp Business API is different from the WhatsApp Business App. The API allows programmatic access for sending messages from software like QBM.

2. Setting Up Meta Business Suite

Before you can use the WhatsApp Business API, you need a Meta Business account. This is where you'll manage your business assets including WhatsApp.

đŸĸ Open Meta Business Suite

2.1 Creating a Business Account

  1. Go to Meta Business Suite
    Visit https://business.facebook.com/ and log in with your Facebook account.
  2. Click "Create Account"
    If you don't have a business account, click the "Create Account" or "Create a Business" button.
  3. Enter Business Details
    • Business name (your official company name)
    • Your name (the admin's name)
    • Business email address
  4. Add Business Information
    • Business address
    • Phone number
    • Website URL
    • Business category/industry
  5. Submit and Confirm
    Review your information and click "Submit". Check your email to confirm the business account.

2.2 Verifying Your Business (Recommended)

Business verification unlocks higher messaging limits and builds trust. While optional for testing, it's required for production use.

  1. Go to Business Settings
    In Meta Business Suite, click Settings (gear icon) → Business Settings.
  2. Navigate to Security Center
    Click on Security Center in the left sidebar, then find Business Verification.
  3. Start Verification
    Click "Start Verification" and choose your verification method:
    • Domain verification: Add a meta-tag to your website
    • Document upload: Upload business registration documents
    • Phone verification: Verify via business phone
  4. Upload Required Documents
    Common accepted documents:
    • Business registration certificate
    • Trade license
    • Tax registration document
    • Utility bill with business name and address
  5. Wait for Approval
    Verification typically takes 2-5 business days. You'll receive an email notification.
âš ī¸ Important Business verification is required to send more than 250 messages per day. Complete this step before going live with production traffic.

3. Meta Developer Console Setup

The Developer Console is where you create the app that will access the WhatsApp API.

👨‍đŸ’ģ Open Developer Console

3.1 Creating a Meta App

  1. Go to Meta for Developers
    Visit https://developers.facebook.com/ and log in with the same Facebook account.
  2. Access My Apps
    Click on "My Apps" in the top navigation bar.
  3. Create New App
    Click "Create App" button.
  4. Select App Type
    Choose "Business" as the app type. This is required for WhatsApp API access.
  5. Enter App Details
    • App Name: e.g., "My Company WhatsApp"
    • App Contact Email: Your business email
    • Business Account: Select the business account you created earlier
  6. Create the App
    Click "Create App" and complete any security checks if prompted.

3.2 Adding WhatsApp to Your App

  1. Find WhatsApp Product
    In your app dashboard, scroll down to find "Add Products to Your App" section.
  2. Set Up WhatsApp
    Find "WhatsApp" in the product list and click "Set Up".
  3. Select Business Account
    If prompted, select or confirm your Meta Business Account to link with WhatsApp.

3.3 Configuring WhatsApp Settings

After adding WhatsApp, you'll see the WhatsApp configuration panel in the left sidebar.

  1. Access WhatsApp Settings
    Click WhatsApp → Getting Started in the left sidebar.
  2. Note Your App ID
    Your App ID is displayed at the top. Save this for reference.
  3. Find API Setup
    Click on WhatsApp → API Setup to access configuration options.
✅ Checkpoint At this point, you should have:
  • A Meta Business Account
  • A Meta Developer App with WhatsApp added
  • Access to the WhatsApp API Setup page

4. Phone Number Setup

You need a phone number to send WhatsApp messages. Meta provides a test number, but for production you'll need your own business number.

4.1 Adding a Phone Number

â„šī¸ Test vs Production Number
  • Test Number: Meta provides a free test number (limited to 5 recipient numbers)
  • Production Number: Your own business phone number (requires verification)

Option A: Using the Test Number (For Testing)

  1. Go to API Setup
    In Developer Console, go to WhatsApp → API Setup.
  2. Use Provided Test Number
    Meta provides a test phone number automatically. Note the Phone Number ID displayed.
  3. Add Test Recipients
    Click "Manage phone number list" to add up to 5 phone numbers you can message during testing.

Option B: Adding Your Business Number (For Production)

  1. Go to WhatsApp Manager
    In Meta Business Suite, go to All Tools → WhatsApp Manager.
  2. Click "Add Phone Number"
    Select your WhatsApp Business Account and click "Add Phone Number".
  3. Enter Phone Details
    • Select country code
    • Enter phone number
    • Choose display name for your business
    • Select business category
  4. Verify the Number
    Choose verification method (SMS or Voice Call) and enter the code received.

4.2 Getting Your Phone Number ID

The Phone Number ID is required for QBM configuration. Here's how to find it:

  1. Go to API Setup
    Developer Console → WhatsApp → API Setup
  2. Select Your Phone Number
    In the "From" dropdown, select your phone number.
  3. Copy Phone Number ID
    The Phone Number ID is displayed below the dropdown. It's a long number like 94718790514085.
Field Example Where to Find
Phone Number ID 94718790514085 WhatsApp → API Setup → below phone dropdown
Display Phone Number +971 50 123 4567 WhatsApp → API Setup → phone dropdown
WhatsApp Business Account ID 878476908007256 WhatsApp → API Setup → WABA ID section
âš ī¸ Important The Phone Number ID is NOT your actual phone number. It's an internal Meta identifier. Don't confuse the two!

5. Getting Your Access Token

The Access Token authorizes your application to send messages. There are two types of tokens.

5.1 Temporary Access Token (For Testing)

A temporary token is automatically generated and lasts for 24 hours. Good for initial testing.

  1. Go to API Setup
    Developer Console → WhatsApp → API Setup
  2. Find Temporary Access Token
    Look for the "Temporary access token" section. Click "Copy" to copy the token.
  3. Note Expiration
    This token expires in 24 hours. For production, create a permanent token.

5.2 Permanent Access Token (For Production)

For production use, you need a permanent token created via a System User. This token doesn't expire.

  1. Go to Business Settings
    Meta Business Suite → Settings → Business Settings
  2. Create System User
    Navigate to Users → System Users and click "Add".
    • Enter a name (e.g., "WhatsApp API User")
    • Select role: Admin
    • Click "Create System User"
  3. Assign Assets
    Click on your new system user, then click "Add Assets".
    • Select Apps tab
    • Find your WhatsApp app and toggle it on
    • Set permission to Full Control
    • Click "Save Changes"
  4. Assign WhatsApp Account
    Still in Add Assets:
    • Select WhatsApp Accounts tab
    • Toggle on your WhatsApp Business Account
    • Set permission to Full Control
    • Click "Save Changes"
  5. Generate Token
    Click "Generate New Token" on your system user.
    • Select your app from the dropdown
    • Set token expiration to "Never"
    • Select permissions: whatsapp_business_messaging, whatsapp_business_management
    • Click "Generate Token"
  6. Copy and Save Token
    IMPORTANT: Copy the token immediately! It's only shown once.
🔐 Security Warning
  • Never share your access token publicly
  • Don't commit tokens to version control (Git)
  • Store tokens securely (QBM encrypts them automatically)
  • If compromised, regenerate immediately

6. Creating Message Templates

Message templates are required to initiate conversations with customers. They must be approved by Meta before use.

6.1 Template Categories

Category Use Case Approval Time
Utility Order updates, appointment reminders, account alerts Usually within 24 hours
Authentication One-time passwords, verification codes Usually within 24 hours
Marketing Promotions, offers, newsletters May take longer, stricter review
â„šī¸ Recommendation For sending invoices and documents, use the Utility category. These templates are approved faster and have better delivery rates.

6.2 Creating a Template

  1. Go to WhatsApp Manager
    Meta Business Suite → All Tools → WhatsApp Manager
  2. Access Message Templates
    Click on Account Tools → Message Templates (or find it in the left menu).
  3. Create New Template
    Click "Create Template" button.
  4. Select Category and Name
    • Category: Select "Utility" for business documents
    • Name: Use lowercase with underscores (e.g., invoice_document)
    • Language: Select your primary language (e.g., English)
  5. Design Template Content
    • Header (Optional): Can be text, image, video, or document
    • Body (Required): Main message text with optional variables
    • Footer (Optional): Short footer text
    • Buttons (Optional): Call-to-action or quick reply buttons
  6. Add Variables (Optional)
    Use {{1}}, {{2}}, etc. for dynamic content:
    Hello {{1}},
    
    Your invoice #{{2}} for {{3}} is attached.
    
    Thank you for your business!
  7. Submit for Review
    Click "Submit" to send for Meta's approval.

6.3 Template Approval Process

Status Meaning Action
Pending Submitted, waiting for review Wait for Meta's review
Approved Ready to use Add to QBM settings
Rejected Doesn't meet guidelines Review rejection reason, edit and resubmit
Paused Temporarily disabled by Meta Check quality rating, may auto-resume

Sample Template for Invoices

Field Value
Name invoice_pdf
Category Utility
Language English (en)
Header Document (PDF attachment)
Body Hello {{1}}, please find your invoice attached. Thank you for your business.
Footer Powered by QBM

7. Webhook Configuration (Optional)

Webhooks allow you to receive real-time notifications about message delivery, read receipts, and incoming messages. This is optional for basic sending but required for the WhatsApp Chat feature in QBM.

â„šī¸ When Do You Need Webhooks?
  • Basic sending (invoices, documents): Webhooks NOT required
  • Two-way chat feature: Webhooks required
  • Delivery/read receipts: Webhooks required

Setting Up Webhooks

  1. Go to App Configuration
    Developer Console → Your App → WhatsApp → Configuration
  2. Configure Webhook URL
    Click "Edit" in the Webhook section.
    • Callback URL: Your server endpoint (e.g., https://your-server.com/webhook)
    • Verify Token: A secret string you create
  3. Subscribe to Webhook Fields
    Click "Manage" and enable:
    • messages - Incoming messages
    • message_status - Delivery and read receipts
  4. Verify and Save
    Meta will send a verification request to your URL. Your server must respond correctly.

8. Testing Your Setup

Before configuring QBM, test your setup directly from the Meta Developer Console.

  1. Go to API Setup
    Developer Console → WhatsApp → API Setup
  2. Select Phone Number
    Choose your phone number from the "From" dropdown.
  3. Enter Recipient
    In the "To" field, enter a phone number (must be in your test list if using test number).
  4. Select Template
    Choose an approved template from the dropdown.
  5. Send Test Message
    Click "Send Message" and check if the recipient receives it.
✅ Success Indicators
  • Message appears in recipient's WhatsApp
  • API response shows "messages": [{"id": "wamid.xxx"}]
  • No error messages in the response

9. Configuring QBM

Now that your Meta setup is complete, configure QBM with the information you gathered.

Information to Enter in QBM

QBM Field Where to Find Example
Phone Number ID Developer Console → WhatsApp → API Setup 94718790514085
Access Token System User token (Section 5.2) EAAxxxxxxx...
Template Name WhatsApp Manager → Message Templates invoice_pdf
Language Code Template settings en

Steps in QBM

  1. Open Options
    Go to File → Options or press Ctrl+O
  2. Navigate to WhatsApp
    Click Integrations tab → WhatsApp sub-tab
  3. Enable WhatsApp
    Check the "Enable" checkbox
  4. Enter Required Fields
    • Phone Number ID
    • Access Token
  5. Add Templates
    In the Templates grid, add your template name and language code
  6. Save Settings
    Click Save or press Ctrl+S

10. Troubleshooting

Common Issues

Error Cause Solution
Invalid OAuth access token Token expired or invalid Generate a new permanent token (Section 5.2)
Phone number not registered Recipient not on WhatsApp Verify recipient has WhatsApp installed
Template not found Wrong template name or not approved Check exact template name (case-sensitive) and approval status
Rate limit exceeded Too many messages sent Wait and retry; consider business verification for higher limits
Permission denied System user lacks permissions Verify system user has Full Control on app and WhatsApp account
Recipient not in allowed list Using test number with unlisted recipient Add recipient to test phone number list, or use production number

Still Having Issues?

11. Video Resources

Visual learners may find these video tutorials helpful. Search results are curated for the most relevant and up-to-date content.

💡 Tip When watching tutorials, look for videos from 2024 or later as Meta frequently updates their interface. Older videos may show outdated screens.

12. Quick Reference

Important URLs

Purpose URL
Meta Business Suite https://business.facebook.com/
Developer Console https://developers.facebook.com/
WhatsApp Manager https://business.facebook.com/wa/manage/
API Documentation https://developers.facebook.com/docs/whatsapp
Template Guidelines https://developers.facebook.com/docs/whatsapp/message-templates

Common Language Codes

Language Code
Englishen
English (US)en_US
English (UK)en_GB
Arabicar
Frenchfr
Spanishes
Hindihi
Portuguesept_BR

Checklist: Before Going Live