Business / Field guide

Billing & entitlements

Connect a paid plan to the capabilities an account can use.

A plan becomes product access

PLAN → ENTITLEMENTSCURRENT PLANStarter5 SEATSPRODUCT ACCESSCore workspaceAdvanced rolesSAML SSO

Starter grants the core workspace and a smaller seat allowance.

01 / CONTEXT

Why it matters

Payment status and product access are related but distinct. Your app needs an explicit entitlement model that can handle trials, grace periods, plan changes and manual adjustments.

Payment state and product access change on different clocks. A customer may be trialing, past due, on a custom contract or waiting for a webhook, so a single “paid” boolean quickly breaks down.

02 / DESIGN

Decisions to make

  • Name the capabilities and limits your product enforces.
  • Choose when a plan change takes effect.
  • Define behavior during a payment failure or delayed webhook.
  • Choose the source of truth for plans, seats and feature limits.
  • Define grace periods and how downgrades affect existing data.
03 / IMPLEMENTATION

Build checklist

  • Persist an account-level entitlement snapshot.
  • Verify provider webhooks before applying changes.
  • Test upgrades, downgrades, retries and cancellation at period end.
  • Process billing webhooks idempotently and reconcile missed events.
  • Test upgrades, downgrades, failed payments and manual credits.
04 / WATCH FOR

Common mistakes

  • Checking a plan name in every feature handler.
  • Granting access directly from a checkout redirect.
  • Conflating a pricing label with the exact capabilities an account has.
05 / GO DEEPER

Tools & references

4 starting points to compare or study. Check fit, maintenance, terms and current capabilities before choosing one.

BUILDING THIS NOW?

Explore the SaaSLayer approach.

See the services and developer guides behind our AWS backed SaaS building blocks.

Read SaaSLayer docs
NEXT FEATUREAPI keys