Avnology ID
API ReferenceWebhooks

Webhook Events

Complete catalog of webhook event types with payload schemas for user, session, organization, OAuth, SSO, and permission events.

Webhook Events

Every webhook delivery includes a JSON payload with a consistent envelope format. The event_type field identifies the event, and the payload field contains the event-specific data.

Event Envelope

{
  "event_id": "evt_a1b2c3d4-e5f6-7890-abcd-ef1234567890"







FieldDescription
event_idUnique identifier for deduplication
event_typeThe event type (see tables below)
timestampWhen the event occurred (RFC 3339)
schema_versionPayload schema version for forward compatibility
actor_idThe user or service account that triggered the event
actor_typeuser, service_account, or system
organization_idOrganization context (if applicable)
payloadEvent-specific data

User Events

Event TypeTrigger
user.createdNew user account created
user.updatedUser profile, traits, or metadata changed
user.deletedUser permanently deleted
user.disabledUser account deactivated
user.enabledUser account reactivated
user.email_verifiedUser's email address verified
user.phone_verifiedUser's phone number verified
user.password_changedUser changed their password
user.mfa_enrolledUser enrolled a new MFA method
user.mfa_removedUser removed an MFA method
user.deletion_scheduledUser deletion scheduled (30-day countdown)
user.deletion_cancelledScheduled deletion was cancelled

user.created Payload

{
  "payload": {
    "user": {
      "id": "usr_4f18acec-2712-4be7-a9af-b063b4f6deba",
      "email": "[email protected]",
      "first_name": "Jane",
      "last_name": "Smith",
      "email_verified": false,
      "state": "active",
      "organization_id": "org_7a2b3c4d",




user.updated Payload

{
  "payload": {
    "user": { "id": "usr_4f18acec", "email": "[email protected]", "..." : "..." },
    "changed_fields": ["first_name", "phone"],
    "previous_values": { "first_name": "Jane", "phone": null },
    "new_values": { 

user.mfa_enrolled Payload

{
  "payload": {
    "user_id": "usr_4f18acec",
    "method": "totp",
    "label": "Google Authenticator",
    "credential_id": "cred_abc123"
  }
}

Session Events

Event TypeTrigger
session.createdNew session established after login
session.revokedSession terminated (logout, admin action, or expiry)

session.created Payload

{
  "payload": {
    "session_id": "ses_1a2b3c4d",
    "user_id": "usr_4f18acec",
    "ip_address": "203.0.113.42",
    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",
    "location": { "country": "US", "city": "San Francisco" },
    "auth_methods": ["password", "totp"


Organization Events

Event TypeTrigger
organization.createdNew organization created
organization.updatedOrganization settings, policies, or branding changed
organization.deletedOrganization deleted
organization.member_addedUser joined an organization
organization.member_removedUser removed from an organization
organization.member_role_changedMember's role was changed
organization.invitation_sentInvitation email sent
organization.invitation_acceptedInvitation accepted
organization.domain_verifiedDomain ownership verified

organization.member_added Payload

{
  "payload": {
    "organization_id": "org_7a2b3c4d",
    "user_id": "usr_7b2c3d4e",
    "role": "member",
    "added_by": "usr_4f18acec"
  }
}

OAuth Events

Event TypeTrigger
oauth.client_createdNew OAuth application registered
oauth.client_updatedOAuth application settings changed
oauth.client_deletedOAuth application deleted
oauth.token_issuedAccess token issued (authorization code or client credentials)
oauth.token_revokedToken explicitly revoked
oauth.consent_grantedUser granted consent to an application
oauth.consent_revokedUser revoked consent from an application

oauth.token_issued Payload

{
  "payload": {
    "client_id": "cli_abc123def456",
    "user_id": "usr_4f18acec",
    "grant_type": "authorization_code",
    "scopes": ["openid", "profile", "email"],
    "token_type": "access_token"
  }
}

SSO Events

Event TypeTrigger
sso.connection_createdNew SSO connection configured
sso.connection_activatedSSO connection activated and ready
sso.connection_deletedSSO connection removed
sso.login_succeededUser authenticated via SSO
sso.login_failedSSO authentication failed

Directory Sync Events

Event TypeTrigger
scim.user_provisionedUser created via SCIM push
scim.user_updatedUser updated via SCIM push
scim.user_deprovisionedUser deactivated/deleted via SCIM push
scim.group_createdGroup created via SCIM push
scim.group_updatedGroup membership changed via SCIM push
scim.group_deletedGroup deleted via SCIM push

scim.user_provisioned Payload

{
  "payload": {
    "directory_id": "dir_abc123",
    "scim_user_id": "scim_usr_xyz",
    "email": "[email protected]",
    "first_name": "Bob",
    "last_name": "Wilson",
    "avnology_user_id": "usr_7b2c3d4e"
  }
}

Permission Events

Event TypeTrigger
permission.grantedPermission tuple created
permission.revokedPermission tuple removed

permission.granted Payload

{
  "payload": {
    "namespace": "organizations",
    "object": "org_7a2b3c4d",
    "relation": "admin",
    "subject": "identities:usr_7b2c3d4e"
  }
}

Delivery Format

Webhook deliveries are POST requests to your endpoint URL with:

HeaderValue
Content-Typeapplication/json
X-Avnology-SignatureHMAC-SHA256 signature
X-Avnology-TimestampUnix timestamp of delivery
X-Avnology-EventEvent type
X-Avnology-Delivery-IdUnique delivery ID

Retry Policy

Failed deliveries (non-2xx response or timeout) are retried with exponential backoff:

AttemptDelay
1Immediate
21 minute
35 minutes
430 minutes
52 hours
612 hours
724 hours

After 7 failed attempts, the delivery moves to the dead letter queue. Use the Replay Delivery endpoint to retry manually.