Meta WhatsApp Business API for Salons — The Only Guide You Need
The technical and business side of the Meta WhatsApp Business API, explained for salon owners. What it is, what it costs, what paperwork you need, and what can go wrong.
The Meta WhatsApp Business API is what powers every serious WhatsApp booking bot — including SalonBooking's. It's also the single biggest point of confusion for salon owners setting up automated booking. This guide flattens that out.
If you just want to book clients and not read a 1,500-word backgrounder, skip to our WhatsApp setup guide. If you want to understand why some pieces ask for business documents and others don't, read on.
Three WhatsApp products, only one of which matters for bookings
Meta actually ships three different WhatsApp products for businesses:
- WhatsApp personal — what you have on your phone. You can't automate on top of this. Don't try.
- WhatsApp Business App — a free app that lets you add a business profile and quick replies. Still manual, no automation, single device.
- WhatsApp Business API / Cloud API — the one that powers bots. No phone app — it runs on Meta's servers and is accessed via HTTPS.
Everything in this guide is about #3. Salons that want automated booking need the Cloud API.
Cloud API vs On-Premises API
Meta originally shipped only the On-Premises API — you had to host and manage your own WhatsApp server. Painful. In 2022 they launched the Cloud API, which Meta hosts for you. The Cloud API is free to set up and is the default for all new integrations. Use it. Ignore anything online written before 2022 that tells you to "self-host WhatsApp."
What Meta requires from you
Four things, in rough order:
- Facebook/Meta Business account — free, 15 minutes. Business details, address, and a verified contact.
- A WhatsApp phone number — dedicated, not tied to personal WhatsApp.
- Display name approval — Meta reviews the business name shown in chat. Approval is fast (hours to a day) unless your name trips trademark or category flags.
- Business verification (for higher limits) — proof of business ownership. A utility bill or business registration document. You can skip this initially; you'll hit it when you exceed the unverified tier limits.
For a single salon, tiers usually look like: start unverified → ~1,000 business-initiated conversations/day → fine forever unless you're a chain.
Pricing, in plain English
Meta charges per conversation, not per message. A conversation is a 24-hour window opened either by a user message to you (user-initiated) or by a template you send first (business-initiated).
- User-initiated conversations: free. If your client messages "Hi, I want to book," the whole back-and-forth for the next 24 hours is free.
- Business-initiated conversations: a few cents each, varying by country. Reminders and follow-ups fall here.
- Free tier: Meta includes 1,000 free conversations/month across all types.
For most single-location salons, monthly WhatsApp cost is zero. For busy chains doing heavy reminder volume, budget $10–50/month.
Message templates and why they exist
You cannot send business-initiated messages freely — only pre-approved templates. This is Meta's spam defense. You submit the template ("Hi {{1}}, reminder: your appointment is at {{2}} tomorrow"), Meta approves it within hours, and you can then fire it with filled-in variables.
SalonBooking ships with a default reminder template you can submit from your admin panel. You'll need to submit it once per tenant phone number. Until it's approved, reminders silently fail — not great, but also not a hard error.
Common gotchas
"My number is already used with personal WhatsApp"
You need to either fully delete the personal account tied to that number (takes 90 days to fully recycle at Meta) or use a different number. Most salons just get a second SIM.
Webhook verification keeps failing
Meta's webhook verification calls your server with a hub.mode=subscribe query and expects the hub.challenge echoed back. If your server is behind basic auth, Cloudflare Under Attack mode, or any middleware that blocks unauthenticated GET requests, verification fails. Whitelist the webhook path.
"App Secret" confusion
Two tokens: the Access Token (used to send messages) and the App Secret (used to verify incoming webhook signatures). You need both. They live in different sections of the Meta dashboard, which is confusing.
Rate limits
Cloud API has a tier system: unverified accounts can message 250 unique users/day. Verified accounts start at 1K/day and scale. You almost never hit this for bookings — it's designed to stop marketers.
What SalonBooking does for you
- Stores your Access Token and App Secret encrypted in the database (Laravel
Crypton top of your app key). - Verifies inbound webhook signatures on every request (HMAC-SHA256 against your App Secret).
- Handles conversation state machines — clients picking services, times, workers, and confirming — without you writing a line of code.
- Provides a default reminder template ready to submit.
TL;DR
- Use the Cloud API, not On-Premises.
- Get a dedicated number.
- Most salons stay within the free 1,000-conversation tier.
- The setup is paperwork, not engineering.
Ready? Create your SalonBooking account and plug in your Meta credentials.