2.5 KiB
title, intro, redirect_from, versions, topics, shortTitle
| title | intro | redirect_from | versions | topics | shortTitle | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Handling plan cancellations | Cancelling a {% data variables.product.prodname_marketplace %} app triggers the [`marketplace_purchase` event](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events) webhook with the `cancelled` action, which kicks off the cancellation flow. |
|
|
|
Plan cancellations |
For more information about cancelling as it relates to billing, see "Billing customers in {% data variables.product.prodname_marketplace %}."
Step 1. Cancellation event
If a customer chooses to cancel a {% data variables.product.prodname_marketplace %} order, GitHub sends a marketplace_purchase webhook with the action cancelled to your app when the cancellation takes effect. If the customer cancels during a free trial, your app will receive the event immediately. When a customer cancels a paid plan, the cancellation will occur at the end of the customer's billing cycle.
Step 2. Deactivating customer accounts
When a customer cancels a free or paid plan, your app must perform these steps to complete cancellation:
- Deactivate the account of the customer who cancelled their plan.
- Revoke the OAuth token your app received for the customer.
- If your app is an OAuth App, remove all webhooks your app created for repositories.
- Remove all customer data within 30 days of receiving the
cancelledevent.
{% note %}
Note: We recommend using the marketplace_purchase webhook's effective_date to determine when a plan change will occur and periodically synchronizing the List accounts for a plan. For more information on webhooks, see "{% data variables.product.prodname_marketplace %} webhook events."
{% endnote %}