This page covers the events that our V5 webhooks send. Currently, they are only sent to apps.

We also provide Typescript interfaces for each webhook event, which you can use to safely parse the webhook data.


membership.went_valid

This webhook will fire when a membership becomes valid, typically when a membership is created or a user checks out.

Business Logic Example: Mark a user’s subscription as valid, which allows them to access a gated section of my app.

Important Attributes: id, valid, status, user_id, product_id

membership.went_invalid

This webhook will fire when a membership becomes invalid, typically when a subscription is canceled or the membership expires.

Business Logic Example: Mark a user’s subscription as invalid, which blocks them from accessing a gated section of my app.

Important Attributes: id, valid, status, user_id, product_id


payment.succeeded

This webhook will fire when a payment is successful, for both new and existing memberships.

Business Logic Example: Update a user’s credit balance with the amount of the payment and send them a receipt via email.

Important Attributes: id, membership_id, status, final_amount, user_id, product_id


payment.failed

This webhook will fire whenever a payment attempt fails. This is usually due to a card having insufficient funds, or a crypto payment not having a proper allowance or balance.

Business Logic Example: Record the failed payment attempt so that you can remind the user with an overlay inside of your app to have them update their payment method.

Important Attributes: id, membership_id, status, final_amount, user_id, product_id