subscription.updated
A subscription changed while it stayed live: a trial converted, the plan or billing cadence changed, a freeze started or ended, or a failed payment recovered. previous_attributes holds the prior values.
Sent only for subscriptions on the subscription billing engine — a membership on the legacy model emits no subscription.* signals. See the Subscription object for how to tell the two apart.
Scope: the webhook endpoint’s scopes must include customers:read. Missed a delivery? The same signal is available from GET /v1/signals.
Header Parameters
The message id — stable across retries of the same message. Deduplicate on the body’s id (the signal id), not on this: an endpoint whose api_version changes while a signal is being retried can receive that signal once per version, as two messages with two message ids.
When this attempt was sent, in Unix seconds.
Signature over the id, timestamp and raw body, made with your endpoint’s secret. Verify it with any Standard Webhooks library before trusting the payload.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
Example Requests
/subscription.updated