Skip to content

Services Document Flow

Subscriptions use SubscriptionStatus and invoices use SubscriptionInvoiceStatus. Lifecycle controls are inline buttons on the list and detail pages — there is no MudMenu Actions list. Decline Rejection / Decline Cancellation do not apply.

Hub: Target Document Flow. Overview: Services.

  • Draft / Trialing
  • Active
  • Suspended
  • Cancelled / Expired
Subscription (`SubscriptionStatus`)

#Statuses

Draft, Active, Suspended, Cancelled, Expired, Trialing

Domain: Activate, Suspend, Resume, Cancel, Expire, Renew, ScheduleCancelAtPeriodEnd().

Subscription lifecycle — Activate, Suspend, Cancel, Expire

flowchart TB
  Start((Create)) --> Draft[Draft]
  Draft -->|Activate| Active[Active]
  Active -->|Suspend| Suspended[Suspended]
  Suspended -->|Resume| Active
  Active -->|Cancel| Cancelled[Cancelled]
  Active -->|Expire| Expired[Expired]

  class Start egkStart
  class Draft egkDraft
  class Active egkSuccess
  class Suspended egkWarn
  class Cancelled,Expired egkTerminal
Control (UI) Surface Behavior
Activate / Suspend / Resume / Cancel Subscriptions list (inline) Domain transition methods
Cancel at period end Subscription detail POST .../cancel-at-period-end; disabled when CancelAtPeriodEnd already true; chip “Cancels at period end”

ScheduleCancelAtPeriodEnd sets CancelAtPeriodEnd=true and AutoRenew=false; cancel applies on the next billing boundary (GenerateInvoice / OpenNextPeriod).

Subscription invoice (`SubscriptionInvoiceStatus`)

Draft, Posted, Paid, PartiallyPaid, Overdue, Cancelled

UI mirrors the same values (SubscriptionInvoiceStatusUi). No ETA-style Approve/Reject menu on invoices.

#Post-action sync

List and detail refresh after activate/suspend/resume/cancel or cancel-at-period-end. Failed calls leave prior status and flags.

#Scenarios

Scenario Result
Activate draft → Active
Cancel at period end Flag set; status may stay Active until period end
Already scheduled cancel Button disabled
Expect MudMenu Submit Not implemented

Reconnecting to the server…

This page stays right here while we reconnect.

Still waiting? You can reload the page.