WhatsApp Business Account Setup
This is the complete end-to-end onboarding path for standing up a WhatsApp Business Account (WABA) on Orbit. Plan ~3–7 business days total if your documents are in order, longer if Meta requests changes.At a glance
- Verify your business on Meta Business Manager
- Choose a number (new vs. migrating an existing one)
- Connect through Orbit’s embedded sign-up flow
- Add + verify the phone number (SMS or voice code)
- Set your public display name + profile
- Submit display-name + at least one template for approval
- Pass the go-live gates (KYC, funded balance, messaging tier)
- Start sending
Before you start — what WABA verification actually requires
A WABA verification is Meta confirming three things: who you are (a real legal entity), where to reach you (a working website + business email), and which phone number speaks for you. Concretely, Meta’s reviewer checks:- Meta Business Manager verification — your registered legal entity matches uploaded documents (certificate of incorporation, tax ID, proof of address). This is a manual review.
- Website presence — a live domain with real content and a visible privacy policy. Placeholder pages, “Coming Soon” templates, and Notion links fail.
- Display name — must match the legal or trade name on your documents.
Document checklist
Have these ready before you touch the dashboard:
If you operate through a holding company or DBA, submit the documents of the legal entity that will own the WABA. Meta will deny a display name that doesn’t match.
Technical prerequisites
- A Facebook account (personal — you’ll be named an admin on the Business Manager)
- A phone number you control (SMS + voice) for the verification call. See Number procurement below for the choices.
- Admin access to the domain’s DNS (for privacy policy URL verification and for potential email deliverability requirements)
- An admin or owner role on the Orbit organization — the WABA connect surface is role-guarded:
settings/channels/whatsapp/add-wabais wrapped inRoleGuard allowedRoles={["owner","admin"]}(seeapps/web/src/app/[locale]/(dashboard)/settings/channels/whatsapp/add-waba/page.tsx).
Step 1 — Meta Business Manager verification
Meta Business Manager (business.facebook.com) is the identity layer for all WhatsApp access. Your business must be “verified” before you can publish a display name or raise messaging limits beyond the initial 250/day cap.- Create a Business Manager account at business.facebook.com if you don’t have one.
- Go to Settings → Security Center → Start Verification.
- Upload the documents from the checklist above. Meta does an OCR + manual review.
- Expect 1–3 business days. Rejection reasons we see most often:
- Display/trade name on the document doesn’t match what you typed.
- Document has been cropped or edited.
- Business website is a placeholder page or blank (put real content up first).
- No visible physical address on the document.
Step 2 — Number procurement
You have three realistic paths.A. Brand-new number from Orbit
Fastest. Buy a number from Orbit’s dashboard (Numbers → Buy), pick a country, and the number is available for WhatsApp within seconds. It can’t have been previously used on WhatsApp in the past 30 days (Meta’s cooldown) — Devotel’s inventory is WhatsApp-safe by default. Pick this when: you’re starting from scratch, don’t need carryover SMS / voice traffic.B. Bring an existing number you already own
You can use any number that:- Can receive SMS or a voice call (Meta sends the verification code one way or the other)
- Is not currently active on another WABA
- Has not been used on WhatsApp’s consumer app in the last 30 days — delete the WhatsApp consumer account and wait the cooldown if it was
C. Transfer from a competing CPaaS (porting)
See the dedicated BSP Transfer / Number Porting Guide. You keep the number, your templates, and (with some caveats) your quality rating.Step 3 — Connect through Orbit’s embedded sign-up flow
In the Orbit dashboard go to Settings → Channels → WhatsApp → Connect — the route is/settings/channels/whatsapp, and the connect walk-through lives at /settings/channels/whatsapp/add-waba (rendered by apps/web/src/app/[locale]/(dashboard)/settings/channels/whatsapp/add-waba/_components/add-waba-content.tsx, which mounts WhatsAppEmbeddedSignup for the Meta OAuth popup). Each step below maps to a shipped surface:
- Click Connect with Facebook. This opens Meta’s OAuth dialog inside a popup. The page keeps state if the popup closes, so a reload mid-flow is safe.
- Sign in with the Facebook account that has admin rights on your Business Manager, then pick the Business Manager to associate.
- Create a new WABA or select an existing one. If you’re porting, select the existing WABA — do not create a second one.
- Add the phone number (from Step 2) — covered in detail in Step 4.
- Choose the display name + upload the profile photo when the wizard asks for them. The display name must match your documents (Step 1 rules apply); the photo should be square, ≥ 640×640 px, PNG or JPG, your logo rather than a person’s face. Both can be edited later from Settings → Channels → WhatsApp → Profile, but the display-name change re-enters Meta review, so getting it right here saves days.
- The popup closes and you’re back on Orbit with the WABA in “connected” state.
Step 4 — Phone number add + verification code
Meta proves you control the number by sending a 6-digit code to it. You pick the delivery path in Meta’s wizard:- SMS — the code arrives as a text message. Default, fast inside the NANP (+1) zone.
- Voice call — the code is read aloud by an automated call. Outside the US, Meta’s verification SMS is frequently filtered or never delivered, so the dashboard surfaces a tip to pick “Phone call” when Meta asks how to send the code (the same voice fallback lives in
whatsapp-phone-verify.tsx). Voice is the reliable option for international numbers.
Step 5 — Display name + profile
Display name
The display name is what appears in users’ chat lists. It must match Meta’s display name guidelines:- Match your registered business name or a clearly associated consumer brand
- No generic names (“Support”, “Sales”)
- No all-caps / emojis / special characters beyond
.,&' - Minimum 3 characters
Profile fields
Also in Profile, set:- About — short tagline (< 139 chars)
- Description — up to 512 chars
- Category — pick the closest to your industry
- Address + Business hours
- Websites — up to 2
- Email — public-facing
Profile photo
Square, ≥ 640×640 px, no transparency. PNG or JPG. Your company logo, not a person’s face.Step 6 — First template: draft, submit, wait, send
All business-initiated conversations require pre-approved templates (utility, marketing, authentication, service). See the Restricted Content Policy for what Meta will reject. The write path and the monitoring path are both in the dashboard:- Draft + submit — Messages → Templates → New Template (route
/messages/templates; the submission callsPOST /api/v1/messages/templates). Pick a category — authentication / marketing / utility / service — the category drives pricing. Pick a language (separate submission per locale), write the body with named variables (Hi {{1}}, your order {{2}} shipped.), and optionally add a header, footer, or up to 3 buttons. Expected approval: 1–24 hours; most pass in minutes. - Track the approval — the Templates list at
/messages/templatesshows each template’s status (pending / approved / rejected). The WhatsApp quality page (/settings/channels/whatsapphealth tab) references this list alongside the phone-quality and messaging-tier tiles, so an approved-but-low-quality template is visible in the same place.
- Category mismatch — a marketing template submitted as utility
- Promotional content in an authentication template
- Missing variables where context is needed (“hi, thanks!” — thanks for what?)
- Language mismatch — body in Spanish but
language=enselected - Formatting errors — unpaired
*bold*markers, rogue\n
Step 7 — Go-live gates
A connected WABA with an approved template still can’t send at volume until these gates pass:Messaging limits
New WABAs start with a 250 unique-recipients-per-24h cap. Limit tiers:
Quality must stay Medium or Green. Hitting Low freezes tier progression; staying “Low” for 7 days drops you a tier.
Failure matrix — the four most common stuck states
Worked example — end-to-end, URL by URL
A typical first WABA on this dashboard, start to first send:business.facebook.com→ Settings → Security Center → Start Verification — upload the document checklist. (Do this first; it runs in the background while you set everything else up.)/numbers/buyin the Orbit dashboard — pick a country, buy the number you’ll use./settings/channels/whatsapp— click Connect, which deep-links into the connect walk-through at/settings/channels/whatsapp/add-waba(owner/admin role required).- In the popup: sign in to Facebook, pick your Business Manager, Create a new WABA, add the number from step 2.
- Enter the 6-digit code — if the SMS doesn’t land within a minute, cancel and resend as Phone call.
- Set the display name and upload the 640×640 profile photo in the wizard.
- Back on Orbit:
/settings/channels/whatsappnow shows the connection; open the Profile section and fill About / Description / Category / Websites / Email. /messages/templates→ New Template — draftwelcomein the right category and language, submit via the Templates API.- Wait for the Templates list to flip
welcometo approved (usually minutes to hours). - Check the go-live gates:
/settings/channels/whatsapp→ Health tab — messaging tier shows in tile form; confirm billing has a payment method attached in the Meta Business Manager. - Send the first template message with
POST /api/v1/messages/whatsapp(cURL above), or from the dashboard’s WhatsApp workspace at/messages/whatsapp.
Approval timelines summary
If any step exceeds the worst case by more than 48 hours, email whatsapp-support@devotel.io with your WABA ID and we’ll escalate with Meta.
Common first-week mistakes
- Starting marketing blast before Business Verification completes — you’ll hit the 250/day cap and think something is broken.
- Submitting display-name with a DBA not on your incorporation docs — denied.
- Shared inboxes on
@gmail.com— Meta flags consumer email domains. - Privacy policy hosted on a free Notion page or a “Coming Soon” template — denied at display-name review.
- Using a number that was a personal WhatsApp account yesterday — 30-day cooldown.
Troubleshooting
OTP never arrives
OTP never arrives
Switch the verification method from SMS to voice call in the embedded flow — outside the US, the voice fallback is the reliable path (the dashboard’s phone-verify screen recommends it directly). Some carriers strip 6-digit codes in transit. If your account has two-step verification, Meta also asks for your PIN — make sure it’s the one you set in the WhatsApp app, not the 6-digit OTP.
Number 'already registered' error
Number 'already registered' error
The number is on another WABA or still on the WhatsApp consumer app. Delete the consumer account from the WhatsApp mobile app’s Settings → Account → Delete My Account, wait 30 days, retry. Or migrate via the BSP Transfer flow.
Display name rejected repeatedly
Display name rejected repeatedly
Shift to “Trade Name” variant on Meta Business Manager → Settings → Business Info, and add documentation proving the trade name is yours. Then resubmit.
Templates stuck 'pending' > 24h
Templates stuck 'pending' > 24h
Usually Meta’s policy backlog. Open a ticket in Orbit with the template name + category; we escalate directly.
Sends fail with billing errors right after connect
Sends fail with billing errors right after connect
The WABA has no payment method attached on its Meta Business Manager — Meta bills each WABA per conversation directly. Attach a card in Business Manager → Billing settings, then retry. See WhatsApp billing troubleshooting.