Billing Enforcement

What happens to Dualhook connections when a subscription ends or a plan limit is exceeded.

Looking for the high-level overview first? Start with Pricing and then return here for the implementation details.

Overview

Dualhook enforces billing limits at the connection level.

If a subscription fully ends or a plan is changed to a lower connection limit, Dualhook may pause one or more connections by removing the active Webhook Override from Meta for the affected connection.

This is a connection pause, not a destructive disconnect.

When Connections Are Paused

Dualhook pauses a connection only after billing entitlement is no longer valid for that connection.

Common examples:

  • The subscription is fully canceled and no longer active.
  • The plan tier is changed to one with fewer included connections.

When that happens:

  • Meta stops forwarding message webhooks to your endpoint for the paused connection.
  • The connection is marked as suspended in the Dualhook dashboard.
  • The connection detail page is blocked until the subscription is restored.

What Is Preserved

Pausing a connection does not wipe its setup.

Dualhook keeps:

  • Connection name and organization link
  • WABA ID and phone number ID
  • Webhook URL and verify token
  • Access token and related configuration

That means you do not need to redo Embedded Signup just because billing paused a connection.

How Reactivation Works

When you subscribe again or move back to a plan with enough capacity, Dualhook attempts to restore the paused connection automatically.

If reactivation succeeds:

  • The Meta webhook override is re-applied
  • The billing suspension and webhook pause flags are cleared
  • The connection becomes usable in the dashboard again

If payment is restored but Meta still rejects webhook verification, Dualhook clears the billing suspension and keeps the connection in a webhook-paused state. Billing is active, but the connection is not usable until the webhook override is verified again.

Payment Retries and Grace Period

Dualhook does not pause connections on the first failed invoice attempt.

Stripe handles payment retries and dunning first. Dualhook only pauses connections once the subscription has actually ended or the plan tier has changed in a way that reduces connection capacity.

Platform subscriptions are handled more conservatively. If a Platform subscription becomes inactive after failed payment retries, Dualhook does not automatically clear tenant webhook overrides as the first response. The account is treated as a manual billing escalation because mass tenant webhook interruption can be business-critical.

Related

  • PricingDualhook subscription plans, what is included, and how pricing relates to Meta messaging fees.
  • WhatsApp Webhook OverrideHow Dualhook uses WhatsApp Webhook Override to route message webhooks directly from Meta to your server.
  • TroubleshootingCommon issues and solutions for Dualhook connections, webhooks, and health monitoring.
Browse more docsStart Free Trial