Early bird discounts live! Claim your offer

subscription.* events

Every transition across the 13 subscription statuses, plus upgrade / downgrade.

The busiest event family. Subscribe to these to drive CRM timelines, revenue dashboards, churn-risk pipelines, and Slack alerts.

Events

EventFires when
subscription.createdA new subscription row becomes active via paid checkout, access code redemption, or trial activation.
subscription.activatedA non-active subscription (trial, paused) transitions to active.
subscription.trial_startedA trial-enabled plan starts its free window.
subscription.trial_convertingA trial is about to convert — fires 24h before conversion.
subscription.trial_expiredA trial ended without converting.
subscription.renewedRecurring billing charges the subscriber successfully.
subscription.reactivatedA cancelled subscription is re-activated before ends_at.
subscription.pausedSubscription paused by creator or subscriber.
subscription.unpausedA paused subscription resumes.
subscription.past_dueBilling fails but grace period is active.
subscription.unpaidBilling permanently failed; grace expired.
subscription.cancelledCancellation recorded, access continues until ends_at.
subscription.expiredends_at reached; access revoked.
subscription.refundedPayment refunded; subscription may or may not be terminated.
subscription.upgradedSubscriber moved to a higher-priced plan.
subscription.downgradedSubscriber moved to a lower-priced plan.

See the dedicated pages above for full payload, field reference, and caveats per event.

Example payload

{
  "id": "evt_01HX...",
  "type": "subscription.created",
  "created_at": "2026-05-18T10:05:00Z",
  "api_version": "2026-05-01",
  "project_id": "prj_01HX...",
  "data": {
    "subscription": {
      "id": "sub_01HX...",
      "plan_id": "pln_01HX...",
      "subscriber_id": "usr_01HX...",
      "status": "active",
      "trial_ends_at": null,
      "ends_at": "2026-06-18T10:05:00Z"
    },
    "plan": {
      "id": "pln_01HX...",
      "name": "Premium Monthly",
      "price": 29.0,
      "currency": "USD"
    },
    "subscriber": {
      "id": "usr_01HX...",
      "telegram_user_id": "123456789",
      "email": null
    }
  }
}

Guarantees

  • subscription.created always precedes member.joined and payment.succeeded for paid plans.
  • Each transition fires exactly once per subscription per state change.
  • Out-of-order delivery is possible during retries — use MP-Event-Id to de-dupe and created_at to sequence.

Required abilities

Tokens subscribing to subscription.* events must carry project-subscription:view-any.

How is this guide?

On this page

MemberPass is a product designed by you — for you.

No boardroom full of executives deciding what we ships next. Our roadmap always shaped by you with your feedback.

Share feedback or a request