Expiration
A subscription expires when its term ends and it is not renewed. This can happen automatically (auto-renew disabled) or as a result of failed payment recovery. BillHive provides advance notifications and a grace period to give customers and admins time to act before the subscription expires.
Expiration vs Cancellation
| Expiration | Cancellation | |
|---|---|---|
| Trigger | Term end reached, no renewal | Explicit action by admin or customer |
| Status | Expired | Cancelled |
| Reversible | Yes — can be reactivated | Typically final |
| Credits | No proration (term was fully used) | May include prorated credits |
| Typical cause | Auto-renew off, or renewal payment failed | Customer request, non-payment escalation |
Expiration Flow
┌────────────────────┐
│ Subscription Active│
│ (approaching term │
│ end date) │
└────────┬───────────┘
▼
┌────────────────────┐
│ Expiring Soon │──▶ Notification sent (configurable days before)
│ Notification │
└────────┬───────────┘
▼
┌────────────────────┐ Auto-Renew enabled?
│ Term End Date │──── Yes ──▶ Renewal Workflow (see Renewals)
│ Reached │
└────────┬───────────┘
│ No
▼
┌────────────────────┐
│ Expire Subscription│──▶ Status = EXPIRED
│ Workflow │
└────────┬───────────┘
▼
┌────────────────────┐
│ Send Expiration │
│ Notification │
└────────┬───────────┘
▼
CompleteExpiring Soon Notification
BillHive sends a proactive Subscription Expiring Soon notification before the term end date. This is orchestrated by a dedicated Camunda workflow:
- The workflow calculates the “expiring soon” date based on the Renewal Offset Days setting.
- It waits until that date arrives.
- It checks the current subscription status:
- Active or Paused — sends the expiring soon notification
- Cancelled, Expired, or other terminal states — skips the notification
- The business event
SUBSCRIPTION_EXPIRING_SOONis emitted.
What the Notification Includes
- Subscription details (product, plan, term dates)
- Days remaining until expiration
- Call-to-action to renew or enable auto-renew
- Link to manage the subscription
Expire Subscription Workflow
When the term end date is reached and no renewal occurs:
- Subscription status is set to Expired.
- An expiration notification is sent to the customer (business event:
SUBSCRIPTION_EXPIRED). - The order is completed.
- Any pending workflows (expiring-soon, renewal) are terminated.
- Activity logged as
SUBSCRIPTION_EXPIRED.
Active Subscription Expiring Soon
For active subscriptions approaching their term end, BillHive provides visibility through:
- Expiring Soon notification — Email sent to the customer and logged
- Upcoming Renewals & Expirations widget on the Billing & Payments dashboard — lists subscriptions nearing their term end
- Renewal window on the subscription details page — shows a Renew button 14 days before expiry
Non-Renewing Subscriptions
When auto-renew is disabled on an active subscription, the status changes to Non Renewing. This signals that the subscription will expire at term end unless manually renewed.
| Condition | What Happens |
|---|---|
| Auto-renew disabled while Active | Status → Non Renewing. Subscription continues until term end. |
| 14 days before expiry | Renew button appears on the subscription details page. |
| Expiry date is today | Renew Now — Expires Today! urgent prompt. |
| Term end reached | Status → Expired. Expiration notification sent. |
Reactivation After Expiration
Expired subscriptions can be reactivated within the Renewal Grace Period:
- An admin clicks Reactivate on the subscription details page.
- A renewal order is placed, starting a new term.
- An invoice is generated and payment is collected.
- Status returns to Active.
If the grace period has passed, the subscription cannot be reactivated — a new subscription must be created instead.
Configuration
| Setting | Description |
|---|---|
| Renewal Offset Days | How many days before term end the “expiring soon” workflow triggers (e.g., 30 days). |
| Renewal Grace Period | Number of days after expiration during which reactivation is still possible. |
| Access Continuity | Whether the customer retains product access during the grace period after expiration. |