Docs · Chapter 10 of 10

Stripe web store

Sell subscriptions on the web through your own Stripe account, and have them verified into the same entitlements as your Google Play and App Store purchases — one isEntitled answer across Android, iOS, and web.

1

How it fits together

You keep your existing Stripe Checkout. Tierux never sells for you and never touches your Stripe secret key beyond a read-only restricted key you provide. The flow: a signed-in user buys through your Stripe Checkout, and on the success page you make one call to Tierux to verify the completed session — Tierux confirms it against your Stripe account and grants the entitlement.

Two honest constraints for v1: the buyer must be a signed-in Firebase user of your app (the checkout is bound to their uid), and only subscriptions are supported; one-time purchases are not available yet. This uses your Stripe account — it is entirely separate from how Tierux bills you.

2

Create a restricted key + webhook in Stripe

In your Stripe dashboard, create a restricted key with read access to Checkout Sessions, Subscriptions, and Invoices (no write scopes needed). Then add a webhook endpoint pointing at Tierux, subscribed to the subscription lifecycle:

// Webhook endpoint URL (replace <appId> with your Tierux app id)
https://tierux.com/api/v1/stripe/webhook/<appId>

// Events to send
checkout.session.completed
customer.subscription.updated
customer.subscription.deleted
invoice.paid
invoice.payment_failed
charge.refunded

Copy the endpoint's signing secret (whsec_…) — you'll hand both it and the restricted key to Tierux next. Both are encrypted at rest and never shown again.

3

Connect it with your AI agent

Ask your agent (over the Tierux MCP) to run setup_stripe_web and create_product_mapping. Like every Tierux write, it previews first and only persists after you confirm:

Connect my Stripe web store: call setup_stripe_web with my restricted key
and webhook signing secret, then call:
create_product_mapping(productId: "price_xxx", entitlementId: "pro",
  productType: "subscription", appId: "app_xxx")
Show me the preview before confirming.

app_xxx is returned by create_project and is also shown in the dashboard; use it for subsequent MCP calls and SDK initialization.

The mapping ties a Stripe price id (price_…) to a Tierux entitlement, exactly like a Play/App Store product maps to one.

4

Create the checkout on your server

Use your existing Stripe code. The two things Tierux needs: the buyer's Firebase uid as client_reference_id, and a success_url that carries the session id back.

// your server — Stripe SDK
const session = await stripe.checkout.sessions.create({
  mode: "subscription",
  client_reference_id: firebaseUid,        // the signed-in buyer
  line_items: [{ price: "price_pro_web", quantity: 1 }],
  success_url: "https://your.app/success?session_id={CHECKOUT_SESSION_ID}",
  cancel_url: "https://your.app/pricing",
});
// redirect the buyer to session.url
5

Verify the completed session

On your success page, verify with the buyer's Firebase ID token (never an API key). Tierux re-checks the session against your Stripe account and grants the entitlement:

// your success page
const params = new URLSearchParams(window.location.search);
const checkoutSessionId = params.get("session_id");
const idToken = await firebase.auth().currentUser.getIdToken();

const res = await fetch("https://tierux.com/api/client/apps/<appId>/purchases/stripe/verify", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: `Bearer ${idToken}` },
  body: JSON.stringify({ checkoutSessionId }),
});
const result = await res.json();
if (result.active) unlockPro();

After that first verify, the webhook you configured in step 2 keeps the entitlement in sync — renewals extend it, cancellations and refunds revoke it — with no further work from you.

Related docs

Docs: Platform Support

The per-feature capability matrix across Google Play, App Store, and web.

Docs: SDKs

Client SDK integration — Android, iOS, and REST-first frameworks.

Docs: Webhooks

Outbound developer webhooks for subscription lifecycle events.

Docs: MCP Setup

Use your AI agent for Google Play infrastructure and Tierux-side product configuration. App Store Connect product and notification setup remains manual before SDK integration.

One entitlement layer — mobile and web

Free tier — unlimited apps, 1 paywall. No credit card, no revenue share.

Start free