This is the complete step-by-step guide to generating WhatsApp API credentials — from creating your Meta Developer app all the way to getting a permanent Access Token that never expires. By the end you will have everything you need to connect WhatsApp to n8n, Make.com, Zapier, or any other automation platform.
Here is exactly what you will have when you finish:
- Phone Number ID — identifies the WhatsApp number sending messages
- WhatsApp Business Account ID (WABA ID) — your business account identifier
- Permanent System User Access Token — never expires, safe for automations
- App ID & App Secret — needed for webhooks and some platforms
Part 1 — Create a Meta Business Account
Everything in the WhatsApp Business API lives under a Meta Business Account. If you already have one, skip to Part 2.
- Go to business.facebook.com and log in with your personal Facebook account.
- Click Create Account in the top left.
- Enter your business name, your name, and your business email address.
- Follow the prompts to confirm your email. Your Meta Business Account is now created.
Your Meta Business Account is the umbrella that holds your WhatsApp Business Account, your phone numbers, your apps, and your system users. Keep all of these under the same Business Account.
Part 2 — Create a Meta Developer App
- Go to developers.facebook.com and log in.
- Click My Apps → Create App.
- When asked for a use case, select “Other” then click Next.
- Select “Business” as the app type, then click Next.
- Fill in:
- App name — anything you like, e.g. “WhatsApp Automation”
- App contact email — your email
- Business Account — select the Meta Business Account you created in Part 1
- Click Create App. Meta may ask you to re-enter your Facebook password.
You are now inside the app dashboard. Make a note of your App ID — you will find it at the top of the page or under App Settings → Basic. You will also find your App Secret there (click Show). Save both.
Part 3 — Add WhatsApp to Your App
- Inside your app dashboard, scroll down the left sidebar and find Add a Product.
- Find WhatsApp in the list and click Set Up.
- Select your Meta Business Account when prompted and click Continue.
- Meta adds WhatsApp to your app. You will land on the WhatsApp → Getting Started page.
On this page you will immediately see:
- A temporary Access Token (valid 24 hours — do not use this for automations)
- A free test phone number provided by Meta
- Your Phone Number ID
- Your WhatsApp Business Account ID
Copy all four values and save them somewhere. The Phone Number ID and WABA ID are permanent — only the token changes. Use the JSON formatter to store and inspect these values cleanly as you work through setup.
Part 4 — Add a Real Phone Number
Meta’s free test number works only for development and has limits on who you can message. For production automations you need a real phone number.
- In the left sidebar go to WhatsApp → API Setup.
- Under the “From” section, click Add Phone Number.
- Enter your business display name — this is what recipients see when you message them. It must match your actual business name.
- Select your business category and add a brief description.
- Enter the phone number you want to use. Important rules:
- The number must not already be registered as a personal WhatsApp account
- It can be a mobile or landline number
- If it is currently a personal WhatsApp account, you must delete that account first
- Verify the number via SMS or voice call.
Your new phone number now has its own Phone Number ID. Use this ID (not the test number’s ID) in all your automation tools.
Part 5 — Create a Permanent System User Token
This is the most important step. The temporary token shown on the Getting Started page expires every 24 hours — that breaks any automation overnight. A System User Token never expires.
Step 5a — Create the System User
- Go to Meta Business Settings (business.facebook.com/settings).
- In the left sidebar, click Users → System Users.
- Click Add.
- Enter a name (e.g., “n8n Automation Bot”) and set the role to Admin.
- Click Create System User.
Step 5b — Assign the App to the System User
- Click Add Assets on the system user you just created.
- Select Apps from the asset type list.
- Choose your WhatsApp app from the list.
- Toggle on Full Control / Manage App.
- Click Save Changes.
Step 5c — Generate the Permanent Token
- Back on the System Users page, click Generate New Token next to your system user.
- Select your WhatsApp app from the dropdown.
- Set the token expiry to Never.
- Under permissions, enable these two:
whatsapp_business_messagingwhatsapp_business_management
- Click Generate Token.
- Copy the token immediately — Meta only shows it once. If you lose it, you have to generate a new one.
Store this token securely like a password. This is the value you will paste into every automation tool.
Part 6 — Your Final Credentials Summary
At this point you should have all four credentials. Here is where to find each one if you need to look them up again:
| Credential | Where to Find It |
|---|---|
| Phone Number ID | Meta Developer App → WhatsApp → API Setup → “From” section |
| WABA ID | Meta Developer App → WhatsApp → API Setup → “Business Account ID” |
| Permanent Access Token | Meta Business Settings → Users → System Users → Generate New Token |
| App ID | Meta Developer App → App Settings → Basic |
| App Secret | Meta Developer App → App Settings → Basic → Show |
Part 7 — Connect to n8n, Make.com, and Zapier
Connecting to n8n
- In your n8n workflow, add a WhatsApp Business Cloud node.
- Click Create New Credential.
- Paste your Access Token and Business Account ID (WABA ID).
- Click Save.
- In the node configuration, enter your Phone Number ID in the “From Phone Number ID” field.
n8n supports sending text messages, template messages, media (images, documents, audio), and receiving incoming messages via the WhatsApp Trigger node. For the trigger, paste your n8n webhook URL into Meta Developer App → WhatsApp → Configuration → Callback URL, and enter a Verify Token string of your choice.
Connecting to Make.com
- In your Make scenario, add a WhatsApp Business Cloud module.
- Click Create a connection.
- Enter your Phone Number ID and paste your permanent Access Token.
- Click Save — Make verifies the connection instantly.
For incoming message triggers in Make, you will also need your App Secret (for webhook signature verification) and a Verify Token you create yourself. Set the webhook URL in Meta Developer App → WhatsApp → Configuration.
Connecting to Zapier
- In Zapier, search for WhatsApp Business and add the action step.
- Click Connect a new account and enter your Access Token and Phone Number ID.
- For tools or Zap actions without a native WhatsApp module, use Zapier’s Webhooks by Zapier → POST action and call the Meta API directly:
POST https://graph.facebook.com/v19.0/{phone_number_id}/messages Authorization: Bearer {your_access_token} Content-Type: application/json
Other Automation Platforms
The same credentials work in any tool that supports HTTP requests or has a WhatsApp integration:
- Pabbly Connect — uses Phone Number ID + Access Token, same as Make.com
- ActivePieces — has a native WhatsApp Business Cloud piece, same credentials
- Pipedream — use the WhatsApp component or HTTP request step
- Custom code (Python, Node.js) — call
graph.facebook.com/v19.0/{phone_number_id}/messageswith a Bearer token header
Part 8 — Sending Your First Message via API
Test that everything is working with a quick cURL command. Replace the placeholders with your actual values:
curl -X POST https://graph.facebook.com/v19.0/YOUR_PHONE_NUMBER_ID/messages -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"messaging_product": "whatsapp",
"to": "1234567890",
"type": "text",
"text": { "body": "Hello from my automation!" }
}'
A successful response returns a JSON object with a messages[0].id. Use the JSON formatter to read and validate the response body if it is hard to parse in your terminal.
Frequently Asked Questions
Why does my Access Token keep expiring?
You are using the temporary User Access Token from the Getting Started page. That token is tied to your personal Facebook login session and expires after 24 hours. Follow Part 5 of this guide to generate a System User Token with the expiry set to “Never” — that is the one you should use in all automations.
Do I need to pay for the WhatsApp Business API?
Meta provides 1,000 free user-initiated conversations per month. Beyond that, pricing is per conversation and varies by country — see Meta’s pricing page for current rates. The API access itself is free; you only pay for conversations above the free tier.
Can I use my personal WhatsApp number for the API?
No. A number registered as a personal WhatsApp account cannot be used for the Business API simultaneously. You would need to delete the personal account first. Most people use a dedicated SIM card or a VoIP number for their API setup.
What is the difference between a template message and a regular message?
WhatsApp enforces a 24-hour messaging window. If a customer messages you first, you can reply freely for 24 hours. After that window closes, you can only send pre-approved Message Templates. Create templates in Meta Business Manager → WhatsApp Manager → Message Templates. Templates must be approved by Meta before use — approval usually takes a few minutes to a few hours.
My API call returns error 131030 — what does that mean?
Error 131030 means the recipient’s phone number is not a valid WhatsApp account, or the number is not formatted correctly. Always use full international format with country code and no special characters — for example 14155552671 for a US number, not +1 (415) 555-2671. You can use the URL encoder to safely encode phone numbers when building query strings.
You Are Ready to Automate WhatsApp
With your Phone Number ID, WABA ID, and a permanent System User Access Token set up, you can connect WhatsApp to any automation tool and start building workflows. n8n, Make.com, Zapier, and dozens of other platforms all support the WhatsApp Business Cloud API using exactly these credentials.
As you build your automations, keep the JSON formatter handy to inspect and debug API responses — it makes reading WhatsApp API output significantly faster.