Set up WhatsApp Business API
In this guide you'll learn step by step how to connect the WhatsApp Business Cloud API with BitPalm.
Create Meta Business Portfolio & enable 2FA
If you don't have one yet, create a Meta Business Portfolio and a Facebook Developer Account.
The Developer Account must be linked to your Business Portfolio.
Important: enable two-factor authentication
Since 2025 Meta refuses any Cloud API access if 2FA is not active on the Business Portfolio. Enable 2FA before doing anything else, otherwise setup will fail later without a useful error message. Go to Business Portfolio → Security Center → Two-Factor Authentication.
New App in the Meta App Dashboard
Go to developers.facebook.com/apps and click on "Create App".
- Select the use case "Connect with customers through WhatsApp"
- Choose an app name (e.g. "MyCompany WhatsApp Bot") and your business email
- Select your Business Portfolio (or create one)
This use case is the correct path since the 2025 Meta update. The old "Business type" still shows up in places, but it gets stuck for WhatsApp setup in several spots.
Verify the WhatsApp product is attached
If you picked the right use case in step 2, the WhatsApp product is already added. Otherwise, click "Add Products" in the left menu and select "WhatsApp".
Then follow the quickstart wizard. It drops you straight into the API Setup area, which is where the next steps happen.
Test number first, then register your own
Under WhatsApp > API Setup you'll find a free test phone number. The Phone Number ID is displayed directly below it.
The test number only works for up to 5 pre-defined recipients. It exists so you can run through the full setup once before going live.
For live use: register your own phone number
On the same API Setup page, click "Add phone number" and enter your real business number. Meta sends a confirmation code via SMS or call. You then need to set a 6-digit PIN for the number's two-step verification. Without this PIN, any later re-registration fails. Note the PIN down somewhere safe, you don't need it often, but it is mandatory when re-registering.
The number must not be signed into the WhatsApp app on a device at the same time. If it is, sign out there first or delete the number from the WhatsApp app. For customers who want to keep using the WhatsApp Business app in parallel, see the Coexistence note below.
Coexistence: keep using the WhatsApp Business app in parallel
Since May 2025 Meta allows a number to operate in the WhatsApp Business app and the Cloud API at the same time. Chats sync between both (up to 6 months of history on first connect). Useful when staff want to keep chatting from a phone while BitPalm handles automated replies and lead capture in parallel.
Important: Coexistence only works through the Embedded Signup flow, not the manual setup in this guide. BitPalm is evaluating Embedded Signup, let us know if you need it. Coexistence is currently not available in the EU, UK, Australia, Japan, Nigeria, Philippines, Russia, South Korea, South Africa, or Turkey. It works in the UAE and most other markets. Throughput cap: 5 messages per second, enough for most inbound use cases.
Generate Permanent Access Token
The temporary token on the API setup page expires after 24h and is not suitable for production. For a permanent token:
- Go to Business Settings → Users → System Users
- Create a new System User with Admin role (it represents your integration, not a person)
- On the System User, click "Add Assets" and assign the WhatsApp account + app with Full Control
- Then click "Generate New Token"
- Select your app and exactly these permissions: whatsapp_business_messaging & whatsapp_business_management
The asset assignment step gets skipped most often. If the token generates fine but sending later fails with "insufficient permissions", this step is almost always the cause.
Choose Verify Token
The Verify Token is any string you define yourself. It's used to verify the webhook.
Choose a secure, random string. It must be identical in the Meta Portal and the BitPalm Dashboard.
Configure Webhook URL
Go to WhatsApp > Configuration > Webhook and enter the following URL:
Enter the same value as your Verify Token from step 6.
Subscribe to Webhook Fields
After webhook verification, you need to subscribe to the relevant fields. Click "Webhook fields" and enable: "Manage":
This allows BitPalm to receive incoming WhatsApp messages from your customers.
Find your WABA ID (optional)
The WhatsApp Business Account ID (WABA ID) is needed if you want to sync and send message templates. If you only need basic text messaging, you can skip this step.
- Open Meta Business Suite → WhatsApp Accounts
- Select your WhatsApp Business Account from the list.
- The WABA ID is displayed in the URL bar and on the account overview page. It's a numeric ID.
You can also find it in the Meta Developer Portal under your app → WhatsApp → API Setup → WhatsApp Business Account ID.
Enter in Dashboard & Test
Open your BitPalm Dashboard, navigate to Channels > WhatsApp and enter:
- Phone Number ID from step 4
- Access Token from step 5
- Verify Token from step 6
- WABA ID (optional) from step 9
Click "Save" and send a test message to your WhatsApp number. Your agent's response should appear within a few seconds.
What Meta charges for messages
The WhatsApp Business API bills through Meta, not BitPalm. Meta switched the pricing model on July 1, 2025: away from the old conversation-based billing, over to per-delivered-template-message rates. Service messages (replies to chats the visitor started, within 24h) are completely free, no quota, no cap. Marketing, Utility, and Authentication messages are billed per message. The exact price depends on the recipient's country. Rates differ about 10x between cheap markets like India or Brazil and premium markets like the US, Germany, UK, or UAE.
Service messages (visitor writes first)
When a visitor messages your bot first and the bot replies within a 24h window. This will be about 95% of your traffic.
Completely free. No quota, no cap.
Marketing messages (you write first)
Pre-approved promotional templates that you start yourself (re-engagement, offers, announcements). This is the most expensive category. Templates need Meta approval, which takes 24 to 48 hours.
Utility messages
Transactional templates (order updates, appointment reminders, account alerts). Cheaper than marketing.
Authentication messages
OTP and login codes. Lowest paid rate, made for one-time-password use cases.
Billing runs through the credit card on your Meta Business account. Invoiced monthly. Check the official WhatsApp pricing page for current per-country rates and to estimate your monthly cost.
BitPalm doesn't add any markup on Meta's WhatsApp costs. What Meta bills you, you pay.
Business Verification: when it kicks in
A freshly registered number starts at Tier 1 with a limit of 1,000 conversations per 24h. As long as you stay below that, no formal verification with Meta is needed. Once you regularly exceed it, or you want your own Display Name (instead of the generic placeholder) approved, Meta requires Business Verification with a trade license, commercial registration, or your country's equivalent. The review goes through Meta and usually takes a few days. Good to know before scaling, not a blocker for launching.