Account Lifecycle
Understanding subscription states, payment handling, and infrastructure decommissioning.
Overview
This document covers the complete lifecycle of a PenguinMails account from active subscription through potential suspension and decommissioning. Understanding these flows helps tenants maintain uninterrupted service and plan for data management.
Lifecycle States
stateDiagram-v2
[*] --> Active: Payment Successful
Active --> Active: Renewal (Auto-Charge)
Active --> PastDue: Payment Failed
PastDue --> Active: Payment Retry Success
PastDue --> Suspended: Grace Period Expired (Day 7)
Suspended --> Active: Payment Updated & Retry
Suspended --> Decommissioned: VPS Billing Cycle Ends
Decommissioned --> [*]: Data Deleted (90 days)
Subscription Renewal
Automatic Billing
Subscriptions renew automatically via Stripe on the billing date.
How It Works:
- Stripe charges the card on file on
current_period_enddate - If successful: Period extends, tenant continues without interruption
- Webhook
invoice.paid→ PenguinMails updates subscription status
View Next Billing Date:
Navigate to Settings → Billing to see:
- Current plan and pricing
- Next billing date
- Payment method on file
Update Payment Method:
- Go to Settings → Billing → Manage Payment
- Opens Stripe Customer Portal
- Add/update card, set as default
- Changes apply to next billing cycle
[!TIP] Update your payment method before the billing date to avoid failed payments.
Failed Payments
Grace Period (Days 0-7)
When a payment fails, you have 7 days to resolve it before service interruption.
What Happens:
| Timeline | Status | Operations | User Actions |
|---|---|---|---|
| Day 0 | Past Due | ✅ Full access | Email notification sent |
| Day 3 | Past Due | ✅ Full access | Automatic retry #1 |
| Day 5 | Past Due | ✅ Full access | Automatic retry #2 |
| Day 7 | Past Due | ✅ Full access | Final retry, then suspension |
Dashboard Indicators:
- 🔴 Red banner: “Payment failed. Update payment method.”
- Countdown timer showing days until suspension
- One-click “Update Payment & Retry” button
User Actions During Grace Period:
- Update Payment Method → Settings → Billing → Manage Payment
- Retry Payment → Click “Retry Now” in dashboard banner
- Contact Support → If you believe this is an error
Retry Logic
Stripe automatically retries failed payments:
- Day 0: Initial failure
- Day 3: First retry (different time of day)
- Day 5: Second retry
- Day 7: Final retry before suspension
[!NOTE] You can manually retry at any time after updating your payment method.
Account Suspension
When Suspension Occurs
If all payment retries fail and 7 days have passed:
Status Changes:
- Account status:
suspended - Access: Read-only mode
- Email sending: Paused
- Campaigns: Paused (queued emails held)
What You CAN Do:
- ✅ Log in and view dashboard
- ✅ View contacts, templates, campaigns
- ✅ Export your data (CSV, JSON)
- ✅ Update payment method
What You CANNOT Do:
- ❌ Send emails
- ❌ Create new campaigns
- ❌ Add domains or team members
- ❌ Modify settings
Reactivation
To restore full access:
- Go to Settings → Billing
- Click “Update Payment Method”
- Enter valid card in Stripe Customer Portal
- Click “Reactivate Subscription”
- Immediate restoration of full access
[!IMPORTANT] Outstanding balance (failed payment amount) will be charged immediately upon reactivation.
VPS Decommissioning
Understanding the Timeline
PenguinMails provisions a dedicated VPS for each tenant’s email infrastructure. The decommission timeline is tied to Hostwind’s monthly billing cycle.
timeline
title Account Decommission Timeline
Stripe Payment Fails : Day 0
Grace Period : Days 1-7
Account Suspended : Day 7+
Data Export Window : Until Hostwind Billing End
VPS Decommissioned : Hostwind Billing Cycle Ends
OLTP Data Retained : 90 days post-decommission
Full Deletion : Day 90
Data Export Window
Between suspension and VPS decommission:
You have until your VPS billing cycle ends to export critical data.
Export Available:
| Data Type | Format | Location |
|---|---|---|
| Contacts | CSV, JSON | Dashboard → Contacts → Export |
| Campaign History | CSV | Dashboard → Campaigns → Export |
| Templates | JSON | Dashboard → Templates → Export |
| Analytics | CSV | Dashboard → Analytics → Export |
| Account Settings | JSON | Settings → Export Data |
[!WARNING] Email data stored on VPS (mailboxes, logs) cannot be exported after decommission. Export critical data during the window.
What Happens at Decommission
VPS Destruction:
When the Hostwind billing cycle ends without payment:
- VPS instance terminated
- Dedicated IP released back to pool
- Email mailbox content permanently deleted
- SMTP logs permanently deleted
Data Retained in OLTP (90 days):
- Contact lists
- Campaign metadata
- Template definitions
- User accounts
- Analytics summaries
- Billing history
After 90 Days:
- All OLTP data permanently deleted
- Account cannot be recovered
- Must register as new customer
Preventing Decommission
At any point before VPS decommission:
- Update payment method
- Pay outstanding balance
- Account reactivated
- VPS continues running (no data loss)
API Reference
Check Subscription Status
GET /api/v1/billing/subscription
Response:
{
"status": "active" | "past_due" | "suspended" | "canceled",
"current_period_end": "2025-12-24T00:00:00Z",
"days_until_suspension": null | 5,
"can_send_emails": true | false,
"infrastructure_status": "active" | "suspended" | "scheduled_decommission"
}
Get Decommission Schedule
GET /api/v1/infrastructure/status
Response:
{
"vps_status": "active" | "scheduled_decommission",
"decommission_scheduled_for": "2025-12-31T00:00:00Z" | null,
"data_export_deadline": "2025-12-30T00:00:00Z" | null,
"oltp_deletion_date": "2026-03-31T00:00:00Z" | null
}
Related Documentation
Payments
- Stripe Integration - Payment processing and webhooks
- Subscription Management - Plan upgrades and downgrades
- Billing Dashboard - Usage and invoices
Infrastructure
- Hostwind Management - VPS lifecycle
- Vault SSH Management - SSH key handling
Compliance
- Data Privacy - Data retention policies
- GDPR Compliance - Right to data export
Last Updated: December 5, 2025 Grace Period: 7 days OLTP Retention: 90 days post-cancellation
Maintain an active subscription to ensure uninterrupted email service and data retention.