flowchart LR
START((( )))
TRIAL[Trial]
ACTIVE[Active]
STOPPED[Stopped]
RENEW_FAILURE[Renewal failure]
DEACTIVATED[Deactivated]
UNPAID[Unpaid]
INCOMPLETE[Incomplete]
INCOMPLETE_EXPIRED[Incomplete and expired]
START --> TRIAL
START -- No trial --> ACTIVE
START -- Missing payment details --> INCOMPLETE
TRIAL == Trial over ==> ACTIVE
TRIAL -- Cancelled --> STOPPED
ACTIVE == Resubscribe ==> ACTIVE
ACTIVE == Cancelled subscription ==> STOPPED
ACTIVE -- Payment failed / in Dunning --> RENEW_FAILURE
TRIAL -- Payment failed / in Dunning --> RENEW_FAILURE
RENEW_FAILURE -- Payment succeeded --> ACTIVE
RENEW_FAILURE -- Retry period expired --> UNPAID
ACTIVE -- Manual immediate stop or migration --> DEACTIVATED
INCOMPLETE -- Confirmation --> ACTIVE
INCOMPLETE -- Expired --> INCOMPLETE_EXPIRED
INCOMPLETE -- XXX --> DEACTIVATED
subgraph Has access
TRIAL
ACTIVE
RENEW_FAILURE
INCOMPLETE
end
subgraph Terminal states
STOPPED
INCOMPLETE_EXPIRED
DEACTIVATED
UNPAID
end
Access | Numeric | State | Description |
---|---|---|---|
✅ | 1 | STATE_TRIALING | Valid trial subscription. |
✅ | 3 | STATE_ACTIVE | Normal, active subscription. |
✅ | 5 | STATE_RENEW_FAILURE | Problem: indicates that the most recent payment failed, and payment is past due. Dunning process. |
⚠️ | 6 | STATE_STOPPED | Live until expiry date. Then stopped. |
⛔ | 7 | STATE_DEACTIVATED | Stopped immediately. |
⛔ | 8 | STATE_UNPAID | Retry period expired, and subscription was left unpaid. |
✅ | 9 | STATE_INCOMPLETE | Missing payment details, but still active. |
⛔ | 10 | STATE_INCOMPLETE_EXPIRED | Missing payment details, now expired. |