Frontegg · AsyncAPI Specification

Frontegg Webhooks

Version 1.0.0

AsyncAPI 2.6 description of Frontegg's outbound webhook surface. Frontegg signs each delivery with an `x-webhook-secret` header containing the configured signing secret, and treats any 2XX HTTP response as a successful delivery. Event names are documented by Frontegg using a `frontegg..` convention and cover authentication, user lifecycle, MFA, tenants, groups, applications, plans, API tokens, and SCIM provisioning. Payload schemas in this document model the documented event surface; Frontegg does not publish a single canonical JSON schema per event, so receiver-side payload field shape may vary by environment configuration.

View Spec View on GitHub AuthenticationAuthorizationIdentity ManagementCIAMB2B SaaSMulti-TenancyRBACSSOSCIMEntitlementsOAuthOpenID ConnectAsyncAPIWebhooksEvents

Channels

frontegg.user.authenticated
publish onUserAuthenticated
User signed in successfully.
A user signs in successfully.
frontegg.user.authenticatedWithSAML
publish onUserAuthenticatedWithSAML
User authenticated via SAML.
A user authenticates via SAML SSO.
frontegg.user.authenticatedWithSSO
publish onUserAuthenticatedWithSSO
User authenticated via SSO.
A user authenticates via SSO (non-SAML providers).
frontegg.user.failedAuthentication
publish onUserFailedAuthentication
User failed authentication.
A user attempted to sign in and provided invalid credentials.
frontegg.user.enrolledMFA
publish onUserEnrolledMFA
User enrolled in MFA.
A user enrolled in multi-factor authentication.
frontegg.user.disabledMFA
publish onUserDisabledMFA
User disabled MFA.
A user disabled their MFA configuration.
frontegg.user.created
publish onUserCreated
User created.
A user account was created in Frontegg.
frontegg.user.signedUp
publish onUserSignedUp
User signed up.
A user completed the sign-up flow.
frontegg.user.activated
publish onUserActivated
User activated.
A user completed account activation.
frontegg.user.deleted
publish onUserDeleted
User deleted.
A user account was deleted.
frontegg.user.updated
publish onUserUpdated
User updated.
A user profile was updated.
frontegg.user.invitedToTenant
publish onUserInvitedToTenant
User invited to tenant.
A user was invited to join a tenant.
frontegg.user.removedFromTenant
publish onUserRemovedFromTenant
User removed from tenant.
A user was removed from a tenant.
frontegg.user.joinedTenantUsingInvitationLink
publish onUserJoinedTenantUsingInvitationLink
User joined tenant via invitation link.
A user joined a tenant using an invitation link.
frontegg.user.changedPassword
publish onUserChangedPassword
User changed password.
A user changed their password.
frontegg.user.forgotPassword
publish onUserForgotPassword
User forgot password.
A user initiated a forgot-password flow.
frontegg.user.temporary.access.given
publish onUserTemporaryAccessGiven
Temporary access granted.
Temporary access was granted to a user.
frontegg.user.temporary.access.edited
publish onUserTemporaryAccessEdited
Temporary access edited.
A user's temporary access was modified.
frontegg.user.temporary.access.temporary.to.permanentd
publish onUserTemporaryToPermanent
Temporary user promoted to permanent.
A user was converted from temporary access to permanent access. Event name preserved as documented by Frontegg.
frontegg.userApiToken.created
publish onUserApiTokenCreated
User API token created.
A user API token was created.
frontegg.userApiToken.deleted
publish onUserApiTokenDeleted
User API token deleted.
A user API token was revoked.
frontegg.tenant.created
publish onTenantCreated
Tenant created.
A tenant was created.
frontegg.tenant.updated
publish onTenantUpdated
Tenant updated.
A tenant was updated.
frontegg.tenant.deleted
publish onTenantDeleted
Tenant deleted.
A tenant was deleted.
frontegg.tenantApiToken.created
publish onTenantApiTokenCreated
Tenant API token created.
A tenant API token was created.
frontegg.tenantApiToken.deleted
publish onTenantApiTokenDeleted
Tenant API token deleted.
A tenant API token was revoked.
frontegg.group.created
publish onGroupCreated
Group created.
A group was created.
frontegg.group.updated
publish onGroupUpdated
Group updated.
A group was updated.
frontegg.group.deleted
publish onGroupDeleted
Group deleted.
A group was deleted.
frontegg.group.users.added
publish onGroupUsersAdded
Users added to group.
One or more users were added to a group.
frontegg.group.users.removed
publish onGroupUsersRemoved
Users removed from group.
One or more users were removed from a group.
frontegg.group.roles.updated
publish onGroupRolesUpdated
Group roles updated.
The roles attached to a group were updated.
frontegg.account.security.domain.restricted
publish onAccountSecurityDomainRestricted
Account security domain restricted.
A domain was restricted from signing up for this account.
frontegg.user.app.assigned
publish onUserAppAssigned
User assigned to application.
A user was assigned to an application.
frontegg.user.app.unassigned
publish onUserAppUnassigned
User unassigned from application.
A user was unassigned from an application.
frontegg.tenant.app.assigned
publish onTenantAppAssigned
Tenant assigned to application.
An application was assigned to a tenant.
frontegg.tenant.app.unassigned
publish onTenantAppUnassigned
Tenant unassigned from application.
An application was unassigned from a tenant.
frontegg.tenant.plan.assigned
publish onTenantPlanAssigned
Plan assigned to tenant.
A plan was assigned to a tenant.
frontegg.tenant.plan.unassigned
publish onTenantPlanUnassigned
Plan unassigned from tenant.
A plan was unassigned from a tenant.
frontegg.user.plan.assigned
publish onUserPlanAssigned
Plan assigned to user.
A plan was assigned to a user.
frontegg.user.plan.unassigned
publish onUserPlanUnassigned
Plan unassigned from user.
A plan was unassigned from a user.
frontegg.scim.user.created
publish onScimUserCreated
SCIM user created.
A user was provisioned via SCIM.
frontegg.scim.user.updated
publish onScimUserUpdated
SCIM user updated.
A SCIM-provisioned user was updated.
frontegg.scim.user.deleted
publish onScimUserDeleted
SCIM user deleted.
A SCIM-provisioned user was deprovisioned.
frontegg.scim.group.created
publish onScimGroupCreated
SCIM group created.
A group was created via SCIM.
frontegg.scim.group.updated
publish onScimGroupUpdated
SCIM group updated.
A SCIM group was updated.
frontegg.scim.group.deleted
publish onScimGroupDeleted
SCIM group deleted.
A SCIM group was deleted.

Messages

UserAuthenticated
User Authenticated
A user successfully signed in.
UserAuthenticatedWithSAML
User Authenticated With SAML
UserAuthenticatedWithSSO
User Authenticated With SSO
UserFailedAuthentication
User Failed Authentication
UserEnrolledMFA
User Enrolled MFA
UserDisabledMFA
User Disabled MFA
UserCreated
User Created
UserSignedUp
User Signed Up
UserActivated
User Activated
UserDeleted
User Deleted
UserUpdated
User Updated
UserInvitedToTenant
User Invited To Tenant
UserRemovedFromTenant
User Removed From Tenant
UserJoinedTenantUsingInvitationLink
User Joined Tenant Using Invitation Link
UserChangedPassword
User Changed Password
UserForgotPassword
User Forgot Password
UserTemporaryAccessGiven
User Temporary Access Given
UserTemporaryAccessEdited
User Temporary Access Edited
UserTemporaryToPermanent
User Temporary To Permanent
UserApiTokenCreated
User API Token Created
UserApiTokenDeleted
User API Token Deleted
TenantCreated
Tenant Created
TenantUpdated
Tenant Updated
TenantDeleted
Tenant Deleted
TenantApiTokenCreated
Tenant API Token Created
TenantApiTokenDeleted
Tenant API Token Deleted
GroupCreated
Group Created
GroupUpdated
Group Updated
GroupDeleted
Group Deleted
GroupUsersAdded
Group Users Added
GroupUsersRemoved
Group Users Removed
GroupRolesUpdated
Group Roles Updated
AccountSecurityDomainRestricted
Account Security Domain Restricted
UserAppAssigned
User Application Assigned
UserAppUnassigned
User Application Unassigned
TenantAppAssigned
Tenant Application Assigned
TenantAppUnassigned
Tenant Application Unassigned
TenantPlanAssigned
Tenant Plan Assigned
TenantPlanUnassigned
Tenant Plan Unassigned
UserPlanAssigned
User Plan Assigned
UserPlanUnassigned
User Plan Unassigned
ScimUserCreated
SCIM User Created
ScimUserUpdated
SCIM User Updated
ScimUserDeleted
SCIM User Deleted
ScimGroupCreated
SCIM Group Created
ScimGroupUpdated
SCIM Group Updated
ScimGroupDeleted
SCIM Group Deleted

Servers

https
subscriber {customer_webhook_url}
The HTTPS endpoint configured by a Frontegg customer (vendor) inside the Frontegg portal under Configurations -> Hooks. Frontegg POSTs JSON payloads to this URL when subscribed events fire.

AsyncAPI Specification

Raw ↑
asyncapi: '2.6.0'
info:
  title: Frontegg Webhooks
  version: '1.0.0'
  description: |
    AsyncAPI 2.6 description of Frontegg's outbound webhook surface. Frontegg signs each
    delivery with an `x-webhook-secret` header containing the configured signing secret,
    and treats any 2XX HTTP response as a successful delivery. Event names are documented
    by Frontegg using a `frontegg.<resource>.<action>` convention and cover authentication,
    user lifecycle, MFA, tenants, groups, applications, plans, API tokens, and SCIM
    provisioning. Payload schemas in this document model the documented event surface;
    Frontegg does not publish a single canonical JSON schema per event, so receiver-side
    payload field shape may vary by environment configuration.
  contact:
    name: Frontegg Developers
    url: https://developers.frontegg.com
  license:
    name: Refer to Frontegg Terms
    url: https://frontegg.com/terms
  termsOfService: https://frontegg.com/terms
defaultContentType: application/json
tags:
  - name: Authentication
    description: Login and sign-in events
  - name: MFA
    description: Multi-factor authentication enrollment events
  - name: User
    description: User lifecycle events
  - name: Tenant
    description: Tenant (account) lifecycle events
  - name: Group
    description: Group membership and role assignment events
  - name: Application
    description: User/tenant application assignment events
  - name: Plan
    description: Plan assignment events
  - name: APIToken
    description: User and tenant API token events
  - name: SCIM
    description: SCIM provisioning events
  - name: Security
    description: Account-level security events
externalDocs:
  description: Frontegg webhook integration guide
  url: https://developers.frontegg.com/ciam/guides/integrations/webhooks
servers:
  subscriber:
    url: '{customer_webhook_url}'
    protocol: https
    description: |
      The HTTPS endpoint configured by a Frontegg customer (vendor) inside the Frontegg
      portal under Configurations -> Hooks. Frontegg POSTs JSON payloads to this URL when
      subscribed events fire.
    variables:
      customer_webhook_url:
        description: Customer-supplied HTTPS URL that receives Frontegg webhook deliveries.
        default: https://example.com/frontegg/webhooks
channels:
  frontegg.user.authenticated:
    description: A user signs in successfully.
    publish:
      operationId: onUserAuthenticated
      summary: User signed in successfully.
      tags:
        - name: Authentication
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserAuthenticated'
  frontegg.user.authenticatedWithSAML:
    description: A user authenticates via SAML SSO.
    publish:
      operationId: onUserAuthenticatedWithSAML
      summary: User authenticated via SAML.
      tags:
        - name: Authentication
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserAuthenticatedWithSAML'
  frontegg.user.authenticatedWithSSO:
    description: A user authenticates via SSO (non-SAML providers).
    publish:
      operationId: onUserAuthenticatedWithSSO
      summary: User authenticated via SSO.
      tags:
        - name: Authentication
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserAuthenticatedWithSSO'
  frontegg.user.failedAuthentication:
    description: A user attempted to sign in and provided invalid credentials.
    publish:
      operationId: onUserFailedAuthentication
      summary: User failed authentication.
      tags:
        - name: Authentication
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserFailedAuthentication'
  frontegg.user.enrolledMFA:
    description: A user enrolled in multi-factor authentication.
    publish:
      operationId: onUserEnrolledMFA
      summary: User enrolled in MFA.
      tags:
        - name: MFA
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserEnrolledMFA'
  frontegg.user.disabledMFA:
    description: A user disabled their MFA configuration.
    publish:
      operationId: onUserDisabledMFA
      summary: User disabled MFA.
      tags:
        - name: MFA
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserDisabledMFA'
  frontegg.user.created:
    description: A user account was created in Frontegg.
    publish:
      operationId: onUserCreated
      summary: User created.
      tags:
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserCreated'
  frontegg.user.signedUp:
    description: A user completed the sign-up flow.
    publish:
      operationId: onUserSignedUp
      summary: User signed up.
      tags:
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserSignedUp'
  frontegg.user.activated:
    description: A user completed account activation.
    publish:
      operationId: onUserActivated
      summary: User activated.
      tags:
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserActivated'
  frontegg.user.deleted:
    description: A user account was deleted.
    publish:
      operationId: onUserDeleted
      summary: User deleted.
      tags:
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserDeleted'
  frontegg.user.updated:
    description: A user profile was updated.
    publish:
      operationId: onUserUpdated
      summary: User updated.
      tags:
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserUpdated'
  frontegg.user.invitedToTenant:
    description: A user was invited to join a tenant.
    publish:
      operationId: onUserInvitedToTenant
      summary: User invited to tenant.
      tags:
        - name: User
        - name: Tenant
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserInvitedToTenant'
  frontegg.user.removedFromTenant:
    description: A user was removed from a tenant.
    publish:
      operationId: onUserRemovedFromTenant
      summary: User removed from tenant.
      tags:
        - name: User
        - name: Tenant
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserRemovedFromTenant'
  frontegg.user.joinedTenantUsingInvitationLink:
    description: A user joined a tenant using an invitation link.
    publish:
      operationId: onUserJoinedTenantUsingInvitationLink
      summary: User joined tenant via invitation link.
      tags:
        - name: User
        - name: Tenant
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserJoinedTenantUsingInvitationLink'
  frontegg.user.changedPassword:
    description: A user changed their password.
    publish:
      operationId: onUserChangedPassword
      summary: User changed password.
      tags:
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserChangedPassword'
  frontegg.user.forgotPassword:
    description: A user initiated a forgot-password flow.
    publish:
      operationId: onUserForgotPassword
      summary: User forgot password.
      tags:
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserForgotPassword'
  frontegg.user.temporary.access.given:
    description: Temporary access was granted to a user.
    publish:
      operationId: onUserTemporaryAccessGiven
      summary: Temporary access granted.
      tags:
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserTemporaryAccessGiven'
  frontegg.user.temporary.access.edited:
    description: A user's temporary access was modified.
    publish:
      operationId: onUserTemporaryAccessEdited
      summary: Temporary access edited.
      tags:
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserTemporaryAccessEdited'
  frontegg.user.temporary.access.temporary.to.permanentd:
    description: A user was converted from temporary access to permanent access. Event name preserved as documented by Frontegg.
    publish:
      operationId: onUserTemporaryToPermanent
      summary: Temporary user promoted to permanent.
      tags:
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserTemporaryToPermanent'
  frontegg.userApiToken.created:
    description: A user API token was created.
    publish:
      operationId: onUserApiTokenCreated
      summary: User API token created.
      tags:
        - name: APIToken
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserApiTokenCreated'
  frontegg.userApiToken.deleted:
    description: A user API token was revoked.
    publish:
      operationId: onUserApiTokenDeleted
      summary: User API token deleted.
      tags:
        - name: APIToken
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserApiTokenDeleted'
  frontegg.tenant.created:
    description: A tenant was created.
    publish:
      operationId: onTenantCreated
      summary: Tenant created.
      tags:
        - name: Tenant
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/TenantCreated'
  frontegg.tenant.updated:
    description: A tenant was updated.
    publish:
      operationId: onTenantUpdated
      summary: Tenant updated.
      tags:
        - name: Tenant
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/TenantUpdated'
  frontegg.tenant.deleted:
    description: A tenant was deleted.
    publish:
      operationId: onTenantDeleted
      summary: Tenant deleted.
      tags:
        - name: Tenant
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/TenantDeleted'
  frontegg.tenantApiToken.created:
    description: A tenant API token was created.
    publish:
      operationId: onTenantApiTokenCreated
      summary: Tenant API token created.
      tags:
        - name: APIToken
        - name: Tenant
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/TenantApiTokenCreated'
  frontegg.tenantApiToken.deleted:
    description: A tenant API token was revoked.
    publish:
      operationId: onTenantApiTokenDeleted
      summary: Tenant API token deleted.
      tags:
        - name: APIToken
        - name: Tenant
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/TenantApiTokenDeleted'
  frontegg.group.created:
    description: A group was created.
    publish:
      operationId: onGroupCreated
      summary: Group created.
      tags:
        - name: Group
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/GroupCreated'
  frontegg.group.updated:
    description: A group was updated.
    publish:
      operationId: onGroupUpdated
      summary: Group updated.
      tags:
        - name: Group
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/GroupUpdated'
  frontegg.group.deleted:
    description: A group was deleted.
    publish:
      operationId: onGroupDeleted
      summary: Group deleted.
      tags:
        - name: Group
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/GroupDeleted'
  frontegg.group.users.added:
    description: One or more users were added to a group.
    publish:
      operationId: onGroupUsersAdded
      summary: Users added to group.
      tags:
        - name: Group
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/GroupUsersAdded'
  frontegg.group.users.removed:
    description: One or more users were removed from a group.
    publish:
      operationId: onGroupUsersRemoved
      summary: Users removed from group.
      tags:
        - name: Group
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/GroupUsersRemoved'
  frontegg.group.roles.updated:
    description: The roles attached to a group were updated.
    publish:
      operationId: onGroupRolesUpdated
      summary: Group roles updated.
      tags:
        - name: Group
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/GroupRolesUpdated'
  frontegg.account.security.domain.restricted:
    description: A domain was restricted from signing up for this account.
    publish:
      operationId: onAccountSecurityDomainRestricted
      summary: Account security domain restricted.
      tags:
        - name: Security
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/AccountSecurityDomainRestricted'
  frontegg.user.app.assigned:
    description: A user was assigned to an application.
    publish:
      operationId: onUserAppAssigned
      summary: User assigned to application.
      tags:
        - name: Application
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserAppAssigned'
  frontegg.user.app.unassigned:
    description: A user was unassigned from an application.
    publish:
      operationId: onUserAppUnassigned
      summary: User unassigned from application.
      tags:
        - name: Application
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserAppUnassigned'
  frontegg.tenant.app.assigned:
    description: An application was assigned to a tenant.
    publish:
      operationId: onTenantAppAssigned
      summary: Tenant assigned to application.
      tags:
        - name: Application
        - name: Tenant
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/TenantAppAssigned'
  frontegg.tenant.app.unassigned:
    description: An application was unassigned from a tenant.
    publish:
      operationId: onTenantAppUnassigned
      summary: Tenant unassigned from application.
      tags:
        - name: Application
        - name: Tenant
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/TenantAppUnassigned'
  frontegg.tenant.plan.assigned:
    description: A plan was assigned to a tenant.
    publish:
      operationId: onTenantPlanAssigned
      summary: Plan assigned to tenant.
      tags:
        - name: Plan
        - name: Tenant
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/TenantPlanAssigned'
  frontegg.tenant.plan.unassigned:
    description: A plan was unassigned from a tenant.
    publish:
      operationId: onTenantPlanUnassigned
      summary: Plan unassigned from tenant.
      tags:
        - name: Plan
        - name: Tenant
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/TenantPlanUnassigned'
  frontegg.user.plan.assigned:
    description: A plan was assigned to a user.
    publish:
      operationId: onUserPlanAssigned
      summary: Plan assigned to user.
      tags:
        - name: Plan
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserPlanAssigned'
  frontegg.user.plan.unassigned:
    description: A plan was unassigned from a user.
    publish:
      operationId: onUserPlanUnassigned
      summary: Plan unassigned from user.
      tags:
        - name: Plan
        - name: User
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/UserPlanUnassigned'
  frontegg.scim.user.created:
    description: A user was provisioned via SCIM.
    publish:
      operationId: onScimUserCreated
      summary: SCIM user created.
      tags:
        - name: SCIM
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/ScimUserCreated'
  frontegg.scim.user.updated:
    description: A SCIM-provisioned user was updated.
    publish:
      operationId: onScimUserUpdated
      summary: SCIM user updated.
      tags:
        - name: SCIM
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/ScimUserUpdated'
  frontegg.scim.user.deleted:
    description: A SCIM-provisioned user was deprovisioned.
    publish:
      operationId: onScimUserDeleted
      summary: SCIM user deleted.
      tags:
        - name: SCIM
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/ScimUserDeleted'
  frontegg.scim.group.created:
    description: A group was created via SCIM.
    publish:
      operationId: onScimGroupCreated
      summary: SCIM group created.
      tags:
        - name: SCIM
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/ScimGroupCreated'
  frontegg.scim.group.updated:
    description: A SCIM group was updated.
    publish:
      operationId: onScimGroupUpdated
      summary: SCIM group updated.
      tags:
        - name: SCIM
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/ScimGroupUpdated'
  frontegg.scim.group.deleted:
    description: A SCIM group was deleted.
    publish:
      operationId: onScimGroupDeleted
      summary: SCIM group deleted.
      tags:
        - name: SCIM
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/ScimGroupDeleted'
components:
  messageTraits:
    WebhookHeaders:
      headers:
        type: object
        properties:
          x-webhook-secret:
            type: string
            description: |
              Signing secret value generated by Frontegg when the hook is configured.
              Receivers MUST validate this header against the secret stored at integration
              setup time before processing the payload.
          content-type:
            type: string
            description: Always application/json.
            const: application/json
        required:
          - x-webhook-secret
    BaseEnvelope:
      payload:
        $ref: '#/components/schemas/EventEnvelope'
  messages:
    UserAuthenticated:
      name: UserAuthenticated
      title: User Authenticated
      summary: A user successfully signed in.
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.authenticated
              data:
                $ref: '#/components/schemas/UserAuthenticationData'
    UserAuthenticatedWithSAML:
      name: UserAuthenticatedWithSAML
      title: User Authenticated With SAML
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.authenticatedWithSAML
              data:
                $ref: '#/components/schemas/UserAuthenticationData'
    UserAuthenticatedWithSSO:
      name: UserAuthenticatedWithSSO
      title: User Authenticated With SSO
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.authenticatedWithSSO
              data:
                $ref: '#/components/schemas/UserAuthenticationData'
    UserFailedAuthentication:
      name: UserFailedAuthentication
      title: User Failed Authentication
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.failedAuthentication
              data:
                $ref: '#/components/schemas/FailedAuthenticationData'
    UserEnrolledMFA:
      name: UserEnrolledMFA
      title: User Enrolled MFA
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.enrolledMFA
              data:
                $ref: '#/components/schemas/MFAEventData'
    UserDisabledMFA:
      name: UserDisabledMFA
      title: User Disabled MFA
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.disabledMFA
              data:
                $ref: '#/components/schemas/MFAEventData'
    UserCreated:
      name: UserCreated
      title: User Created
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.created
              data:
                $ref: '#/components/schemas/UserData'
    UserSignedUp:
      name: UserSignedUp
      title: User Signed Up
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.signedUp
              data:
                $ref: '#/components/schemas/UserData'
    UserActivated:
      name: UserActivated
      title: User Activated
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.activated
              data:
                $ref: '#/components/schemas/UserData'
    UserDeleted:
      name: UserDeleted
      title: User Deleted
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.deleted
              data:
                $ref: '#/components/schemas/UserData'
    UserUpdated:
      name: UserUpdated
      title: User Updated
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.updated
              data:
                $ref: '#/components/schemas/UserData'
    UserInvitedToTenant:
      name: UserInvitedToTenant
      title: User Invited To Tenant
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.invitedToTenant
              data:
                $ref: '#/components/schemas/UserTenantMembershipData'
    UserRemovedFromTenant:
      name: UserRemovedFromTenant
      title: User Removed From Tenant
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.removedFromTenant
              data:
                $ref: '#/components/schemas/UserTenantMembershipData'
    UserJoinedTenantUsingInvitationLink:
      name: UserJoinedTenantUsingInvitationLink
      title: User Joined Tenant Using Invitation Link
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.joinedTenantUsingInvitationLink
              data:
                $ref: '#/components/schemas/UserTenantMembershipData'
    UserChangedPassword:
      name: UserChangedPassword
      title: User Changed Password
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.changedPassword
              data:
                $ref: '#/components/schemas/UserData'
    UserForgotPassword:
      name: UserForgotPassword
      title: User Forgot Password
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.forgotPassword
              data:
                $ref: '#/components/schemas/UserData'
    UserTemporaryAccessGiven:
      name: UserTemporaryAccessGiven
      title: User Temporary Access Given
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.temporary.access.given
              data:
                $ref: '#/components/schemas/TemporaryAccessData'
    UserTemporaryAccessEdited:
      name: UserTemporaryAccessEdited
      title: User Temporary Access Edited
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.temporary.access.edited
              data:
                $ref: '#/components/schemas/TemporaryAccessData'
    UserTemporaryToPermanent:
      name: UserTemporaryToPermanent
      title: User Temporary To Permanent
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.user.temporary.access.temporary.to.permanentd
              data:
                $ref: '#/components/schemas/TemporaryAccessData'
    UserApiTokenCreated:
      name: UserApiTokenCreated
      title: User API Token Created
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.userApiToken.created
              data:
                $ref: '#/components/schemas/ApiTokenData'
    UserApiTokenDeleted:
      name: UserApiTokenDeleted
      title: User API Token Deleted
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
              eventKey:
                const: frontegg.userApiToken.deleted
              data:
                $ref: '#/components/schemas/ApiTokenData'
    TenantCreated:
      name: TenantCreated
      title: Tenant Created
      contentType: application/json
      traits:
        - $ref: '#/components/messageTraits/WebhookHeaders'
      payload:
        allOf:
          - $ref: '#/components/schemas/EventEnvelope'
          - type: object
            properties:
            

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/frontegg/refs/heads/main/asyncapi/frontegg-webhooks-asyncapi.yml