SubTru logoSubTru
← Back to documentation

How subscription access works in your app

Every subscription app needs to answer one simple question: should this user have access right now?

Billing providers like Stripe, Apple App Store, and Google Play handle payments. But they do not decide access inside your app. That logic lives in your backend, and it is often more complex than teams expect.

Billing is not the same as access

It is common to think a successful payment means a user should have access. In reality, subscription access depends on many factors beyond a charge.

Billing providers track financial state. Your app must translate that information into a clear access decision.

Subscription state changes over time

Subscriptions move through different states such as trialing, active, canceled, expired, or past due. These changes often happen through webhooks or server notifications that arrive outside your app's normal request flow.

This is especially important for mobile apps. Apple App Store and Google Play send updates independently of your app, so your backend cannot rely on client-side checks alone.

Why checking subscriptions at runtime is hard

Some teams try to query Stripe, Apple, or Google every time they need to check access. This approach creates several problems:

Over time, this leads to fragile authorization logic and subtle bugs where users lose access incorrectly or keep access longer than they should.

A single source of truth for subscription access

A more reliable approach is to treat subscription access as derived state. Instead of asking billing providers at runtime, your app relies on one source of truth that reflects the current access status of each user.

This source of truth stays up to date by processing renewals, cancellations, expirations, and other subscription events, then turning them into clear access decisions your backend can trust.

Where SubTru fits

SubTru acts as the subscription access layer between your app and billing providers like Stripe, Apple App Store, and Google Play. It focuses on answering one question in a simple and reliable way:

Does this user currently have access to subscription features?

By centralizing subscription state and access logic, SubTru lets your backend make fast and reliable access checks without duplicating complex subscription handling across platforms.

Future guides will show how this model applies to real SaaS backends, mobile apps, and web applications.