> ## Documentation Index
> Fetch the complete documentation index at: https://docs.accessowl.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Revocation Events

AccessOwl emits webhook events throughout the access revocation lifecycle. All revocation event payloads share a common `data` structure:

| Field               | Type   | Description                                           |
| ------------------- | ------ | ----------------------------------------------------- |
| `id`                | string | The UUID of the revocation                            |
| `affected_user`     | object | The user whose access is being revoked                |
| `requested_by`      | object | The user who initiated the revocation                 |
| `application`       | object | The application the access is being revoked from      |
| `resource`          | object | The specific resource within the application          |
| `object`            | object | **Deprecated** (removed August 2026) — use `resource` |
| `revocation_reason` | string | The reason provided for the revocation                |
| `created_at`        | string | ISO 8601 timestamp of when the revocation was created |

<Tabs>
  <Tab title="revocation.created">
    Fired when an access revocation is initiated.

    ```json theme={null}
    {
      "affected_user": {
        "email": "john.doe@example.com",
        "full_name": "John Doe",
        "id": "8b15e986-84ac-4dbc-8e66-c82ebf3d2fc2"
      },
      "application": {
        "id": "c4d5e6f7-a8b9-0123-cdef-456789abcdef",
        "tags": [
          "Foo",
          "Bar",
          "Baz"
        ],
        "title": "GitHub"
      },
      "created_at": "2022-07-13T23:42:00Z",
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "object": {
        "id": "d5e6f7a8-b9c0-1234-defa-56789abcdef0",
        "title": "Engineering Team"
      },
      "requested_by": {
        "email": "admin@example.com",
        "full_name": "Admin User",
        "id": "5a3e57df-2d08-46be-b5bd-b3ea505a3d26"
      },
      "resource": {
        "id": "d5e6f7a8-b9c0-1234-defa-56789abcdef0",
        "title": "Engineering Team"
      },
      "revocation_reason": "Employee offboarded"
    }
    ```
  </Tab>

  <Tab title="revocation.rejected">
    Fired when a provisioner is unable to revoke access. This can happen when an integration fails or a manual provisioner rejects the deprovisioning step.

    The `data` object includes additional fields:

    | Field           | Type   | Description                                            |
    | --------------- | ------ | ------------------------------------------------------ |
    | `provisioner`   | object | The actor who attempted the revocation                 |
    | `reject_reason` | string | The reason given for the rejection                     |
    | `rejected_at`   | string | ISO 8601 timestamp of when the revocation was rejected |

    ```json theme={null}
    {
      "affected_user": {
        "email": "john.doe@example.com",
        "full_name": "John Doe",
        "id": "8b15e986-84ac-4dbc-8e66-c82ebf3d2fc2"
      },
      "application": {
        "id": "c4d5e6f7-a8b9-0123-cdef-456789abcdef",
        "tags": [
          "Foo",
          "Bar",
          "Baz"
        ],
        "title": "GitHub"
      },
      "created_at": "2022-07-12T23:42:00Z",
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "object": {
        "id": "d5e6f7a8-b9c0-1234-defa-56789abcdef0",
        "title": "Engineering Team"
      },
      "provisioner": {
        "email": "provisioner@example.com",
        "full_name": "Provisioner User",
        "id": "7c9e1f2a-3b4d-5e6f-8a9b-0c1d2e3f4a5b",
        "type": "manual"
      },
      "reject_reason": "Access not available for this resource",
      "rejected_at": "2022-07-13T23:42:00Z",
      "requested_by": {
        "email": "admin@example.com",
        "full_name": "Admin User",
        "id": "5a3e57df-2d08-46be-b5bd-b3ea505a3d26"
      },
      "resource": {
        "id": "d5e6f7a8-b9c0-1234-defa-56789abcdef0",
        "title": "Engineering Team"
      },
      "revocation_reason": "Employee offboarded"
    }
    ```
  </Tab>

  <Tab title="revocation.revoked">
    Fired when access has been successfully revoked.

    The `data` object includes additional fields:

    | Field         | Type   | Description                                                                                 |
    | ------------- | ------ | ------------------------------------------------------------------------------------------- |
    | `provisioner` | object | The actor who performed the revocation, including a `type` field (`manual` or `automation`) |
    | `revoked_at`  | string | ISO 8601 timestamp of when access was revoked                                               |

    ```json theme={null}
    {
      "affected_user": {
        "email": "john.doe@example.com",
        "full_name": "John Doe",
        "id": "8b15e986-84ac-4dbc-8e66-c82ebf3d2fc2"
      },
      "application": {
        "id": "c4d5e6f7-a8b9-0123-cdef-456789abcdef",
        "tags": [
          "Foo",
          "Bar",
          "Baz"
        ],
        "title": "GitHub"
      },
      "created_at": "2022-07-12T23:42:00Z",
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "object": {
        "id": "d5e6f7a8-b9c0-1234-defa-56789abcdef0",
        "title": "Engineering Team"
      },
      "provisioner": {
        "email": "provisioner@example.com",
        "full_name": "Provisioner User",
        "id": "7c9e1f2a-3b4d-5e6f-8a9b-0c1d2e3f4a5b",
        "type": "manual"
      },
      "requested_by": {
        "email": "admin@example.com",
        "full_name": "Admin User",
        "id": "5a3e57df-2d08-46be-b5bd-b3ea505a3d26"
      },
      "resource": {
        "id": "d5e6f7a8-b9c0-1234-defa-56789abcdef0",
        "title": "Engineering Team"
      },
      "revocation_reason": "Employee offboarded",
      "revoked_at": "2022-07-13T23:42:00Z"
    }
    ```
  </Tab>
</Tabs>
