Skip to main content

StateSet Billing

The self-service billing portal, hosted at billing.stateset.com. Customers sign in with their StateSet (WorkOS) account to manage plans, modules, payment methods, and invoices.

What customers can do

  • Pick a platform plan — Starter, Growth, or Enterprise, on outcome-based pricing.
  • Activate modules à la carte: Voice, Chat Widget, Email, and Computer Use.
  • Track outcomes processed by StateSet across 10 SKUs.
  • Manage payment methods and view invoices without leaving the app.
  • Open the Stripe billing portal for tax IDs, addresses, and detailed history.

Shared entitlements

The portal uses the billing_organizations Hasura table as the single source of truth. Signing in here means subscriptions show up in ResponseCX, the Computer Use Agent, and the sandbox — there is no per-product billing state to reconcile. Module activations and outcome records live in the org_modules and outcomes tables.

Outcome SKUs

Billing is outcome-based rather than seat- or token-based: you are billed for work completed, not capacity provisioned. An outcome is a verified, end-to-end resolution, priced against the BPO labor it replaces. Live: In development:
Only the two live SKUs can be billed today. Pricing and availability for the rest are confirmed per contract.Prices follow the canonical SKU catalog in the ResponseCX platform. The billing portal carries its own default list prices that currently disagree for several SKUs — where they differ, the catalog and Stripe win.

Disputes

Customers can flag an outcome within 14 days. Disputes are persisted as Stripe customer balance transactions — a negative amount is a credit on the next invoice — and the Outcome Accounting Dashboard renders the ledger.

Plans

Each plan pairs a monthly platform fee with a per-outcome rate — a larger platform fee buys a lower rate per outcome.
Every figure on this page is a list price. Per-unit prices are configured in Stripe, not in the application, and the portal’s displayed price is display-only — the amount billed always comes from Stripe, with negotiated Enterprise terms overriding list. Check the portal or your Stripe dashboard before relying on a number.

Modules

Each module carries a base subscription price (monthly or yearly) plus a metered component:

Stack

Operational controls

The portal carries a set of financial and security controls beyond the basic subscription flow:
  • Financial reconciliation between Stripe and the local entitlement state.
  • Entitlement resync so a drifted org can be brought back in line.
  • Dispute handling.
  • Audit trail over billing actions.
  • Origin defense and Redis-backed rate limits.
  • Alerting and a migration runner.

Local development

Deployment

Production runs on the Hetzner Kubernetes cluster in the stateset-billing namespace, with images pushed to GHCR. Manifests live in k8s/, mirrored by the Hetzner infra repo.
The script is idempotent and safe to re-run. It requires the stateset-billing-app Secret to already exist.