Prood
Billing

Plans & entitlements

Subscription tiers, limits, and where enforcement runs in the platform.

Plan definitions live in @prood/billing (packages/billing/src/plans.ts). Marketing, dashboard billing UI, and runtime enforcement share the same entitlements.

Plans

PlanMonthlyStoresProductsOrders/moSeatsCustom domainsAgent AuthAPI write
Free$015010011NoNo
Grow$2915001,00033YesYes
Scale$791UnlimitedUnlimited10UnlimitedYesYes
AgencyCustom10+UnlimitedUnlimitedUnlimitedUnlimitedYesYes

All organizations default to plan_id = 'free' until Stripe subscription billing ships.

Enforcement (live)

LimitWhere enforced
maxProductsPOST /v1/admin/products
maxOrdersPerMonthPOST /v1/carts/{id}/place-order
maxTeamSeatsDashboard team invite (pre-flight)
maxCustomDomainsDashboard add domain action
agentAuthEnabledAPI Agent Auth resolution
apiWriteEnabledAPI keys with admin scope

See ENFORCEMENT.md in the repo for implementation details.

Not enforced yet

  • maxStores (agency portfolio)
  • removeBranding
  • customAdminDomain (admin white-label)

Stripe billing (planned)

Checkout, webhooks, and organization.stripe_* columns will map Stripe Price IDs to PlanId. Until then, upgrade CTAs are informational.

On this page