> ## Documentation Index
> Fetch the complete documentation index at: https://knowledge.flowella.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Actions locked by billing

> What to do when sending WhatsApp messages, publishing templates, or using the Flowella API is blocked by a subscription state — and how to restore access.

Some actions in Flowella require an active subscription. If you see "Subscription required", a `402` error from the API, or buttons that are greyed out with a billing tooltip, this page explains what's locked and how to unlock it.

For the full subscription model, see [Billing](/account/billing).

## What gets locked

When a subscription becomes **past due** or **cancelled** (and the paid period has ended), the following are blocked:

* Sending new WhatsApp messages from the inbox
* Sending templates from HubSpot workflows
* Bulk template sends via the API (`POST /v1/templates/send`)
* Publishing or syncing new WhatsApp Flows
* Submitting new templates to Meta
* Adding new channels or phone numbers

These remain available so you can recover:

* Signing in
* Viewing existing data — contacts, conversations, opt-outs, analytics, templates
* The Billing page
* Inbound message receipt (incoming WhatsApp messages still arrive in your inbox; you just can't reply until billing is fixed)

## Subscription states that lock actions

| State                   | What's happening                                       | What you'll see                                   |
| ----------------------- | ------------------------------------------------------ | ------------------------------------------------- |
| **Past due**            | A card payment failed and Stripe is retrying           | Yellow banner on every page; some actions blocked |
| **Canceled (in grace)** | Subscription is cancelled but paid period hasn't ended | Yellow banner; full access until the period ends  |
| **Canceled (expired)**  | Paid period has ended                                  | Red banner; paid actions blocked                  |
| **Trialing**            | Paid plan in free-trial period                         | Full access; no banner                            |
| **Active**              | Paid plan in good standing                             | Full access; no banner                            |

## How to restore access

Only the **Owner** of the org can change billing.

<Steps>
  <Step title="Open Settings → Billing">
    Sign in and go to **Settings → Billing**.
  </Step>

  <Step title="Open the Stripe customer portal">
    Click **Manage subscription**. Stripe opens in a new tab.
  </Step>

  <Step title="Update payment or pick a plan">
    * For **past due**, update the failing card.
    * For **expired**, pick a plan and complete checkout.
  </Step>

  <Step title="Wait a few seconds">
    Stripe webhooks update Flowella within seconds. The Billing page polls automatically; refresh other pages to clear the banner.
  </Step>
</Steps>

## API behaviour

The REST API returns a `402 Payment Required` response with this envelope when an action is blocked by billing:

```json theme={null}
{
  "error": {
    "code": "PAYMENT_REQUIRED",
    "message": "Your subscription does not allow this action."
  }
}
```

In your client, treat `402` as a recoverable state — surface it to the org Owner so they can fix billing rather than retrying automatically.

## Common confusion

### "I just paid — why is it still locked?"

Stripe webhooks are usually instant, but very rarely take a minute or two. If the banner persists for more than five minutes after a successful payment, refresh the page or click **Manage subscription** to confirm the status in Stripe.

### "Why can my teammate still send messages?"

They can't — but if the action is queued client-side, the UI may show success momentarily before the server rejects it. Send attempts will land in the inbox as **Failed** with a billing reason.

### "We paid but a specific feature is still locked"

Check that your **plan tier** includes that feature. See [Plans and limits](/account/plans-and-limits). For example, the Free plan does not include the public REST API.

## Still locked after paying?

<Note>
  Capture the following before contacting [support](https://flowella.io/support):

  * A screenshot of **Settings → Billing** showing the current state
  * The Stripe receipt or invoice ID for the most recent payment

  We can reconcile manually if a webhook didn't land.
</Note>

## Related

<CardGroup cols={2}>
  <Card title="Billing" icon="badge-dollar-sign" href="/account/billing">
    Manage subscription, payment method, and Stripe meter health.
  </Card>

  <Card title="Plans & limits" icon="list" href="/account/plans-and-limits">
    What each plan includes and how trial caps differ from paid overage.
  </Card>

  <Card title="Usage" icon="gauge" href="/settings/usage">
    See where you are in the current billing cycle.
  </Card>

  <Card title="Pricing & categories" icon="message-circle" href="/account/pricing-and-conversation-categories">
    How Meta charges and Flowella usage interact.
  </Card>
</CardGroup>
