Modpanel subscription end_date follows Mekari Billing updates
Jira: TBD — to be minted as a Story under Epic BIF-8695 · Epic: BIF-8695
Overview
- Before: When Mekari Billing sends a new subscription
end_datefor an organization whose current subscription is not yet expired, Modpanel does not adopt the newend_date. Expiry-driven logic (notably the "subscription about to expire" reminder email) keeps running against the oldend_date. - After: Modpanel always follows the latest
end_datesent by Mekari Billing, even when the current subscription has not expired yet. A renewal/extension takes effect immediately and expiry reminders reflect the newend_date.
Problem this fixes — A customer who has already paid (renewed/extended) still
receives a "subscription about to expire" email, because the paid renewal pushed a
new (later) end_date from Mekari Billing but Modpanel is still enforcing the old one.
Following the new end_date on receipt stops the false expiry warning.
Related pattern: this mirrors A8 — IG Comment validity follows subscription end_date
(both make a Modpanel-side value follow the end_date Mekari Billing sends). Source:
internal support thread (customer paid, still warned about expiry).
Scope Changes
- Backend — on a Mekari Billing subscription-update, adopt the new
end_dateeven when the current subscription is still active; expiry-reminder scheduling reads the updatedend_date.
Out of scope
- No Modpanel UI change beyond reflecting the already-synced
end_date— this is a backend sync + expiry-trigger fix.
8. User Stories + Acceptance Criteria
| User Story | Importance | Mockup / Technical Notes | Acceptance Criteria |
|---|---|---|---|
| [BILLEND-S01] — Subscription end_date follows Mekari Billing update As the billing sync system, I want Modpanel to adopt the end_date from every Mekari Billing subscription update — even when the current subscription is not yet expired — so that a customer who has already paid to renew/extend is not warned that their subscription is about to expire. | Should Have | Applies to a subscription-update from Mekari Billing carrying a changed end_date. Confirm V1/V3 coverage (A8 applied to both). The "about to expire" reminder must read the updated end_date. | — Happy Path — • AC-1: Given an organization whose subscription is active and not yet expired, when Mekari Billing sends a subscription update carrying a new end_date, then Modpanel updates the subscription's end_date to the new value (not only after the old end_date passes).• AC-2: Given the end_date has been extended after a paid renewal so the subscription is no longer near expiry, when the "subscription about to expire" reminder would have fired against the old end_date, then no expiry-reminder email is sent (the reminder evaluates the new end_date).— Guard-rail — • NEG-1: Given other subscription fields/emails, when the update is applied, then only end_date-driven state follows the update; unrelated billing/notification behaviour is unchanged. |
Open questions
- Direction of change — does the new
end_datealways win, including a shorter (earlier)end_date, or only extensions? (Default assumption: always follow the value Mekari Billing sends.) - Which reminder job(s) read
end_datefor the "about to expire" email — confirm the trigger and whether any already-scheduled reminders must be re-evaluated/cancelled when theend_datemoves. - Billing version scope — V1, V3, or both (A8 covered both).
- Store vs display — is the fix on the subscription record the platform uses for expiry logic, or only Modpanel's displayed value? (Expiry email must read the same updated value.)