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.
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.
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 full list of event payloads can be found here.

Example Event Object

Below is an example of a user.created event
{
  "eventId": "2a92c161-3167-44ad-8fce-4c6cdaed8129",
  "messageId": "5a2a5360-bb7e-4ea6-9bd3-0146bf2f734f",
  "webhookId": "a86acea4-e050-4846-8e4f-0ae039f6e37c",
  "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. The events follow the pattern: resource.event. Our goal is to design a consistent system that makes it easy to anticipate and understand.
Events that occur on subresources like user.session will include the parent id but do not trigger the parent’s update event.

User

user.created
object
Occurs whenever a user is created. Is a user.
user.updated
object
Occurs whenever a user is updated. Is a user.
user.deleted
object
Occurs whenever a user is deleted. Is a user.
user.passkeyRecovery.started
object
Occurs whenever a user started the passkey recovery process. Is a wallet.
user.passkeyRecovery.completed
object
Occurs whenever a user completed the passkey recovery process. Is a wallet.
user.session.created
object
Occurs whenever a user session is created. Is a session.
user.session.revoked
object
Occurs whenever a user session is revoked. Is a session.
user.social.linked
object
Occurs whenever a user links a social account. Is a provider.
user.social.unlinked
object
Occurs whenever a user unlinks a social account. Is a provider.
user.exchangeTransfer.success
object
Occurs whenever an exchange transfer is successfully initiated. Is an ExchangeTransferResponse.
user.exchangeTransfer.failed
object
Occurs whenever an exchange transfer fails for any reason. Contains error details about the failure.

Wallet

wallet.created
object
Occurs whenever a Dynamic-powered embedded wallet is created. Is a wallet.
wallet.linked
object
Occurs whenever a wallet is linked to a user. Is a wallet.
wallet.unlinked
object
Occurs whenever a wallet is unlinked from a user. Is a wallet.
wallet.exported
object
Occurs whenever a Dynamic-powered embedded wallet is exported. Is a wallet.
wallet.transferred
object
Occurs whenever a wallet is transferred between user accounts. Is a wallet.

Visit

visit.created
object
Occurs whenever a visit is created. Is a visit.