Handling plan cancellations

Cancelling a GitHub Marketplace app triggers the marketplace_purchase event webhook with the cancelled action, which kicks off the cancellation flow.

For more information about cancelling as it relates to billing, see "Billing customers in GitHub Marketplace."

Step 1. Cancellation event

If a customer chooses to cancel a GitHub 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:

  1. Deactivate the account of the customer who cancelled their plan.
  2. Revoke the OAuth token your app received for the customer.
  3. If your app is an OAuth App, remove all webhooks your app created for repositories.
  4. Remove all customer data within 30 days of receiving the cancelled event.

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 "GitHub Marketplace webhook events."

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Or, learn how to contribute.