Skip to main content
Two events share the subscription resource. They are delivered in the Standard-Webhooks envelope; the fields below describe the data object. Every event requires the read:self scope. Fanvue models cancellation as cancel_at_period_end plus an expires_at, not an immediate removal: a buyer who cancels keeps access until expires_at. Gate access on expires_at, not on status. The money and the access state are separate events: a subscription’s initial charge emits both app.payment.succeeded (with billing_reason: subscription_initial) and app.subscription.activated.
app.subscription.deactivated is reserved for when a subscription’s access actually ends, but is not emitted yet. Read live subscription state with the App Subscriptions endpoints in the meantime.

Subscription resource

data.object is "subscription" for both events.

Examples

app.subscription.activated

app.subscription.cancel_at_period_end_changed

Reconciling

Because app.subscription.deactivated is not emitted yet, and because webhooks can be missed or delayed, read live subscription state from the App Subscriptions endpoints rather than deriving it from events alone.