Get your WhatsApp Business API from Meta — step by step
From zero to a permanent token in about 20 minutes: business portfolio, developer app, adding and verifying your number, the System User token, App ID and secret — with the fix for every error Meta throws.
9 min readUpdated 14 Sep 2026
In this guide
Before you start — what you need
Most connection problems come from missing one of these, so check the list first.
A number NOT on WhatsApp
A mobile number that is not currently on the WhatsApp app or WhatsApp Business app. With this manual setup a number works on the app OR on the API, not both (Meta offers a newer coexistence option that keeps both, but only inside certain partner sign-ups this platform does not use yet). To reuse a number, delete its WhatsApp account in the app first (Settings → Account → Delete my account), then wait 10 minutes.
A Facebook account
Meta's business tools sit behind a normal Facebook login. Use the owner's account — it becomes the admin of the business portfolio.
Business details
Business name (as customers know it), address, category. GST certificate / CIN / a utility bill are only needed later, for verification and higher limits.
A card or UPI for Meta
Meta bills template messages (offers, order updates) per message. Replies to customers inside 24 hours are free even without a payment method.
The map — five Meta things and how they fit
- 1Business portfolioThe company that owns everything (business.facebook.com).
- 2Developer appA container for API access (developers.facebook.com).
- 3WhatsApp Business AccountCreated inside the app — holds your numbers and message layouts.
- 4Phone numberYour business number, verified by SMS/call, with a display name.
- 5System User + tokenA robot user whose permanent token your dashboard uses to send and receive.
Step 1 — Create a Meta Business Portfolio
Open Business Settings
Go to business.facebook.com/settings and sign in with the owner's Facebook account. If you already see a business name at the top-left, you have a portfolio — skip to Step 2.
Create the portfolio
Tap Create a business portfolio → business name → your name → work email → Create. Meta may ask you to confirm the email; do it now, it unlocks the next steps.
Step 2 — Create a developer app and add WhatsApp
Create the app
Open developers.facebook.com/apps → Create App. Use case: Other → app type: Business → app name (your business name is fine) → contact email → business portfolio: pick the one from Step 1 → Create.
Add the WhatsApp product
On the app dashboard scroll to WhatsApp → Set up. Meta creates a WhatsApp Business Account for you with a free test number (+1 555…). It can only message 5 phones you list — good for a first test, useless for customers.
The API Setup page you land on shows a temporary access token. Don't use it in your dashboard — it dies in 24 hours and the connection would silently stop. Step 4 makes a permanent one.
Step 3 — Add and verify your business number
Add the number
WhatsApp → API Setup → Add phone number. Fill the business profile: display name (must match your business — Meta reviews it), category, description, website. Then the phone number itself.
Verify by SMS or call
Choose SMS or voice call, type the 6-digit code. If the number is still on the WhatsApp app you'll get an error here — delete the WhatsApp account in the app first (see “Before you start”).
Note where the IDs live (you may not need to type them)
Under the number you'll see Phone number ID and WhatsApp Business Account ID — long 15–16 digit numbers. Your dashboard's connect wizard finds these by itself from your token, so you usually never type them. They're here if you ever need them.
Do this
- Copy the 15–16 digit Phone number ID when a form asks for it
- Use a display name that matches your shop signboard / GST name
- Keep the number free of the WhatsApp app while it is on the API
Not this
- Paste your phone number (98765 43210) where an ID is asked — Meta rejects it as 'does not exist'
- Use the +1 555 test number for real customers
- Type a display name with 'official', 'verified' or all capitals — reviews fail
Step 4 — Make a permanent access token (the important one)
A System User is a robot account inside your business portfolio. Its token never expires and keeps working even if you change your Facebook password.
Create the System User
Open business.facebook.com/settings/system-users → Add → name it “whatsapp-api” → role Admin → Create.
Give it access to your app AND your WhatsApp account
Select the system user → Add assets → Apps → tick your app → Full control → Save. Then again Add assets → WhatsApp accounts → tick your WhatsApp Business Account → Full control → Save.
Generate the token
Generate new token → pick your app → Token expiration: Never → tick whatsapp_business_messaging and whatsapp_business_management → Generate. Copy it immediately — Meta shows it once. It starts with EAA and is about 200 characters long.
Skipping Step 2 is the #1 connection failure. Without the WhatsApp account assigned to the system user, Meta answers “Object does not exist, cannot be loaded due to missing permissions” for a perfectly correct ID. The fix is always: Add assets → WhatsApp accounts → tick → Full control, then generate the token again.
Step 5 — Copy the App ID and App secret (recommended)
With these two values your dashboard can set up the webhook for you (no Meta screens), confirm every incoming message is genuinely from Meta, and let you upload image or PDF headers for message layouts. Two numbers on one Meta app? Add the App ID and App secret on both — or at least on the one you connected last — so both numbers' messages arrive.
Find them
App dashboard → App settings → Basic. The App ID is the number at the top; App secret → Show → copy (32 characters). Keep the secret private — your dashboard stores it encrypted.
Step 6 — Connect in your dashboard
Open WhatsApp → I already have a WhatsApp API account. Paste the token; the wizard checks it with Meta, shows whether it's permanent, and lists your numbers — pick yours. Add the App ID and secret if you copied them. Tap Connect. You'll see a checklist: number verified, webhook set up (or the paste-in steps), registration, token. Then send yourself a test.
If the wizard says…
After connecting — verification, name, limits, green tick
Add a payment method to Meta
business.facebook.com/billing_hub → add a card or UPI. Without it, template messages (offers, order updates) are refused with “Business eligibility payment issue”.
Verify the business (raises your daily limit)
Business Settings → Security centre → Start verification → upload a GST certificate, CIN or a utility bill in the business name. A new business can message 250 people a day first (people outside their 24-hour reply window); the limit then climbs to 2,000 → 10,000 → 100,000 → unlimited by itself while quality stays good, and verifying the business lifts it. The limit is shared by every number in your Meta business.
Display name review
WhatsApp Manager → Phone numbers → your number. The name must match your business; Meta reviews it in hours. A declined name usually contains “official”, all capitals, or a brand you don't own.
Green tick (Official Business Account) — optional
WhatsApp Manager → your number → Profile → Request official business account. Needs a verified business and a recognisable brand; most local businesses don't need it and are not held back without it.
Questions people ask at this stage
Can I use my current WhatsApp Business app number?
Only after removing it from the app: WhatsApp app → Settings → Account → Delete my account. Wait 10 minutes, then add it in Step 3. Your chat history in the app doesn't move — export it first if you need it. Most shops keep the app number and put a second number on the API.
Is the API paid?
Getting it is free. Meta bills per template message you start (roughly ₹0.12 for order updates, ₹0.86 for marketing, in India); replies inside 24 hours of a customer's message are free. Your dashboard shows a running estimate of the Meta bill so nothing surprises you.
What is the webhook everyone mentions?
It's the address Meta delivers customer messages and read receipts to. If you gave your App ID and secret in the wizard, it's set for you. Otherwise Settings shows the exact address and verify token to paste under WhatsApp → Configuration in your app, plus the three fields to subscribe.
Where do I get the API key?
WhatsApp doesn't have an “API key” — the equivalent is the permanent access token from Step 4. If a tutorial says API key, it means that token.
I did everything and Meta still says the number does not exist.
Nine times out of ten the system user wasn't given the WhatsApp account (Step 4.2). Add the asset with Full control, generate a new token, and use the wizard's “find my numbers” step — if your number appears in the list, you're done.
It connected, but every message fails with “You do not have the necessary permissions to send messages”.
Your token can read the number but isn't allowed to send from it: the system user that made the token has the WhatsApp permissions, but not this WhatsApp account with Full control. Making a new token the same way fails the same way. Open the system user → Add assets → WhatsApp accounts → tick the account your number belongs to → Full control → Save (Step 4.2), then generate a new token for that user and paste it in Settings → Reconnect. Messages that were waiting in a paused broadcast go out when you press Resume.
Next: How the WhatsApp hub works · Templates & broadcasts · Auto-replies, menus & drips.
More in CRM, WhatsApp & AI
Did this answer your question?
It takes one tap and it genuinely changes what we write next.