Skip to content

Subscription.renewed

Emitted each time a Subscription is renewed.

Subscription.renew emits Subscription.renewed when it completes on a Subscription.

PropertyValue
Emitted bySubscription.renew
NounSubscription
MovesSubscription trialing to active
WakesNone.

Payload

Each delivery is an Event record. data holds what Subscription.renew returns, and previous holds the state it left.

FieldTypeRequiredDescription
namestringrequiredSubscription.renewed.
atdatetimerequiredWhen it happened.
seqintegerIts position in the namespace, one more than the Event before; any seq is a cursor into the history.
datajsonrequiredThe Thing as the Action left it.
data.invoiceInvoicerequiredThe Invoice for the new period.
data.subscriptionSubscriptionrequiredThe Subscription in its new period.
data.subscription.statusstringrequiredOne of active, trialing, pastDue, paused, incomplete, or canceled.
data.subscription.renewsAtdatetimeWhen it next renews.
data.subscription.quantityintegerHow many units of the Offer’s Price it holds, such as 12 members; 1 by default.
data.subscription.trialEndsAtdatetimeWhen a trial ends and the first paid period starts.
data.subscription.termEndsAtdatetimeWhen a committed term ends; the Renewal and the renewal notice read it.
data.previous.statusstringrequiredThe status before this Event: trialing.

Example

JSON
{
  "$id": "https://api.sb/routewise.dev/events/event_1",
  "$type": "Event",
  "name": "Subscription.renewed",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "invoice": {
      "$id": "https://api.sb/routewise.dev/invoices/invoice_1",
      "$type": "Invoice",
      "total": {
        "amount": 25,
        "currency": "USD"
      },
      "due": "2026-10-22"
    },
    "subscription": {
      "$id": "https://api.sb/routewise.dev/subscriptions/subscription_1",
      "$type": "Subscription",
      "status": "active",
      "renewsAt": "2026-10-22T12:00:00Z",
      "quantity": 1,
      "trialEndsAt": "2026-10-22T12:00:00Z",
      "termEndsAt": "2026-10-22T12:00:00Z"
    },
    "previous": {
      "status": "trialing"
    }
  },
  "seq": 1
}