App Installations

App Installation Deleted

Sent to your app's own webhooks when an account removes your app. The installation stops appearing in GET /app_installations, and your app can no longer act on that account. The envelope's account_id is the account that removed it

Required permissions:

  • webhook_receive:app_installations
postWebhookapp_installation.deleted

Headers

webhook-idstring required

A unique identifier for this webhook request

Example:msg_xxxxxxxxxxxxxxxxxxxxxxxx
webhook-signaturestring required

The signature of the webhook request with the webhook version prepended

Example:v1,BASE64ENCODEDSIGNATURE
webhook-timestampstring required

The timestamp in seconds since the Unix epoch that the webhook was sent at on the server

Example:1727606400

Payload

account_idstring nullable

The account ID that this webhook event is associated with

api_version'v1' required

The API version for this webhook

api_version_datestring nullable required

The dated API version (Api-Version-Date) the payload is serialized to

idstring required

A unique ID for every single webhook request

previous_attributesobject

For some .updated events, the old values of the payload fields that changed, keyed by field name. Omitted when no capture is available for the event

timestampstring date-time required

The timestamp in ISO 8601 format that the webhook was sent at on the server

type'app_installation.deleted' required

The webhook event type

Example payload

{
  "account_id": "biz_xxxxxxxxxxxxxx",
  "api_version": "v1",
  "api_version_date": "2026-07-20",
  "data": {
    "account": {
      "id": "biz_xxxxxxxxxxxxxx",
      "title": "Acme Bookkeeping"
    },
    "app": {
      "developer": {
        "id": "biz_xxxxxxxxxxxxxx",
        "title": "Acme Bookkeeping"
      },
      "icon": {
        "url": "https://pub-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.r2.dev/custom-perk-icon.svg"
      },
      "id": "app_xxxxxxxxxxxxxx",
      "name": "Other App"
    },
    "created_at": "2026-01-01T12:00:00.000Z",
    "external_id": "acme-books",
    "id": "aag_xxxxxxxxxxxxxx",
    "metadata": {
      "last_synced_at": "2026-01-01T12:00:00.000Z",
      "quickbooks_realm_id": "9341452712"
    },
    "updated_at": "2026-01-01T12:00:00.000Z"
  },
  "id": "msg_xxxxxxxxxxxxxxxxxxxxxxxx",
  "timestamp": "2025-01-01T00:00:00.000Z",
  "type": "app_installation.deleted"
}

Response

Return a 200 status to indicate that the data was received successfully

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.