Skip to content
399apps.com logo 399apps.com
WhatsApp

How to get your own WhatsApp Business API credentials

Short answer

Meta gives you four credentials. Your WhatsApp Business Account ID (WABA ID) and Phone Number ID are on the WhatsApp → API Setup page of your Meta app. Your permanent access token comes from Business Settings → System Users. Your App Secret is on App Settings → Basic. Paste all four into 399Apps, add the webhook URL back into Meta, and you are sending.

Updated 2026-07-14 · 399Apps · General GST information, not tax advice

Getting the four credentials: step by step

This is the direct route — you create the Meta assets yourself and own them. It takes about an hour of actual work; the rest of the 1–14 days is Meta’s verification queue, which nobody can shorten. No BSP is involved at any point, and nothing here is specific to 399Apps until the last step. If you use 399Apps and would rather not do this yourself, we do it for you free of charge, inside your own Meta Business account.

  1. 1

    Create a Meta Business account and start verification

    Go to business.facebook.com and create a Business account for your company (or use the one you already have). Start Business Verification straight away under Business Settings → Security Centre — it needs your registration certificate, a document showing your legal name and address, and usually a domain you control. This is the long pole: it typically clears in 1–3 working days, and nothing below goes live until it does.

  2. 2

    Create an app on Meta for Developers and add WhatsApp

    At developers.facebook.com → My Apps → Create App, choose the Business app type and link it to the Business account from step 1. Open the app, find WhatsApp in the product list and add it. Meta creates a WhatsApp Business Account (a WABA) under your business and attaches a free test number to it.

  3. 3

    Copy your WABA ID and Phone Number ID

    Open WhatsApp → API Setup inside the app. Two long numbers are on that screen: the WhatsApp Business Account ID (the WABA ID) and the Phone Number ID. The Phone Number ID is NOT your phone number — it is the numeric ID Meta assigns to that number, and pasting the phone number itself is the single most common setup mistake.

  4. 4

    Register a real business number Meta has never seen

    On the same screen, add your own phone number. It must not be active on consumer WhatsApp or on the WhatsApp Business app — if it is, delete that account first and wait for it to clear, or use a different number. Any Indian operator works, and a landline works if it can take a voice call. Meta verifies it by SMS or voice call. Once registered, copy the new Phone Number ID for that number; the test number’s ID is not the one you want in production.

  5. 5

    Set your display name and wait for approval

    Set the business display name customers will see in the chat header. Meta reviews it against your verified business name — a name that reads like a slogan or does not match your documents gets rejected, which costs you another review cycle. Keep it to your trading name.

  6. 6

    Create a System User and generate a permanent token

    Business Settings → Users → System Users → Add. Create an Admin system user, then Add Assets and give it your WhatsApp Business Account with full control. Now Generate New Token against your app, tick whatsapp_business_messaging and whatsapp_business_management, and set the expiry to Never. Copy the token immediately — Meta shows it exactly once.

  7. 7

    Copy your App Secret

    In the same app, go to App Settings → Basic and reveal the App Secret. This is a different thing from the access token: the token proves you may send, the App Secret proves that a message you receive genuinely came from Meta. Without it, an incoming STOP cannot be trusted, so opt-outs are ignored.

  8. 8

    Paste the four credentials into 399Apps

    Open the WhatsApp hub in your 399Apps account and enter the WABA ID, Phone Number ID, access token and App Secret. Hit Verify — that calls Meta’s phone-metadata endpoint and reads back your display phone number and verified name, so a green result means the credentials really work rather than merely that they saved.

  9. 9

    Give Meta the webhook URL so replies reach you

    The hub shows a webhook URL unique to your organisation. Paste it into Meta under WhatsApp → Configuration → Webhooks and subscribe to the messages field. This is what makes a customer typing STOP actually unsubscribe them, and what carries Meta’s delivery and read receipts back so your send reports are real rather than assumed.

  10. 10

    Send a test message

    Use the test send on the hub. It sends hello_world — the one template Meta pre-approves for every account — in en_US. Add the destination number to Test Recipients in your Meta dashboard first, or Meta rejects the send as "re-engagement window expired" and the failure looks like a credential problem when it is not.

Why go direct instead of through a BSP

Almost every guide to this subject is published by a Business Solution Provider, and they share one commercial interest: that you route your WhatsApp through them. The model is a monthly platform fee plus a markup on every message on top of Meta’s wholesale rate — entry plans in India commonly run from roughly ₹1,000 to ₹2,500 a month before a single message is sent, and the per-message markup on top is typically in the low double digits of a percent, sometimes far more.

That is why those same guides describe going direct as weeks of engineering work. It is not. The work above is an hour of form-filling plus Meta’s verification queue, and at the end you hold the assets: the WABA is in your Business account, the number is registered to you, and the token is yours to revoke. If you leave 399Apps tomorrow, your WhatsApp Business account stays exactly where it is.

  • • The WABA, the number and the templates belong to your Meta Business account, not to us
  • • Meta bills your business directly at Meta’s own published rates
  • • 399Apps takes no per-message cut and is not your BSP
  • • Revoking the token in Meta instantly cuts our access, with nothing to cancel on our side

The number is where most setups fail

Meta will not register a number that is currently in use on consumer WhatsApp or on the free WhatsApp Business app. This catches almost everyone, because the number a business wants to use is usually the number it has been messaging customers from for years.

You have two clean options. Delete the existing WhatsApp account on that number from inside the app (Settings → Account → Delete my account), wait for it to fully clear, then register it — you lose that chat history, so export anything you need first. Or register a second number for the API and keep the old one for one-to-one chat. Plenty of businesses run both deliberately: a human number for conversations and an API number for invoices, receipts and reminders.

  • • The number cannot be live on consumer WhatsApp or the WhatsApp Business app
  • • Deleting that account is irreversible and takes the chat history with it
  • • Any Indian operator works; a landline works if it can receive a voice call
  • • A number registered to the API can no longer be used in the normal WhatsApp app

Use a permanent System User token, not the one on the dashboard

The API Setup page offers a temporary access token right next to the IDs you need, and it is the obvious thing to copy. It expires in 24 hours. Paste that one and your integration works beautifully for a day and then stops, usually on a morning when you are billing.

The token that belongs in production is generated against a System User in Business Settings with the expiry set to Never, carrying the whatsapp_business_messaging and whatsapp_business_management permissions. Meta displays it once, so store it somewhere safe before you close the dialog. In 399Apps it is encrypted at rest and never shown back to you — the field stays masked, and leaving it blank when you edit anything else keeps the saved token untouched.

The App Secret is what makes opt-out work

It is tempting to skip the App Secret, because messages go out fine without it. They do — what breaks is everything coming back. Meta signs every inbound webhook with the App Secret, and without it we cannot tell a genuine STOP from a forged one, so we refuse all of them.

That matters more than it sounds. A forged STOP would suppress a real paying customer permanently and you would have no way to undo it, so the safe behaviour is to fail closed and ignore inbound entirely until the secret is set. The cost of that safety is real: a customer who types STOP and keeps receiving messages reports the number, and a reported number is how businesses lose WhatsApp access altogether.

  • • Without the App Secret, every inbound message is discarded — including STOP
  • • With it, STOP suppresses that contact and we send an acknowledgement back
  • • The same webhook carries delivery and read receipts, so send reports stop being guesses
  • • The App Secret is on App Settings → Basic, not on the WhatsApp screens

What it costs

The WhatsApp Business API connection is a free add-on included with any paid 399Apps subscription — there is no separate WhatsApp plan, no per-user charge and no monthly platform fee from us. Messages are billed by Meta, to your business, at Meta’s own published rates, on the payment method attached to your Meta Business account. We never see that bill and we take nothing from it.

Meta prices per template message and rates differ by category — utility and authentication messages (an invoice, a payment receipt, an OTP) cost a fraction of a rupee each in India, while marketing messages cost meaningfully more. Because there is no markup in between, the invoice you send a customer costs you what Meta charges for it and nothing else. Compare that to a platform fee plus a percentage on every message and the difference compounds with every bill you raise.

  • • The connection: free with any paid 399Apps subscription
  • • The messages: billed by Meta directly to you, at Meta’s rates
  • • 399Apps markup: none, on any message, at any volume
  • • Meta’s published rate card is the one to check before you budget — it changes

What WhatsApp will not let you do, whatever a vendor promises

These are Meta’s platform rules, not one vendor’s limitations, and a provider who implies otherwise is setting you up to lose your number. A business cannot start a conversation with free-form text. Anything you initiate has to be a template Meta approved in advance, and template review takes minutes to a day.

Free-form replies are allowed only inside the 24-hour window that a customer’s own message opens. Recipients must have given you their number in a context where messaging them is expected — uploading a scraped list is the fastest route to a blocked number. And opt-out is not optional: STOP has to work, which is exactly why the App Secret is part of the setup rather than a nice-to-have.

  • • Business-initiated messages must use a pre-approved template
  • • Free-form text only inside the 24-hour window a customer’s reply opens
  • • No cold broadcasting to numbers that did not opt in
  • • A high block rate lowers your quality rating and can cost you the number

You may not need the API at all

If all you want is to send a customer their invoice PDF from your own phone, the Cloud API is more machinery than the job needs. Every 399Apps account includes a wa.me quick send: pick the customer, the message is built in your browser, WhatsApp opens with it ready, you press send. No Meta account, no verification, no templates, nothing to set up — and nothing leaves your browser, because we never see the message.

The Cloud API earns its setup when sending has to happen without a human present: payment reminders that go out on schedule, receipts that follow a POS sale automatically, booking confirmations, delivery updates, or one message to two hundred customers. That is the line. If a person is going to tap send every time anyway, start with quick send and come back to this page when you outgrow it.

How 399Apps helps

The WhatsApp Business API connection is a free add-on on any paid 399Apps subscription — flat ₹399/month per app, unlimited users, prices exclude GST. You bring your own Meta WhatsApp Business account, Meta bills you directly for messages at its own rates, and 399Apps adds no markup on any of them. We also do the setup for you at no charge, in your own Meta Business account, so you still own everything. The wa.me quick send needs no setup at all and is included on every plan. Free for 14 days.

FAQ

Get your WhatsApp Business API credentials — frequently asked questions

Where do I find my WABA ID? +
On the WhatsApp → API Setup page inside your app at developers.facebook.com. The WhatsApp Business Account ID is the long number shown next to your WhatsApp Business Account on that screen. You only get one once you have added the WhatsApp product to a Business-type Meta app.
What is the difference between the Phone Number ID and my phone number? +
The Phone Number ID is a long numeric identifier Meta assigns to a registered number — it is not the number itself. Pasting the phone number into that field is the most common setup error, and it fails verification rather than failing silently, so you will know straight away.
Why does my access token stop working after a day? +
You used the temporary token on the API Setup page, which expires in 24 hours. Generate a permanent one instead: Business Settings → System Users → your system user → Generate New Token, with whatsapp_business_messaging and whatsapp_business_management ticked and the expiry set to Never.
Do I really need the App Secret? +
You need it to receive anything. Meta signs every inbound webhook with the App Secret, so without it we cannot distinguish a real STOP from a forged one and we ignore all inbound messages. Outbound sending works without it — opt-out and delivery receipts do not.
Can I use my existing WhatsApp Business number? +
On the route in this guide, only if you first delete the WhatsApp account on it. Meta will not register a number here that is live on consumer WhatsApp or the WhatsApp Business app, and deleting takes the chat history with it. Many businesses keep the old number for conversations and register a second one for the API instead. Meta’s coexistence mode, which keeps one number in the Business app and on the API, is onboarded only through Embedded Signup run by Meta’s partners and BSPs.
How long does the whole setup take? +
About an hour of your own work, and 1 to 14 days end to end. Nearly all of the wait is Meta’s queue — Business Verification usually clears in 1–3 working days, and display-name review is quick unless the name does not match your documents.
What does 399Apps charge for WhatsApp? +
Nothing. The WhatsApp Business API connection is a free add-on on any paid subscription, and there is no per-message markup. Meta bills your business directly for the messages you send, at Meta’s own rates, on your own Meta payment method — we never touch it.
Can 399Apps do this setup for me? +
Yes, free, for any paid 399Apps subscriber. We work inside your own Meta Business account on your behalf: start business verification, create the app, register the number, generate the permanent token and connect the webhook. The WABA, the number and the templates stay yours, and you can revoke our token at any time. Meta’s verification queue still takes its 1 to 14 days.
Do I need a BSP like Wati, Interakt or AiSensy? +
No. Those are resellers sitting between you and Meta, charging a monthly platform fee plus a markup on each message. This guide is the direct route: you create the Meta assets yourself, you own them, and 399Apps connects to them with credentials you can revoke at any time.
Who owns the WhatsApp Business account — me or 399Apps? +
You do. The WABA, the registered number and the approved templates all sit in your own Meta Business account. If you stop using 399Apps you revoke the token and everything stays exactly where it is, which is not true when a BSP owns the WABA on your behalf.
Try 399Apps

GST billing, returns & e-invoicing — done automatically

Nidhi Books raises GST-compliant invoices and prepares GSTR-1 and GSTR-3B exports, with unlimited users flat ₹399/month per app. Free for 14 days.