Coddingpro
Deprixa Plus - The Ultimate Courier & Logistics SaaS Platform

Deprixa Plus — SaaS Billing Module · 8.2 Subscription Lifecycle

State Machine

Subscriptions move through the following states:

FromToTrigger
trialactiveFirst payment received
activeactiveSuccessful renewal
activegrace_periodFailed renewal / insufficient wallet balance
grace_periodactivePayment received / wallet recharged
grace_periodread_onlyGrace period expires
read_onlyactivePayment + reactivation
anysuspendedAdmin manual action
anycancelledUser or admin cancellation

What Each Status Means

StatusUser Experience
trial / active / grace_periodFull access to all features. Grace period shows a warning banner on POST requests reminding the user to recharge.
read_onlyCan view everything but cannot create, edit, or delete. All POST / PUT / PATCH requests are blocked.
suspendedAll features disabled. User is redirected to the billing page.
cancelledNo access. User must resubscribe to regain entry.

Auto-Renewal

The saas:check-subscriptions artisan command runs daily at 01:00. It checks every active subscription approaching expiry, attempts wallet debit, and transitions state accordingly.

Pre-Expiry Warnings

Notification emails are sent at 7 days, 3 days, and 1 day before the subscription expires, giving the organization time to recharge their wallet.

SCREENSHOT — Subscription detail page showing status badge and renewal date