Lemon Squeezy reports a subscription as one of seven statuses: on_trial , active , past_due , unpaid , paused , cancelled and expired . Three of them should keep a paying customer's access ( on_trial , active and past_due ), one keeps it until a date ( cancelled , until ends_at ), and the rest should not. In Freeby , my invoicing app, I got two of these wrong at the same time. Expired subscribers kept unlimited Pro forever, and a customer whose card failed lost Pro on the first retry.
What does each Lemon Squeezy status mean for access?
Status What happened Access
on_trial Free trial running Yes
active Paid and renewing Yes
past_due A renewal payment failed and Lemon Squeezy is retrying it Yes, as a grace period
unpaid The retries ran out No
paused Billing paused No
cancelled The customer cancelled; the paid period has not ended Yes, until ends_at
expired The paid period ended No
cancelled is the one people misread. It does not mean "gone".…