Drawing 1 · Interactive
Should you integrate directly? Work it through
Question 1 · up to 4
Whose WhatsApp numbers will your app manage?
Your answers
None yet — pick an answer to start down the tree.
Path map
Depth 0 of up to 4. Circles are questions, squares are outcomes.
All possible outcomes (4)
Go direct
Your Meta app, your system user token, your payment method. No platform fee, but every outage and escalation is yours.
Path: “Only our own business's” → “Yes” → “Yes” → “No, it is system-to-system messaging”
Direct for systems, software for teams
Send transactional messages directly and use a provider's inbox on a separate number, or share the WABA with a provider later.
Path: “Only our own business's” → “Yes” → “Yes” → “Yes”
Buy through a Solution Partner
The partner runs the platform and can share its credit line, so you get an invoice and support instead of an on-call rota.
Path: “Only our own business's” → “No, or not for this”
Become a Tech Provider
Serving other businesses needs App Review with Advanced access and Embedded Signup. That is the partner route, not a direct integration.
Path: “Other businesses' too”
Question 1: Whose WhatsApp numbers will your app manage? 2 options.
What is a direct Cloud API integration?
A direct Cloud API integration is a setup in which a business builds its own Meta developer app, attaches its own WhatsApp Business Account (WABA) and phone number, and calls the WhatsApp Cloud API itself. There is no Business Solution Provider (BSP), Tech Provider or reseller in the path: your servers talk to graph.facebook.com, and Meta posts webhooks straight to your endpoint.
What you gain is control and a shorter supply chain. You pay Meta's per-message rates with your own payment method and no partner margin, you get new Cloud API features the day Meta ships them, and no third party holds your token or message data. Because the app only touches assets your own business owns, standard access to whatsapp_business_messaging and whatsapp_business_management is enough; Advanced access through App Review is needed only by apps that serve other businesses.
What you take on is everything a partner would otherwise do. You write and host the webhook receiver, the send queue that respects the 80 messages-per-second limit, retry and deduplication logic, a way for agents to read and reply, template submission and monitoring. Billing problems, restricted numbers and policy questions go to Meta's own support channels rather than to an account manager. This is the opposite end of the spectrum from buying through a Solution Partner; the BSP vs Tech Provider page covers the partner routes in between.
Key takeaways
- A direct Cloud API integration means your own Meta app calls the WhatsApp Cloud API for your own business, with no Solution Partner or Tech Provider.
- You add your own payment method to the WABA and Meta bills you per delivered message; there is no platform fee and no partner invoice.
- Apps that access only their own business's WhatsApp assets do not need Advanced access through App Review.
- You build and run everything a partner would provide: webhooks, queues, inbox, template workflow, monitoring and on-call.
- It suits teams with engineers to spare and simple needs; most businesses that need an inbox and campaigns buy software instead.
Operating sequence
How does a direct Cloud API integration work?
Create the business app
In Meta for Developers, create an app of the Business type linked to your business portfolio and add the WhatsApp product. Verification is not needed to start, but it unlocks higher messaging limits and more phone numbers later. Meta provides a test number to start with.
Add and register your number
Add your real phone number to the WABA, verify it by SMS or voice code, then POST
/{PHONE_NUMBER_ID}/registerwith a 6-digit two-step verification PIN.Create a system user and token
In business settings, create a system user, assign it the app and the WABA, and generate a long-lived token with the two WhatsApp permissions. Store it in a secrets manager.
Subscribe and wire the webhook
POST
/{WABA_ID}/subscribed_apps, set the callback URL and verify token, and subscribe tomessagesand the account fields you need, such as template status and quality updates.Add a payment method
Add a card or other payment method to the WABA in WhatsApp Manager so charged messages can be sent. Indian businesses must move eligible WABAs to INR billing by 31 December 2026.
Build the operating layer
Queue and pace sends per number, verify webhook signatures, deduplicate by
wamid, alert on failures and silence, and give agents an interface to answer within the customer service window.
Implementation
A direct Cloud API integration in code
TOKEN={ACCESS_TOKEN} # system user token with whatsapp_business_* permissions# 1. Register the phone number on the Cloud APIcurl -X POST "https://graph.facebook.com/v26.0/{PHONE_NUMBER_ID}/register" \-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \-d '{ "messaging_product": "whatsapp", "pin": "{SIX_DIGIT_PIN}" }'# 2. Subscribe your app to the WABA's webhookscurl -X POST "https://graph.facebook.com/v26.0/{WABA_ID}/subscribed_apps" \-H "Authorization: Bearer $TOKEN"# 3. Confirm the subscriptioncurl "https://graph.facebook.com/v26.0/{WABA_ID}/subscribed_apps" \-H "Authorization: Bearer $TOKEN"
Steps 1 and 2 return { "success": true }; step 3 lists the apps receiving this WABA's events.
Failure modes
Common mistakes with a direct Cloud API integration
Underestimating the operating work
Sending a message takes an afternoon; running WhatsApp reliably takes queues, retries, monitoring and someone on call. Budget for the operating layer, not just the first API call.
Building with a personal admin's token
Tokens tied to an employee's Facebook account break when that person leaves or changes a password. Use a system user owned by the business portfolio.
No payment method on the WABA
Without a valid payment method, charged messages cannot be sent. Add it before launch, and check the INR billing deadline for Indian accounts.
Rebuilding an inbox and campaign tool from scratch
If marketing and support teams need a shared inbox, segmentation and analytics, building them in-house is usually slower and dearer than buying. Go direct for system-to-system messaging; buy for team tools.
Specifications
A direct Cloud API integration: key facts and limits
- Partner in the path
- None: your Meta app calls the Cloud API
- Who bills you
- Meta, per delivered message, on your payment method
- App Review
- Not needed for your own business's assets
- Token
- System user token (long-lived)
- Default throughput
- Up to 80 messages per second per number
- INR billing (India)
- Eligible WABAs must move by 31 Dec 2026
Example: A fintech in Gurugram goes direct
A payments company in Gurugram sends about two million utility templates a month: payment receipts and settlement alerts generated by its own ledger service. It already runs queues, on-call and a secrets manager, and needs no marketing tools or agent inbox. Its platform team builds a direct Cloud API integration in three weeks, pays Meta per delivered message with the company's own payment method and alerts on every failed status. Customer replies are routed to the existing helpdesk through a small webhook adapter.
Design intent
Why does a direct Cloud API integration matter?
The choice sets your cost structure and your on-call rota. A direct integration removes platform fees and vendor lock-in, which matters for companies sending millions of utility messages a month from their own systems. It also makes your team responsible for every outage, token expiry and missed webhook. Deciding with clear eyes avoids the common outcome of a half-built in-house inbox that costs more than the software it replaced.
Direct Cloud API Integration FAQs
Can I use the WhatsApp Cloud API without a BSP?+
Is a direct Cloud API integration cheaper than using a provider?+
Do I need App Review for a direct integration?+
Who supports me if something breaks on a direct integration?+
Recommended practice
Best practices for a direct Cloud API integration
- Keep the Graph API version in configuration and plan upgrades well before it expires.
- Use Meta's test number and your own test WABA for development so production quality is never at risk.
- Verify every webhook's
X-Hub-Signature-256with your app secret before processing. - You can add a partner later: a direct WABA can be shared with a provider without changing your number.