Most of these come down to what Meta allows, not what we built. Where the answer is no, we say why — so you can decide before you build.
YES — 3 DAYSYour first number is free for 3 days, and you do not need a card to connect it.
Creating an account is free, and you can read the full API documentation before paying anything. Connect one live number and test it for 3 days with no card. Add a card before the 3 days end to keep it running; the first $10 is charged when the free days end. Without a card the number pauses (nothing is deleted) and switches back on as soon as you add one.
After that it is $10/month for every 3 numbers. The free window is one per account, for the first number only — a second number needs a card. There is no separate sandbox; you test on a real number.
NO MINIMUMAn account with zero WABAs costs nothing. Capacity is bought 3 WABAs at a time, with no upfront commitment and no minimum message volume.
YESThis is Coexistence, and it is the most common way our partners onboard. The client keeps the same number, keeps using the app on their phone, and your integration works at the same time. Message history stays in sync between both.
Requires WhatsApp Business App 2.24.17 or newer. The regular consumer WhatsApp app can never use Coexistence.
YESThose arrive as smb_message_echoes. We subscribe to it, along with history (past conversations at connection time) and smb_app_state_sync (contact changes from the phone).
Meta shows this when the number's existing WhatsApp registration blocks the Coexistence path, and it will not offer the "connect an existing WhatsApp Business account" option until that is cleared. This sequence resolves it — the order matters:
Step 3 is the one people skip, and skipping it is why attempts keep failing.
Meta pushes "all messages sent or received within 180 days of the time when the business was onboarded onto Cloud API". Media messages arrive without their asset IDs; a separate history webhook carries those, "but only for media messages sent within 14 days of onboarding".
The business can decline to share history — you then receive a history
webhook with error code 2593109 instead of messages. And it happens
once: "You can only perform this step once. If you need to perform it again,
the customer must first offboard, then complete the Embedded Signup flow again."
NOT FOR MOST NUMBERSMeta's Groups API requires two things: the number must be an Official Business Account, and it must be on Cloud API only — "Your business number is in use with Cloud API (not the WhatsApp Business app)."
That second condition excludes every Coexistence number, which is the majority of numbers on this platform. If your clients keep the Business App on their phones, groups will not be available to them — not now, and not after they get OBA.
NOT ON COEXISTENCENothing is blocked on our side — POST /messages/interactive passes your interactive object to Meta unchanged, so product and product_list are not filtered by us.
The block is Meta's. A number onboarded through the WhatsApp Business App sits
under an SMB business portfolio, and catalog operations on it are refused with
(#10) This operation can not be performed on SMB business type. We
verified this by running the same call, from the same app, against a
non-Coexistence WABA — where it succeeds.
The catalog itself is connected by the business in Commerce Manager, not by us.
NOThat requires a credit line, which only a Meta Solution Partner has. We are a Tech Provider. Meta's own wording: "Tech Providers do not have credit lines. Instead, clients onboarded by Tech Providers must provide their own payment method."
Each client attaches their own payment method to their own WABA and is billed by Meta directly. Our slot fee is separate from that. This is a deliberate choice on our side, not a gap we are working to close.
YESEmbedded Signup creates the WABA under the merchant's own Meta business portfolio. We checked this on a live client: the owning business is the merchant, and we hold no permission over its funding source. If a merchant leaves you, they keep their number and their WABA.
Each connected number is its own client record on your partner account, keyed by
waba_id and phone_number_id, with its own access token.
Every webhook we send and every API call you make carries
phone_number_id — map that to your tenant on your side.
There is no custom external-ID field. display_name is free text you
set at registration; it can hold your tenant ID if you want it visible in the
dashboard, but treat it as a label, not a key.
YESEvery webhook carries x-wasapflow-signature: sha256=<hmac> — an HMAC-SHA256 of the raw request body using your partner webhook secret. The signature covers the complete body as sent, including the meta object. Verify it before processing; the API docs include the check.
YOURS, YESThat is the intended model. Bridge is transport: it delivers inbound messages to your webhook and sends whatever your backend tells it to. Whatever decides the reply — your own model, your own rules — is yours.
OURS, NOWe do not offer an AI or agent product through the Partner API. Bring your own.
NOT FULLYThe Embedded Signup popup is Meta's, and Meta shows the name of the app the merchant is connecting to. That app is ours, so the dialog displays WasapFlowOfficial — in the privacy-policy line, and in "Report error to WasapFlowOfficial". We cannot remove that; it is how Meta tells the merchant who they are granting access to.
Everything outside that popup is yours: your domain, your UI, your emails. The merchant never sees a WasapFlow dashboard.
It is the verified badge next to the business name. It also affects discovery — Meta: "If a business phone number is not an OBA, it will not appear in search results when users search for it within the WhatsApp application."
It is not granted on brand fame. Meta lists concrete criteria:
Request it in WhatsApp Manager under Phone numbers → Profile → Official business account. WhatsApp Business App numbers are excluded.
Meta begins charging for service messages — any non-template reply sent inside the 24-hour customer service window. These have been free since November 2024. Meta: "Effective October 1, 2026, Meta will charge for service messages, which have not been charged since November 2024."
Utility messages sent inside that window become chargeable on the same date. Service messages are priced at the same rate as utility and authentication for the market, and volume tiers do not apply to them.
There is a free tier of 1,000 delivered service messages per business phone
number per month, resetting monthly with no roll-over. Meta:
"Each business phone number has one shared free tier of 1,000 delivered service
messages per month." Messages inside it arrive with
pricing.type = free_customer_service; the 1,001st onward arrive as
regular, billable: true. A number with no payment method on
file stops delivering after the tier is used.
The 24-hour window itself does not go away — it still governs whether you may send a free-form message at all. What changes is that it stops being free. Your cost now scales with the number of replies, not the number of conversations.
Full explanation, Malaysia rates and what to do before the date →
Meta bills the client directly, against the payment method on their own WABA. Our slot fee covers the platform only. See the credit line answer above.
If it involves a specific number or WABA, include the ID and we can check it against Meta.
Contact us