# ShipRev (shiprev.dev) > Identity, subscriptions, metering and entitlements on one customer record. ## Overview ShipRev keeps a SaaS product's identity, subscriptions, metering and entitlements on one customer record and takes on keeping the four aligned. It is built for small SaaS teams that already sell several plans with quotas. Change a tier's price without changing your application code. ## Pages - [ShipRev: identity, subscriptions, metering and entitlements on one customer record](/): ShipRev keeps a SaaS product's identity, subscriptions, metering and entitlements on one customer record and takes on keeping the four aligned. It is built for small SaaS teams that already sell several plans with quotas. Change a tier's price without changing your application code. - [B2B authentication with buyer organizations | ShipRev](/product/identity): B2B authentication for SaaS: email, Google and GitHub sign-in, a buyer organization created at sign-up, and invitations for its members. - [Subscription billing for SaaS | ShipRev](/product/subscriptions): Subscription billing for SaaS: plans published as versions and synced to Stripe, invoice records, and checkout, upgrades and cancellation for your end users. - [Usage metering for SaaS | ShipRev](/product/metering): Usage metering for SaaS: report usage from your backend with the Server SDK, recorded for each organization on the same customer record as its subscription. - [Feature gating and entitlements for SaaS | ShipRev](/product/entitlements): Feature gating for SaaS plans: define what each tier includes in a versioned catalog, and your backend gets a decision with the remaining balance. - [Pricing | ShipRev](/pricing): The plans and prices we plan to offer for the ShipRev managed cloud. ShipRev is not available for purchase yet. - [Blog](/blog): Situations SaaS teams run into with pricing tiers, usage allowances and price changes, the ways to handle each, and notes on the design behind ShipRev. - [Privacy — ShipRev](/privacy): What happens to information about you when you visit the ShipRev website, apply for early access, write to us or contact our social media accounts. ## Documentation - [ShipRev documentation](/docs.md): ShipRev keeps identity, subscriptions, metering and entitlements on one customer record. It is not released yet, and these pages cover only what is built. - [How ShipRev works](/docs/concepts.md): The objects you meet in ShipRev, what the API and the SDK call them, and how they meet on one customer record. - [Where the rules run](/docs/concepts/request-path.md): How the Server SDK rules on entitlements inside your process, how plan changes reach it, and what keeps working while the region is unreachable. - [Create your account and choose a plan](/docs/cloud/account.md): Create your account and first organization on the ShipRev developer console, then choose the plan the organization runs on. - [Create an application and choose its region](/docs/cloud/application.md): Create an application in the region its data will live in, save its SDK key and API address, and open its operator console. - [Connect your backend with the Server SDK](/docs/cloud/backend.md): Install the Server SDK for Node.js, point it at your application, protect a route and report what it consumed. - [Run a subscription in test mode](/docs/cloud/test-subscription.md): Define a product, a metered capability and a plan in the operator console, activate the plan for a test customer, and watch usage count against its allowance. - [Let real end users in and take payments](/docs/cloud/go-live.md): Add and verify the brand domain your end users sign in on, choose how they reach your product, and connect the Stripe account that your customers pay into. - [Changelog](/docs/changelog.md): Every release of ShipRev packages and services, newest first, from the first one onward, with an RSS feed you can subscribe to. - [Identity: sign-in and buyer organizations](/docs/identity.md): ShipRev runs your end users' accounts, sign-in, buyer organizations and session tokens. Your application keeps its own interface and data. - [Sign-in methods](/docs/identity/sign-in-methods.md): The ways your end users can create an account and sign in, what is created when they do, and the settings that control it. - [Hosted pages, components or your own](/docs/identity/connect.md): Choose who owns your end users' sign-in page, whether they get the customer portal and where each flow ends, and set up the React components. - [Gates and brand domains](/docs/identity/gates-and-domains.md): What a sign-in gate holds, how it relates to your applications, and how brand domains route your end users to it. - [Sessions and tokens](/docs/identity/sessions.md): What a sign-in issues, how long it lasts, how your backend learns who is calling, and why a token is refused. - [Buyer organizations](/docs/identity/buyer-organizations.md): How your customers' teams work in ShipRev, where organizations come from, and how members are invited, managed and switched between. - [Your team and keys](/docs/identity/team-and-keys.md): Who on your team can do what, which key your backend holds, and how to create, rotate and revoke it. - [Subscriptions: plans, checkout and invoices](/docs/subscriptions.md): ShipRev holds your plans, each buyer organization's subscription, invoice records and wallet. Stripe takes the payments, on a Stripe account of yours. - [Products, capabilities and plans](/docs/subscriptions/catalog.md): How you describe what you sell in ShipRev, as products, capabilities, plans and add-ons, and what each one decides. - [Plan versions](/docs/subscriptions/plan-versions.md): Change a price or an allowance without touching your code, and know what happens to the subscribers you already have. - [Take payments on your own Stripe account](/docs/subscriptions/payments.md): Connect your application to your own Stripe account with your Stripe keys, register the webhook endpoint, and check that payments arrive. - [Checkout and self-service](/docs/subscriptions/self-service.md): How your end users choose a plan and pay, change plan, cancel, resume and change their card, in the customer portal or in your own pages. - [Invoices and payment events](/docs/subscriptions/invoices.md): What ShipRev records for each payment, why a record never changes, and how the subscription follows Stripe's events when they arrive late, twice or not at all. - [Wallet and top-ups](/docs/subscriptions/wallet.md): How your end users prepay into their organization's wallet, top it up automatically, and see the balance and its history. - [Metering: usage events and allowances](/docs/metering.md): Your backend reports usage events for a buyer organization and a capability. ShipRev counts them against the allowance the organization's plan grants. - [Report usage](/docs/metering/report-usage.md): Report usage from your backend with the Server SDK, how events are batched and kept while the region is unreachable, and what happens to a refused event. - [Reserve, confirm and release](/docs/metering/reservations.md): Meter work whose cost is known only once it is done, such as a model call billed by its tokens, by reserving an amount first and settling it afterwards. - [Allowances and how usage is cleared](/docs/metering/allowances.md): Where a buyer organization's allowance for a capability comes from, how each usage event is counted against it, and what happens to usage beyond it. - [Read usage](/docs/metering/read-usage.md): Where your backend, your team and your end users read how much of an allowance is used: rulings, the Management API, the public API and UsageMeter. - [Entitlements: rulings in your backend](/docs/entitlements.md): Your backend asks the Server SDK whether a buyer organization may do something right now, and gets a ruling in your own process with what is left. - [Rulings](/docs/entitlements/rulings.md): What a ruling from the Server SDK contains, how to choose between adjudicate() and adjudicateAsync(), and how to turn a refusal into a response. - [Overage policies](/docs/entitlements/overage.md): What happens when a buyer organization uses up an allowance, how each overage policy rules, and how to set the policy and the overage price. - [Snapshot, mirror and offline](/docs/entitlements/offline.md): How plan changes reach your process, what your service does while your application's region is unreachable, and how to prepare each route for it. - [Protect routes](/docs/entitlements/protect-routes.md): Verify the caller's session token, then rule on the capability for their buyer organization, on every route, with the NestJS guards or in your own code. - [Show it in your frontend](/docs/entitlements/frontend.md): Show end users the plans they can choose, what each grants and what is left of their allowance, with the PricingTable and UsageMeter React components. - [Use ShipRev with NestJS](/docs/integrate/nestjs.md): Register the Server SDK module in a NestJS service, guard controllers, use the client in your own providers, and answer refusals the way your frontend needs. - [Use ShipRev with React](/docs/integrate/react.md): Add the React components to your app: forward a path on your own origin, keep the end user's session, call your own backend with it, and theme the components. - [Use ShipRev with Stripe](/docs/integrate/stripe.md): What ShipRev creates in your Stripe account, how to find a customer's objects there, what you can safely change, and how to rehearse in test mode. - [Use cases](/docs/use-cases.md): Tasks done end to end with ShipRev, from the plan in the catalog to the ruling in your backend and what your frontend shows. Each names the products it uses. - [Gate a feature by plan](/docs/use-cases/gate-a-feature.md): Make a feature available on paid plans only, refused in your backend and offered as an upgrade in your frontend. Uses a capability, two plans and a ruling. - [Set a monthly usage limit with an upgrade prompt](/docs/use-cases/monthly-allowance.md): Give the free plan 100 uses a month and a paid plan more, and offer a larger plan when it runs out. Uses a metered capability, rulings and UsageMeter. - [Change a price without touching code](/docs/use-cases/change-a-price.md): Raise a plan's price or allowance for new subscribers only, while existing ones keep theirs and your code stays as it is. Uses plan versions and Stripe syncing. - [Sell team plans to business buyers](/docs/use-cases/team-plans.md): Sell a plan to a customer's team, whose members are invited by email and share the allowance the organization bought. Uses buyer organizations and allowances. - [Server SDK reference](/docs/reference/sdk.md): Options, methods, rulings, refusal reasons and errors of the Server SDK for Node.js and NestJS, version 0.1.0-beta.1. - [React SDK reference](/docs/reference/react.md): The provider, components, props, labels, data types and errors of the React SDK, version 0.1.0-beta.0. - [Management API reference](/docs/reference/management-api.md): Every endpoint of the management API that your application's operator console uses, with the credential each one needs. - [Public API reference](/docs/reference/public-api.md): Every endpoint of the public API that your end users reach on your brand domain, with the credential each one needs. - [Error codes](/docs/reference/errors.md): The error body every ShipRev API returns, each error code with its HTTP status and what to do, and how errors reach you through the Server SDK. ## Blog - [Adding Pricing Tiers After Launch: What to Take Stock of Before You Split a Plan](/blog/adding-tiers-after-launch.md): Your product already has users on one plan, and now it needs tiers or add-ons. The four places a tier lives, where existing customers can land, and what it costs to stop naming plans in your code. - [When the Usage Bill Doesn't Match Usage: Finding the Layer That Drifted](/blog/usage-bill-mismatch.md): Usage passes through several layers on its way to an invoice, and each one can lose it, count it twice or put it in the wrong period. Where each layer goes wrong, what a nightly reconciliation can and cannot catch, and why the first decision is which ledger you trust. - [When a Customer Runs Out of Quota: Block, Bill, Prompt or Cut Off](/blog/quota-exhausted-choices.md): What a usage-priced product can do when a customer uses up their allowance, who pays for each choice, and why every option leaves a gap between crossing the line and stopping. - [Changing a Plan's Price When Customers Are Already on It](/blog/repricing-existing-customers.md): What happens to existing subscribers when you change a plan's price or limits, the common ways to handle them, and the state that is easy to miss when you move them. - [Designing Identity, Subscriptions, Metering and Entitlements Around One Database Transaction](/blog/four-domains-single-transaction.md): Why ShipRev is designed to keep the four pieces of commercial state for a SaaS product in one process and one PostgreSQL database, written to in one transaction. ## Full text - [llms-full.txt](/llms-full.txt): All documentation pages in one file.