Overview
Dualhook pricing is a monthly subscription based on plan tier and connection limits. Dualhook does not charge per WhatsApp message.
All plans include a 30-day free trial. A payment method is required at sign-up, but you are not charged until the trial ends.
WhatsApp message fees are charged by Meta under the WhatsApp Business Platform. Your total cost has two separate parts:
- Dualhook subscription fee — our product
- Meta messaging fees — their platform usage
Dualhook Plans
| Plan | Price | Included connections | Best fit |
|---|---|---|---|
| Developer | $12/month | 1 | Individuals and early projects |
| Team | $25/month | 5 | Growing teams |
| Agency | $89/month | 20 | Agencies and multi-client setups |
| Platform | $115/month ($4.50/conn above 25) | 25 included | SaaS providers onboarding many tenants |
- Team is the most common plan.
- All plans include a 30-day free trial.
- A payment method is required at sign-up for self-serve checkout.
- Checkout may display USD or EUR depending on region.
- The Platform tier adds a multi-tenant API for self-serve onboarding, a co-branded onboarding flow, signed lifecycle event webhooks, per-tenant webhook routing, and dedicated partner support.
- Upgrades apply immediately.
- Downgrades apply at the end of the current billing cycle.
What Is Included
All plans include:
- Direct webhook delivery (Meta to your endpoint via Webhook Override)
- Webhook testing and monitoring
- Template management
- Heartbeat monitoring
- In-app support chat for setup questions and bug reports
- Privacy-first architecture (no message storage)
- Unlimited webhook deliveries
Message Charges: Dualhook vs Meta
Dualhook does not add per-message fees.
If you send or receive WhatsApp messages through Cloud API, those usage charges are billed by Meta, not by Dualhook. This remains true on every Dualhook tier.
Official Meta Rate Cards
| Link | Rate Card Description |
|---|---|
| Meta USD Rate Card | Official USD rates for template messages by country code/market |
| Meta EUR Rate Card | Official EUR rates for template messages by country code/market |
| Meta INR Rate Card | Official INR rates for template messages by country code/market |
| Meta pricing overview | Official overview of pricing categories and free windows |
- Meta may update rate cards on a quarterly cadence (Jan 1, Apr 1, Jul 1, Oct 1).
- Always verify current rates before launching high-volume campaigns.
- Questions about official Meta rate cards should go to Meta support.
Meta Pricing Model
Since July 1, 2025 Meta charges WhatsApp Business Platform usage on a per-message basis. The previous conversation-based pricing model is deprecated.
- Charges apply only when a template message is delivered (
"type":"template"). - All non-template messages (
text,image, etc.) are free, but can only be sent inside an open 24-hour customer service window (CSW). - Rates depend on the template category (marketing, utility, authentication) and the recipient's country calling code.
- Meta updates rate cards on a quarterly cadence (Jan 1, Apr 1, Jul 1, Oct 1), with at least 1 month notice for rate changes, 3 months for pricing model add-ons, and 6 months for pricing model changes.
Free vs Billed Messages
Whether a message is free or billed is decided by Meta policy and pricing rules, not by Dualhook.
Key windows:
- 24-hour customer service window (CSW) — opens when the user messages you. Non-template replies are only allowed inside this window. Utility templates inside an open CSW are free.
- 72-hour free entry point window (FEP) — opens when you respond within 24 hours to a user who messaged you via a Click-to-WhatsApp ad or a Facebook Page Call-to-Action button (Android/iOS WhatsApp app only — desktop and web are not supported). Any message type sent inside the FEP is free.
| Message type | Free when | Billed when |
|---|---|---|
Non-template (text, image, etc.) | Inside an open CSW or FEP | Cannot be sent outside CSW |
| Utility template | Inside CSW or FEP | Outside both windows |
| Authentication template | Inside FEP | Always charged outside FEP |
| Marketing template | Inside FEP | Always charged outside FEP |
Meta charges are based on delivered messages, not sent attempts.
Pricing Object in Status Webhooks
Each message status webhook from Meta carries a pricing object that explains exactly how that delivery was billed. Dualhook does not ingest message-status webhooks (they go straight to your endpoint via Webhook Override), but your downstream handler should read this field for accounting:
"pricing": {
"billable": true,
"pricing_model": "PMP",
"type": "regular",
"category": "<PRICING_CATEGORY>"
}
Common combinations:
type | category | Meaning |
|---|---|---|
regular | marketing, utility, authentication | Standard billable template delivery via Cloud API /messages |
regular | marketing_lite | Marketing template delivered via Marketing Messages API for WhatsApp /marketing_messages. Same per-message billing as marketing; the category lets you distinguish send paths in your accounting. |
regular | authentication_international | Auth template billed under authentication-international rates |
regular | general_purpose_ai | Non-template message delivered by an AI Provider in an applicable market |
free_customer_service | service | Free non-template message inside open CSW |
free_customer_service | utility | Free utility template inside open CSW |
pricing_model is PMP (per-message pricing) for all messages delivered after July 1, 2025. Edge case: a utility conversation opened before July 1, 2025 retains pricing_model: "CBP" until the conversation closes.
Volume Tiers
Meta unlocks lower per-message rates for utility and authentication templates as monthly volume grows. Marketing templates do not have volume tiers.
Key mechanics:
- Tiers are aggregated at the business portfolio level, across every WABA the portfolio owns.
- Tiers are market–category specific — e.g. India–authentication, Brazil–utility — each accrues independently.
- Only billed messages count toward the tier; free utility messages (in CSW or FEP) do not.
- Tiers reset on the 1st of each month at 12am WABA timezone.
- When a tier is reached, only the messages above the threshold get the new rate. Messages already sent in that month stay at the prior rate.
Starting October 1, 2025 Meta sends an account_update webhook with event VOLUME_BASED_PRICING_TIER_UPDATE when a portfolio reaches a new tier. See Account Update Events for the payload shape. For intra-month progress, query the pricing_analytics field on the WABA.
Authentication-International Rates
A separate, higher rate applies to authentication template messages delivered to users in: Egypt, India, Indonesia, Malaysia, Nigeria, Pakistan, Saudi Arabia, South Africa, and the United Arab Emirates — but only when the sending business is based outside that country.
Eligibility is automatic: a business that delivers more than 750,000 messages outside customer service windows in a moving 30-day period to users in any of these countries is deemed eligible. Eligibility is permanent and Meta gives 30 days notice via email and an account_update webhook with event AUTH_INTL_PRICE_ELIGIBILITY_UPDATE before rates begin.
To check eligibility and start times for a WABA:
curl 'https://graph.facebook.com/<GRAPH_VERSION>/<WABA_ID>?fields=auth_international_rate_eligibility' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'
To check Meta's record of the business's primary location:
curl 'https://graph.facebook.com/<GRAPH_VERSION>/<WABA_ID>?fields=primary_business_location' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'
When billed under this rate, the status webhook pricing.category is authentication_international. Charges are still per delivered message, just at a higher list rate.
AI Provider Pricing
Effective February 16, 2026 (Italy) and March 11, 2026 (broader EU/EEA list including Belgium, France, Germany, Spain, Netherlands, etc.), Meta charges "AI Providers" — providers of large language models, generative AI platforms, or general-purpose AI assistants — for non-template messages they deliver to users in those markets. This is a narrow exception to the rule that non-template messages are free; it applies only if your business meets Meta's definition of an AI Provider.
When billed under this policy, status webhooks carry pricing.category: general_purpose_ai, and the pricing_analytics API surfaces these as pricing_category: AI_BOT.
If you only send transactional, marketing, or authentication traffic, this policy does not change anything for you.
Throughput and High-Volume Sending
Throughput is primarily controlled by Meta account quality, messaging limits, and number status.
Upgrading between tiers increases Dualhook connection capacity and support level. It does not directly purchase higher Meta message throughput.
Example Cost Breakdowns
Team plan + high message volume:
- Dualhook: $25/month (Team plan)
- Meta: separate usage fees for delivered WhatsApp messages
Agency with many connections:
- Dualhook: $89/month (Agency plan)
- Meta: separate usage fees across the connected numbers
FAQ
Is there a free trial? Yes. All plans include a 30-day free trial. A payment method is required at sign-up, but you are not charged until the trial ends.
Do you charge for inbound or outbound WhatsApp messages? No. Message usage is billed by Meta.
If I upgrade my Dualhook plan, will my Meta message pricing change? No. Meta message pricing is separate.
Can I change plans anytime? Yes. Upgrades are immediate; downgrades apply at period end.