Skip to Content
Financial semanticsSubscription lifecycle

Developer reference

Subscription lifecycle

Treat recurring relationships as future context and actual charges as independent financial evidence.

A subscription is a recurring relationship with expected cadence, amount, currency and status. Its next date helps answer what is coming.

Plan lifecycle

Create the relationship with known details. Change, pause or end it when future expectations change. These actions affect the plan; they do not erase earlier payments or issue a refund.

Unknown or variable amounts should remain explicit instead of being projected as a fixed certainty.

Payment lifecycle

A due occurrence is not automatically a completed payment. An actual recorded movement, or a supported match to payment evidence, establishes what settled.

For a fictional USD 8 monthly service that settles as EGP 405 on 5 October 2026, the USD expectation and EGP bank movement have different roles. Keep the original charge evidence when available.

Duplicate prevention

Before recording a charge manually, inspect imported activity. A plan and its payment can both be valid, but two recorded copies of the same payment are not justified by the plan existing.

A credit-card repayment should also stay distinct from the original subscription purchase.

Service and UI review

Check next-date calculation, status transitions, actual payment links and unavailable reads. After changing a plan, refresh the upcoming read model; after recording money, refresh the affected financial reads.

See customer subscription guide, bills and ledger semantics.