Subscriptions
Subscription Lifecycle Timeline
Every recorded status transition and plan switch for a subscription, oldest first — captured by a database trigger so nothing is missed.
GET
Subscription lifecycle timeline
Returns the subscription’s full lifecycle timeline: each status transition
(
trialing → active → past_due → paused / canceled) and each plan
switch, oldest first. Transitions are captured by a database trigger at the
source of truth, so no change is ever missed — even ones made by background
workers.
Each entry is discriminated by change_type:
status—from_value/to_valueare subscription status stringsplan—from_value/to_valueare plan ids
status row is the creation state, so its from_value is null.
Example Response
Read-only, and derived from a trigger — you can’t write to this timeline
directly; it fills in as the subscription’s status and plan actually change. A
missing or cross-tenant
id returns 404.