Glozr docs

Run your workspace

Billing

Glozr billing runs on Stripe through Laravel Cashier, with PayPal and Razorpay available as alternative gateways. Each workspace sits on exactly one plan at a time.

The billing model

Plans are first-class records that admins define once and assign to workspaces. Subscriptions, invoices, and webhooks are all delegated to the gateway; Glozr keeps a local mirror so it can enforce quotas without hitting Stripe on every request.

Plan fields

  • Display name and slug — what the customer sees and how the plan is referenced internally.
  • Monthly conversation quota0 means unlimited.
  • Optional message cap — hard ceiling on visitor messages per calendar month.
  • Token cap per response — defaults to 800; sizes the maximum LLM output.
  • Price in cents and billing interval (monthly or yearly).
  • Feature toggles — for example remove_branding.

Monthly and yearly intervals

To offer an annual discount, create two rows of the same plan — one monthly, one yearly — and price the yearly variant below 12× the monthly rate. Stripe, PayPal, and Razorpay each handle the underlying billing cycle natively.

Quotas and token caps

Two enforcement mechanisms run side by side:

  1. Message quotas are tracked through usage_events rows and checked before each visitor message is dispatched.
  2. Token limits cap the LLM response so a single answer can't blow through your budget.

Both run at request time, so changes to the plan take effect on the next message — no need to recycle anything.

Managing a subscription

Customers self-serve from /app/billing. Stripe supports prorated swaps and resumption within the grace period. PayPal and Razorpay require a fresh checkout to change plans, because their APIs don't expose a true upgrade primitive.

Subscription reconciler

After every checkout the SubscriptionReconciler service syncs the workspace's local plan against the gateway. If a webhook arrives late or fails entirely, the next page load fixes the discrepancy — so quotas are never enforced against a stale subscription state.

Note. Conversation quotas are per workspace, not per agent — running more agents doesn't multiply your limit.