Skip to Content
📚 Documentation is in active development — pages marked TODO will fill out over the next few weeks.
Plans & billingOverview

Plans & billing

Two layers of billing:

  1. Agency subscription — what the agency pays the platform. Set by SUPER_ADMIN.
  2. Client plans — what the agency charges THEIR customers. Set by AGENCY_ADMIN under /dashboard/payments.

Agency subscription

Configured at signup or via /dashboard/payments (AGENCY_ADMIN). Drives:

  • Total contact cap across all clients
  • Total channel cap
  • Concurrent team member cap
  • Integration allow-list

Client plans

/dashboard/payments → Client plans — AGENCY_ADMIN creates plans they can assign to clients. Each plan has:

  • Name + code
  • Description + features (markdown bullets)
  • Amount (minor units) + currency
  • Structured limits:
    • Max WhatsApp channels
    • Max contacts
    • Max team members
    • Max GMB locations
    • Allowed integrations (["*"] for all, [] for none, or specific connector keys)

Assigning a plan to a client triggers the enforcement layer — the platform refuses operations that would exceed the limits.

Checkout

  • Stripe — for USD / EUR / GBP / other major currencies
  • Razorpay — for INR

Per-agency payment provider config at /dashboard/payments → Provider settings. Test mode keys for staging; live mode keys for production.

Plan-limit enforcement

The platform checks the client’s plan limits before performing limit-relevant operations:

  • Before connecting a new channel
  • Before importing contacts via CSV or creating a contact
  • (more — see Plan limits + enforcement)

Limits are cached briefly for performance, and the system fails open during a transient outage — better to let a few extra inserts through than to brick the inbox.

Last updated on