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

# Admin and environment events

> Webhook events fired by Dynamic Console admin actions and environment changes

Browse [all webhook events](https://www.dynamic.xyz/docs/platform/console/webhooks/event-types.md) for the full listing across Dynamic products.

## Event object

**eventId**
The unique id of the event that triggered the webhook message. A single event in a project can trigger one or more webhook messages if there is more than one webhook configured.

**messageId**
The unique id of the message sent. This key should be used as the idempotency key in order to handle redeliveries.

**webhookId**
The unique id of the configured webhook that sent the message.

**userId**
The unique id of the user who triggered the event. This can be different than `userId`'s in the event payload. For instance, when creating users via developer APIs the triggerer will be the developer's userId and the event payload will contain the id of the created user. This parameter will be `undefined` if the event is triggered using an API key.

**externalUserId**
The external user id associated with the user who triggered the event. This field is only present when [external authentication](https://www.dynamic.xyz/docs/auth/bring-your-own-auth.md) is enabled for the environment and the user has an associated external user id. Useful for correlating Dynamic webhook events with users in your own system.

**eventName**
The name of the event that triggered the message. Events always conform to the following convention `{resourceType}.{action}`. For example with the event name of `user.created`, `user` is the resource type and `created` is the action performed on the resource. The full list of event names can be retrieved by using the `/eventTypes` endpoint in the API [here](https://www.dynamic.xyz/docs/api-reference/events/get-event-types.md).

**environmentId**
The unique id of the environment from which the event originated.

**environmentName**
The name of the environment from which the event originated. This can be used to have the same systems handle both `live` and `sandbox` events.

**timestamp**
Timestamp when the event occurred.

**redelivery**
If the message is a redelivery, this will be set to true.

**data**
The data object contains the event payload. The structure of the data object will depend on the event that triggered the message. The product event catalogs below list each event's payload.

#### Example Event Object

Below is an example of a `user.created` event

```json theme={"system"}
{
  "eventId": "2a92c161-3167-44ad-8fce-4c6cdaed8129",
  "messageId": "5a2a5360-bb7e-4ea6-9bd3-0146bf2f734f",
  "webhookId": "a86acea4-e050-4846-8e4f-0ae039f6e37c",
  "userId": "a5914498-7a8b-4c58-b04c-9624fef2897c",
  "externalUserId": "usr_abc123",
  "eventName": "user.created",
  "environmentId": "123e4567-e89b-12d3-a456-426614174000",
  "environmentName": "sandbox",
  "timestamp": "2023-10-26T14:30:59.210Z",
  "data": {
    "chain": "EVM",
    "origin": null,
    "ipAddress": "::1",
    "verifiedCredentialId": "b13f337d-a8dc-41a7-96f5-5e5d76ad864a",
    "userId": "a5914498-7a8b-4c58-b04c-9624fef2897c",
    "expiresAt": null,
    "walletPublicKey": "0x3FcE1F4F28DbA209344072867134A3a7F547C7f1",
    "createdAt": "2023-10-26T14:30:02.909Z",
    "projectEnvironmentId": "7181a853-fb76-4dc2-9af8-6aeb6d2b818b",
    "provider": "browserExtension",
    "walletName": "metamask",
    "id": "484e49ba-3026-4e2c-9bf0-ed98ae224833",
    "revokedAt": "2023-10-26T14:30:59.204Z",
    "verifiedCredentialType": "wallet"
  }
}
```

## Event types

This is the list of all the types of events we send as part of webhook payloads. We may add more at any time, so when developing and maintaining your code, you should not assume that only these types exist. The current list of event types can be fetched from the [event types endpoint](https://www.dynamic.xyz/docs/api-reference/events/get-event-types.md).

The events follow the pattern: `resource.event`. Our goal is to design a consistent system that makes it easy to anticipate and understand.

> [!NOTE]
>
> Events that occur on subresources like user.session will include the parent id
> but do not trigger the parent's update event.

## Product event catalogs

Product-scoped event types are documented with their product:

* [Auth webhooks](https://www.dynamic.xyz/docs/auth/webhooks.md): `user.*` lifecycle, sessions, sign-in, linked credentials, and `visit.created`.
* [Embedded wallet webhooks](https://www.dynamic.xyz/docs/embedded-wallets/webhooks.md): `wallet.*` lifecycle, signatures, on-chain activity, key share, and recovery events.
* [Agent webhooks](https://www.dynamic.xyz/docs/agents/webhooks.md): `wallet.delegation.*` events.
* [Business account action webhooks](https://www.dynamic.xyz/docs/business-accounts/webhooks/account-actions.md) and [proposal webhooks](https://www.dynamic.xyz/docs/business-accounts/webhooks/proposals.md): all `businessAccount.*` events.
* [Policy and screening webhooks](https://www.dynamic.xyz/docs/embedded-wallets/mpc/policies/webhooks.md): `waas.policy.violation`, screening verdicts, and `wallet.addressScreening.*`.
* [Flow payments webhooks](https://www.dynamic.xyz/docs/flow/webhooks.md): `flow.*` state-transition events. `user.exchangeTransfer.*` events are listed under [Exchange accounts](https://www.dynamic.xyz/docs/platform/console/webhooks/event-types.md#exchange-accounts) in Webhook events.

Admin and environment events, which fire on Dynamic Console actions rather than end-user activity, are listed below.

### Admin

#### WAAS Policy

**admin.waas.policy.created** `object`

Occurs whenever a WAAS policy is created by an admin. Is a
[WaasPolicyResponse.](https://www.dynamic.xyz/docs/api-reference/schemas/WaasPolicyResponse.md)

**admin.waas.policy.updated** `object`

Occurs whenever a WAAS policy is updated by an admin. Is a
[WaasPolicyResponse.](https://www.dynamic.xyz/docs/api-reference/schemas/WaasPolicyResponse.md)

**admin.waas.policy.rule.created** `object`

Occurs whenever a WAAS policy rule is created by an admin. Is a
[WaasPolicyRule.](https://www.dynamic.xyz/docs/api-reference/schemas/WaasPolicyRule.md)

**admin.waas.policy.rule.updated** `object`

Occurs whenever a WAAS policy rule is updated by an admin. Is a
[WaasPolicyRule.](https://www.dynamic.xyz/docs/api-reference/schemas/WaasPolicyRule.md)

**admin.waas.policy.rule.deleted** `object`

Occurs whenever a WAAS policy rule is deleted by an admin. Contains the deleted
rule information.

#### Domain

**admin.environment.domain.created** `object`

Occurs whenever a custom domain is created by an admin. Is a
[CustomHostname.](https://www.dynamic.xyz/docs/api-reference/schemas/CustomHostname.md)

**admin.environment.domain.deleted** `object`

Occurs whenever a custom domain is deleted by an admin. Contains the deleted
domain information.

**admin.environment.domain.updated** `object`

Occurs whenever a custom domain is updated by an admin. Is a
[CustomHostname.](https://www.dynamic.xyz/docs/api-reference/schemas/CustomHostname.md)

#### Environment

**admin.environment.apiToken.created** `object`

Occurs whenever an API token is created by an admin. Is a
[Token.](https://www.dynamic.xyz/docs/api-reference/schemas/Token.md)

**admin.environment.apiToken.deleted** `object`

Occurs whenever an API token is deleted by an admin. Contains the deleted
token information.

**admin.environment.settings.updated** `object`

Occurs whenever environment settings are updated by an admin. Is a
[ProjectEnvironment.](https://www.dynamic.xyz/docs/api-reference/schemas/ProjectEnvironment.md)

**admin.environment.mfa.deleted** `object`

Occurs whenever an admin deletes a user's MFA device. Contains the user ID and
MFA device information.

**admin.environment.sessions.revoked** `object`

Occurs whenever all user sessions in an environment are revoked by an admin.

#### Organization

**admin.organization.created** `object`

Occurs whenever an organization is created by an admin. Is an
[Organization.](https://www.dynamic.xyz/docs/api-reference/schemas/Organization.md)

**admin.organization.updated** `object`

Occurs whenever an organization is updated by an admin. Is an
[Organization.](https://www.dynamic.xyz/docs/api-reference/schemas/Organization.md)

**admin.organization.billing.updated** `object`

Occurs whenever an organization's billing settings are updated by an admin. Is a
[BillingSubscription.](https://www.dynamic.xyz/docs/api-reference/schemas/BillingSubscription.md)

**admin.organization.member.invited** `object`

Occurs whenever a member is invited to an organization by an admin. Is an
[Invite.](https://www.dynamic.xyz/docs/api-reference/schemas/Invite.md)

**admin.organization.member.joined** `object`

Occurs whenever a member joins an organization. Is an
[OrganizationMember.](https://www.dynamic.xyz/docs/api-reference/schemas/OrganizationMember.md)

**admin.organization.member.removed** `object`

Occurs whenever a member is removed from an organization by an admin. Contains
the removed member information.

#### Project

**admin.project.created** `object`

Occurs whenever a project is created by an admin. Is a
[Project.](https://www.dynamic.xyz/docs/api-reference/schemas/Project.md)

**admin.project.deleted** `object`

Occurs whenever a project is deleted by an admin. Contains the deleted
project information.

**admin.project.updated** `object`

Occurs whenever a project is updated by an admin. Is a
[Project.](https://www.dynamic.xyz/docs/api-reference/schemas/Project.md)

#### User

**admin.user.created** `object`

Occurs whenever a user is created by an admin. Is a
[User.](https://www.dynamic.xyz/docs/api-reference/schemas/User.md)

**admin.user.deleted** `object`

Occurs whenever a user is deleted by an admin. Contains the deleted
user information.

**admin.user.updated** `object`

Occurs whenever a user is updated by an admin. Is a
[User.](https://www.dynamic.xyz/docs/api-reference/schemas/User.md)

**admin.user.session.revoked** `object`

Occurs whenever a user session is revoked by an admin. Is a
[Session.](https://www.dynamic.xyz/docs/api-reference/schemas/Session.md)

#### Webhook

**admin.webhook.created** `object`

Occurs whenever a webhook is created by an admin. Is a
[Webhook.](https://www.dynamic.xyz/docs/api-reference/schemas/Webhook.md)

**admin.webhook.deleted** `object`

Occurs whenever a webhook is deleted by an admin. Contains the deleted
webhook information.

**admin.webhook.updated** `object`

Occurs whenever a webhook is updated by an admin. Is a
[Webhook.](https://www.dynamic.xyz/docs/api-reference/schemas/Webhook.md)

#### Security

**admin.security.accessControl.created** `object`

Occurs whenever security access control settings are created by an admin. Is an
[AdminSecurityAccessControl.](https://www.dynamic.xyz/docs/api-reference/schemas/AdminSecurityAccessControl.md)

**admin.security.cookieDomain.created** `object`

Occurs whenever a cookie domain is created by an admin. Is an
[AdminSecurityCookieDomain.](https://www.dynamic.xyz/docs/api-reference/schemas/AdminSecurityCookieDomain.md)

**admin.security.cors.created** `object`

Occurs whenever a CORS origin is created by an admin. Is an
[OriginResponse.](https://www.dynamic.xyz/docs/api-reference/schemas/OriginResponse.md)

**admin.security.cors.deleted** `object`

Occurs whenever a CORS origin is deleted by an admin. Contains the deleted
CORS origin information.

**admin.security.cors.updated** `object`

Occurs whenever a CORS origin is updated by an admin. Is an
[OriginResponse.](https://www.dynamic.xyz/docs/api-reference/schemas/OriginResponse.md)

**admin.security.ipSettings.updated** `object`

Occurs whenever IP settings are updated by an admin. Is an
[AdminSecurityIpSettings.](https://www.dynamic.xyz/docs/api-reference/schemas/AdminSecurityIpSettings.md)

**admin.security.jwtSettings.updated** `object`

Occurs whenever JWT settings are updated by an admin. Is an
[AdminSecurityJwtSettings.](https://www.dynamic.xyz/docs/api-reference/schemas/AdminSecurityJwtSettings.md)

#### Address screening

**admin.addressScreening.byok.created** `object`

Occurs whenever a bring-your-own-key address screening key is created by an
admin.

**admin.addressScreening.byok.rotated** `object`

Occurs whenever a bring-your-own-key address screening key is rotated by an
admin.

**admin.addressScreening.byok.disabled** `object`

Occurs whenever a bring-your-own-key address screening key is disabled by an
admin.

**admin.addressScreening.policy.created** `object`

Occurs whenever a [screening
policy](https://www.dynamic.xyz/docs/policies/screening-policies.md) is created, meaning a sign-in or
transaction policy is authored for a provider that did not have one. The
payload contains `screeningPolicyId`,
`providerType`, `scope`, `revision`, and `addressEntryCount`. `userId` is the
admin who made the change.

**admin.addressScreening.policy.updated** `object`

Occurs whenever an existing screening policy is changed. Same payload as
`admin.addressScreening.policy.created`, plus `change`, which is `rules`,
`addressAdded`, or `addressRemoved`.

**admin.addressScreening.policy.deleted** `object`

Occurs whenever a screening policy is deleted. The screening that policy
covered returns to the sanctions baseline alone. Same payload as
`admin.addressScreening.policy.created`.

> [!NOTE]
>
> These three events record that a policy changed, not what it now says. They do
> not carry the rules. Read the policy back through the `ScreeningPolicies`
> endpoints, or compare `revision`.

### Environment

**environment.updated** `object`

Occurs whenever an environment is updated, including updates made through
the SDK API rather than the Dynamic Console. Is a
[ProjectEnvironment.](https://www.dynamic.xyz/docs/api-reference/schemas/ProjectEnvironment.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.