Plans and entitlements
What each plan unlocks is defined in one place. When a plan changes the definition changes rather than the code, otherwise every new package needs a new release.
Selling a subscription is not like selling something once. The money comes in repeatedly, and at every renewal something can go wrong. A card fails, a user cancels, a store issues a refund.
So the real job of a subscription system is not collection, it is state. It has to know at any moment what each person is entitled to, because if it gets that wrong it either withholds from someone who paid or serves someone who did not.
Talk to us about thisWhat each plan unlocks is defined in one place. When a plan changes the definition changes rather than the code, otherwise every new package needs a new release.
On iOS and Android the purchase goes through the store. The critical point is that the receipt sent by the app is not proof. The transaction is verified against the store servers, and if it cannot be verified no entitlement is granted.
Subscription state is decided from the current status rather than the type of the event. If a subscription in arrears still counts as active, a user who stopped paying keeps being served.
Where a plan grants a limited number of something, the deduction happens in a single operation. Checking first and deducting afterwards hands out the same credit twice when two requests arrive together.
What happens to access when a subscription ends is decided at the start. Is the data deleted, frozen or left readable. Deciding this later tends to leave user data in limbo.
Each purchase is tied to a single account. Without that tie, the same receipt can unlock several accounts for free, and this is the most common form of abuse we see.
For digital content and subscriptions consumed inside the app, the stores require their own payment system and take a commission. Physical goods and services delivered outside the app fall outside that rule. Which side you are on matters during store review, so we settle it at the start.
When the store reports the refund the entitlement is withdrawn. Without a notification endpoint the refund is only noticed the next time the user opens the app, and service continues in the meantime. We recommend building that endpoint from the start.
Yes, web payment runs through a separate provider. Subscriptions coming from both sources are then merged onto one account with a written rule about which one wins. Leaving both open without writing that rule is the most common source of confusion we run into.
With store sales the money reaches you through the store with commission deducted, so the sale figure in the system is not the figure that lands in the bank. We build the reporting to show that gap from the start. The transfer into ERP or accounting software carries the same distinction.
This page covers one topic. The full scope and pricing live on the related service page.
We move sites weighed down by WordPress and Elementor to a static build without touching the design. The plugin stack and the update burden disappear.
A slow site loses visitors before it appears. We measure and cut image, font and JavaScript weight. Fast is a measurement, not a feeling.
Sites that work with a screen reader, with a keyboard and with low vision. Accessibility is both a legal requirement and a way to stop losing visitors.