Partner Subscription History
Review the full audit trail of subscription events for any MSP partner, including tier changes, payment results, overrides, and trial transitions.
Overview
The Partner Subscription History timeline gives Global Admins a chronological record of every billing event that has touched a partner's subscription. Each event records what changed (tier, status), who triggered it, and a structured JSON payload with full context.
Navigate to Global Admin Portal > Partners > [Partner ID] > History to open the timeline.
Reading the Timeline
Each event appears as a card on the timeline. The card header shows:
| Element | Description |
|---|---|
| Event type badge | Color-coded label identifying the event category (see Event Types) |
| Change summary | Tier or status transition, e.g. Tier: starter → growth |
| Timestamp | Local date and time the event was recorded |
| Triggered by | Identity that caused the event (user email, stripe-webhook, system, etc.) |
Click a card to expand it and reveal the Event Data JSON payload. The payload contains the raw context captured at event time - useful for diagnosing unexpected changes or reconciling Stripe webhook activity.
Event Types
| Badge | Event type | Meaning |
|---|---|---|
| Green | Created | Partner subscription record first created |
| Blue | Tier Changed | Subscription tier moved to a different tier |
| Gray | Tier Config Changed | Tier configuration updated without a tier change |
| Indigo | Status Changed | Subscription status transitioned (e.g. active → suspended) |
| Green | Payment Succeeded | Stripe payment processed successfully |
| Red | Payment Failed | Stripe payment attempt failed |
| Amber | Trial Started | Trial period began |
| Amber | Trial Ended | Trial period expired |
| Rose | Cancelled | Subscription cancelled |
| Purple | Override Added | A per-partner feature or limit override was applied |
| Purple | Override Modified | An existing per-partner override was updated |
| Purple | Override Removed | A per-partner override was removed |
| Purple | Override Expired | A time-limited override reached its expiry date |
| Gray | Tier Features Changed | Feature flags within the current tier were reconfigured |
| Amber | Grace Reminder Sent | A grace-period reminder notification was dispatched |
Filtering Events
Use the filter bar above the timeline to narrow results:
- Event type - Select a specific event category from the dropdown, or leave at "All event types" to show everything.
- From / To - Enter a date range. The "To" date is inclusive through end of day in your local timezone.
Click Apply to run the filtered query. Click Reset to clear all filters and reload the full history.
Use the refresh button (circular arrow) to reload the current view without changing filters.
Pagination
History defaults to 50 events per page, newest first. Use Previous and Next to move through pages. The footer shows the current page, total pages, and total event count.
Regional Scope
Subscription history is stored per region. The timeline queries the Global Admin Portal's primary region. Cross-region aggregation is intentionally not supported; if a partner's region differs from the portal's primary region, navigate to that region's portal to view their history.
FAQ
Why is a card's "triggered by" field showing stripe-webhook?
Stripe-initiated events (payment results, subscription status changes from Stripe) are processed by the webhook handler and attributed to stripe-webhook rather than a user identity.
The timeline shows no events for a new partner - is that expected?
Yes. A created event is written when the partner's subscription record is first established. If even that event is missing, the subscription record may not yet exist for this region.
Can I export history?
Export is not available in the UI. Use the GET /api/billing-admin/partners/{partnerId}/subscription-history API directly with the startDate, endDate, and limit parameters to pull a full dataset.