Reference · Living document

Glossary

The nomenclature Meta uses. Every lesson uses these terms exactly. When a term feels overloaded, this is the source of truth.

WhatsApp Business Platform
Meta's umbrella name for the programmatic (API-based) WhatsApp offering for medium/large businesses. Distinct from the free WhatsApp Business App (the phone app for small businesses).
Cloud API
The API you actually call to send/receive messages. "Cloud" means Meta hosts it (vs. the deprecated On-Premises API you self-hosted). This is the default and what you'll use.
WABA — WhatsApp Business Account
The container that owns an organisation's WhatsApp phone numbers, message templates, and quality rating. One org = one WABA (usually). Identified by a waba_id.
Phone Number ID
phone_number_id — the API handle for a specific business phone number inside a WABA. You send messages from a phone_number_id, not from the raw number. One WABA can hold several numbers.
Business Portfolio — formerly "Business Manager"
The Meta-level business entity that owns WABAs, apps, ad accounts, etc. Each org has its own portfolio; a WABA lives inside one.
Tech Provider — TP
A company (that's you) that builds software letting other businesses use the WhatsApp API. Tech Providers don't share a credit line — each customer pays Meta directly. Contrast with Solution Partner.
Solution Partner — SP
Like a Tech Provider but you also share your credit line and bill customers yourself (you pay Meta, they pay you). Higher bar to become one. Most SaaS start as Tech Providers.
BSP — Business Solution Provider
A vendor (360dialog, Twilio, Sinch…) that already did the hard integration and resells simplified access + onboarding. The "buy" option vs. integrating with Meta directly.
Embedded Signup — "the Connect button"
Meta's OAuth popup, launched by the Facebook JS SDK, that lets an org connect its own WABA + number to your app in a few clicks. Returns waba_id, phone_number_id, and an exchangeable token code — the org never handles a raw token.
System User — BISU: Business Integration System User
A non-human "user" that owns the access token your server uses to call the API on a customer's behalf. Embedded Signup mints a customer-scoped BISU token for each org.
Access Token
The credential your backend sends in the Authorization: Bearer header. From Embedded Signup you get a long-lived, customer-scoped token — store it encrypted, never in the browser or logs.
Template Message — HSM
A pre-approved message format (Meta reviews it) required for business-initiated messages — i.e. when you message a parent who hasn't messaged you in the last 24h. Your billing reminders and note updates are template messages.
24-Hour Customer Service Window
After a user messages the business, you may reply with free-form (non-template) messages for 24h. Outside it you must use an approved template. Automated outbound notifications are almost always outside the window.
Webhook
The HTTPS callback Meta POSTs to when messages are delivered/read or when a parent replies. You subscribe your app to each customer's WABA during onboarding.
App Review / Advanced Access
Meta's approval gate. To onboard real customers you need Advanced Access to whatsapp_business_management and whatsapp_business_messaging permissions, plus Business Verification of your company.
Twilio Subaccount
Twilio's multi-tenancy unit. On the Twilio path each customer org gets its own subaccount, and 1 subaccount = 1 WABA. You store the subaccount's SID + Auth Token (the token is the encrypted secret you send with).
Senders API — Twilio
Twilio API (POST /v2/Channels/Senders) to register/verify/manage a WhatsApp sender programmatically. Returns a sender SID starting XE; status goes CREATING → OFFLINE → ONLINE.
ContentSid — Twilio, HX…
Twilio's identifier for a template built in the Content Template Builder / Content API. Sent as ContentSid + ContentVariables (JSON {"1":…}). Approval is per-WABA, so map logical name → ContentSid per org.

← Lesson 01: The mental model

Terms feel fuzzy? Ask your teacher (me) to expand any entry with a concrete example from your app.