---
title: "Plans Updated"
openapi: "api/openapi.yml webhook billing.updated"
---
### Payload Fields
The ID of the customer whose plans changed.
The ID of the entity, if the changes are scoped to a specific entity.
The plans that were activated, scheduled, updated, or expired.
The lifecycle action applied to this plan: activated (newly active on the customer), scheduled (queued for a future start), updated (mutated in place), or expired (ended).
The subscription as it stands after this change. Present when the plan is billed as a recurring subscription.
The ID of the customer plan.
The current status of the subscription on the customer.
Whether the subscription has overdue payments.
When the subscription started, in milliseconds since the Unix epoch.
When the subscription was canceled, in milliseconds since the Unix epoch, or null if not canceled.
When the subscription ends, in milliseconds since the Unix epoch, or null if no expiry is set.
When the trial ends, in milliseconds since the Unix epoch. Null when not actively trialing.
Start of the current billing period, or null if not applicable.
End of the current billing period, or null if not applicable.
The purchase as it stands after this change. Present when the plan is a one-off purchase.
The ID of the customer plan.
The current status of the purchase on the customer.
When the purchase ends, in milliseconds since the Unix epoch, or null if no expiry is set.
Sparse map of scalar fields whose values changed, holding their previous values. Null when the plan is newly activated or scheduled.
Features that were added to or removed from this plan. Only populated for updated plans.
Whether the feature was added to or removed from the plan.
The ID of the feature that was added or removed.
Reason tags describing why this event fired (e.g. 'trial_ended', 'phase_changed'). Always present; empty when no specific reason applies.