WhatsApp Cloud API

Meta app, permanent token, webhook and templates.

WhatsApp runs on the Meta Cloud API, on your own number and your own Meta app — not a shared gateway. Setup is the fiddliest of all the integrations, so do it in order.

What you need first

  1. A Meta Business account at business.facebook.com.
  2. A phone number not currently registered on WhatsApp. If it is on regular WhatsApp or WhatsApp Business, delete that account first — a number cannot be on both.
  3. A verified business, for higher sending limits. Start this early; it is a review.

Do not use your personal number. Once it is on the Cloud API you cannot use it in the normal WhatsApp app. Use a dedicated business number.

Creating the Meta app

  1. developers.facebook.com → My Apps → Create App → type Business.
  2. Add the WhatsApp product to it.
  3. Under WhatsApp → API Setup, add and verify your phone number.

Getting a permanent token

The token shown on the API Setup page expires in 24 hours. Use it to test if you like, but if you save it as your access token everything stops working tomorrow with no obvious cause. Create a System User token instead.

  1. business.facebook.com → Business Settings → Users → System Users.
  2. Create a system user with the Admin role.
  3. Add Assets → your app → full control.
  4. Generate New Token → select your app → permissions whatsapp_business_messaging and whatsapp_business_management.
  5. Set expiry to Never. Copy the token — it is shown once.

Entering it

Integrations → WhatsApp Cloud API:

FieldWhere it comes from
Phone number IDMeta → WhatsApp → API Setup. A long number, not the phone number itself.
Access tokenThe permanent System User token from above.
Business Account ID (WABA)Same page. Optional, but needed for templates.
Webhook verify tokenAny secret you invent. You paste the same value into Meta next.
App secretMeta App → Settings → Basic. Verifies inbound messages really come from Meta.

The webhook

  1. Meta App → WhatsApp → Configuration → Webhook → Edit.
  2. Callback URL: copy from the WhatsApp card in your store. It ends /webhooks/whatsapp/.
  3. Verify token: the same value you entered as "Webhook verify token".
  4. Verify and save. Meta calls your URL immediately to check it — if this fails, the token does not match or the URL is wrong.
  5. Subscribe to the messages field.

Templates

WhatsApp does not let you message someone out of the blue with free text. Anything you initiate must use a template approved by Meta.

  • Create them in Meta → WhatsApp → Message Templates.
  • Approval takes anywhere from minutes to a day. Get them approved before you need them — not on the morning of a sale.
  • Approved templates are pulled into your store with their variables detected.
  • Once a customer messages you, there is a 24-hour window in which you can reply freely.

Getting templates approved

  • Write them as genuine utility messages. Marketing dressed as an order update gets rejected.
  • Do not stuff them with variables — a template that is mostly placeholders looks like spam.
  • Match the category to the content: utility, marketing or authentication.

Testing it

  1. Press Test to confirm the credentials.
  2. Message your business number from your own phone. It should appear in the inbox within seconds — if not, the webhook is not working.
  3. Reply from the inbox and check it arrives.
  4. Send an approved template to yourself.

Sending limits and reputation

New numbers start on a low daily cap, which rises as you send without being blocked. Two things protect it: only message people who expect to hear from you, and keep marketing broadcasts infrequent. Blocks and reports drag your quality rating down, and recovering it is slow.

Still stuck? Message us on WhatsApp — we would rather answer than have you guess.