Engineering guides / Angular applications and AWS infrastructure
By Arte Soft engineering · 24 October 2026
Subscription billing backend: separate payment truth from product access
A subscription backend should answer two distinct questions: what the payment provider says happened, and what access the product should grant now. Combining those into a single boolean makes renewals, refunds and credit balances difficult to reason about. Start with an entitlement model and an appendable record of the business changes that affect it.
Define the commercial states
List subscription products, billing periods, included usage and any separately purchased credits. Decide how introductory offers, cancellation, expiry, refunds and billing problems affect the product. Cancellation often changes future renewal rather than immediately removing a paid entitlement; use the provider’s actual semantics. Establish whether credits expire, roll over or survive a subscription ending, then make the interface and policy agree. These are product decisions before they are implementation details. A backend cannot reliably reconcile purchases when the intended commercial behavior remains an informal conversation or differs between the paywall and support instructions.
Verify and record purchases
Use the provider’s supported verification process and distinguish test and production environments. Keep stable transaction references and protect credit grants against duplicate notifications or repeated client submissions. Do not trust a client-supplied price or an unverified success flag as the basis for account value. Account for notifications arriving before a client returns to the app, and for a client disappearing entirely after purchase. A ledger of grants and usage can explain a balance more clearly than editing a total directly. The design should identify which operations are reversible and how corrections are recorded without erasing useful history.
Test the lifecycle, not just checkout
Exercise initial purchase, renewal, restoration, cancellation, expiry and refund in the relevant sandbox or controlled test environment. Verify that a duplicated event does not double the credit grant and that a delayed event cannot restore an invalid entitlement. Deliver the state diagram, product mapping, verification integration and reconciliation procedure. Acceptance should include the user returning on another supported device where applicable, or a clear explanation of device-bound limits. A paywall opening successfully is only interface evidence. The backend must produce the intended access and balance across the complete lifecycle before launch.
Make the support explanation match the ledger. When a customer asks why a balance changed, an authorized operator should be able to identify the purchase, usage or correction behind it rather than manually adjusting a number without a recorded reason.
Budget for ongoing changes
Store rules, server APIs and commercial products change over time. Document product identifiers, notification endpoints and the owner of each operational credential. Arte Soft’s own paid and subscription-based apps provide public portfolio context; they are not customer references or a claim that your commercial model is already implemented. Bring the proposed plans, credit rules and supported platforms. A scoped backend engagement can build one complete purchase lifecycle first, then expand deliberately. The useful result is a system support staff can explain and reconcile, rather than a purchase demo that leaves refunds and restores for after release.
Keep the server ledger separate from checkout UI
The backend engagement delivers an authoritative event ledger, entitlement transitions, balance reconciliation and operator diagnostics. StoreKit purchase presentation and restore buttons are a separate client scope. A server-side record should be sufficient to explain why a subscription or credit balance changed, even when the original device is unavailable.
Relevant Arte Soft work
GPT Realtime Assistant — our own product is our own product or engineering project. It provides context for the work we discuss here; it is not a claim of identical results for every client deployment.
Sources and further reading
Need help with Subscription entitlement backend?
Send the current app, system or brief, the behaviour you need and your constraints. We can agree a discovery, implementation or repair scope with concrete acceptance criteria.
Discuss this with Arte Soft