Subscriptions across App Store, Google Play and web billing by Sevastian RakhimovSubscriptions across App Store, Google Play and web billing by Sevastian Rakhimov

Subscriptions across App Store, Google Play and web billing

Sevastian Rakhimov

Sevastian Rakhimov

The F/AI paywall — annual and monthly, with restore
The F/AI paywall — annual and monthly, with restore

The problem nobody puts in the pitch deck

An app with a subscription has to answer one question correctly, every time, for every user: is this person paid right now?
That sounds trivial until the money arrives from three different places. The App Store knows about its own subscribers. Google Play knows about its own. A web checkout knows about a third group. None of them tell each other anything. Meanwhile a user who paid on the web opens the iOS app and expects it to already know.
Get it wrong in one direction and paying customers are locked out and ask for refunds. Get it wrong in the other and you give the product away for free and never notice, because nothing errors — the revenue is simply lower than it should be, and no dashboard tells you why.

What I built inside F/AI

This is the billing layer of F/AI, which currently carries 2,000+ active paid subscriptions and $8,000 MRR.
One source of truth for entitlement. RevenueCat holds the answer to "is this person paid", and every surface of the product asks that one question instead of each guessing from its own store receipt.
A separate web checkout. Not every user can or wants to pay through a store. A standalone subscription site, wired into the same entitlement model, so a web subscriber is indistinguishable from a store subscriber everywhere inside the app.
Webhooks handled properly. Renewals, cancellations, refunds, grace periods, billing retries, upgrades and downgrades all arrive asynchronously and out of order. Each one is idempotent, because stores redeliver, and each one is logged, because six months later somebody will ask what happened to one specific account.
Restore purchases that actually restores. New phone, reinstall, changed account — the paths users take that never appear in a happy-path test. That is the "Restore subscription" link on the screen above, and it is the single most common thing I find quietly broken in other people's apps.
Reconciliation. A regular check that what the stores say, what RevenueCat says and what the database says all agree, with alerts when they diverge. This is the part almost everyone skips, and it is the part that finds the silent leaks.

Who hires me for this

Teams that already have an app, already have subscriptions, and cannot tell you within a few hundred dollars what their real MRR is — or teams about to add web billing alongside the stores and correctly suspect it will be messier than it looks.
It is a narrow skill and there is very little competition in it, because it is not fun work. It is, however, the difference between a product that earns and a product that almost earns.
Like this project

Posted Aug 24, 2026

Three billing sources, one entitlement, 2,000+ active paid subscriptions and $8,000 MRR that reconciles. The unglamorous layer that decides whether an app makes money or leaks it.