Subscriptions - Sample Payload

Sample payload for Subscriptions

The table below lists the Webhook events available for Subscriptions.

Handy Tips

The payload for all these events contain the subscription entity. They also contain a payment entity if a payment attempt was made before the event was triggered.

Webhook EventDescription
subscription.authenticatedSent when the first payment is made on the subscription. This can either be the authorization amount, the upfront amount, the plan amount or a combination of the plan amount and the upfront amount.
subscription.activatedSent when the subscription moves to the active state either from the authenticated , pending or halted state. If a Subscription moves to the active state from the pending or halted state, only the subsequent invoices that are generated are charged. Existing invoices that were already generated are not charged.
subscription.chargedSent every time a successful charge is made on the subscription.
subscription.completedSent when all the invoices are generated for a subscription and the subscription moves to the completed state.
subscription.updatedSent when a subscription is successfully updated. There is no state change when a subscription is updated.
subscription.pendingSent when the subscription moves to the pending state. This happens when a charge on the card fails. We try to charge the card on a periodic basis while it is in the pending state. If the payment fails again, the Webhook is triggered again.
subscription.haltedSent when all retries have been exhausted and the subscription moves from the pending state to the halted state. The customer has to manually retry the charge or change the card linked to the subscription, for the subscription to move back to the active state.
subscription.cancelledSent when a subscription is cancelled and moved to the cancelled state.
subscription.pausedSent when a subscription is paused and moved to the paused state.
subscription.resumedSent when a subscription is resumed and moved to the resumed state.

Watch Out!

If you have changed your webhook secret, remember to use the old secret for webhook signature validation while retrying older requests. Using the new secret will lead to signature mismatch.

Do Not Parse or Cast the Webhook Request Body

While generating a signature at your end, ensure that the webhook body is passed as an argument in the raw webhook request body. Do not parse or cast the webhook request body.

Was this page helpful?