Skip to main content

Webhook Event Data

Structure of Events

All event data will contain similar metadata. The structure of a webhook event is as follows:

Event Structure
{
"event": {
"id": "e99b3bb9-25e4-484f-8a6d-6bc28edbbf39",
"type": "<TYPE OF EVENT DEFINED BELOW>",
"timestamp": "2024-04-09T13:56:37.864Z",
"tenant_id": "869d5b1c-1ae8-4ce6-96c6-73a602b407ff",
"trace_id": "0f777425-9080-4d82-b557-799f43aefcba",
"data": {
"EVENT-SPECIFIC-OBJECT": {...},
"actor": {
"id": "...",
"type": "...",
"name": "..."
}
}
},
"delivered_at": "2024-04-09T13:56:42.673Z"
}
NameTypeDescription
eventobjectThe main event object containing event details
event.idstringUnique identifier for the event
event.typestringType of event (see details below for each event)
event.timestampstringISO 8601 formatted timestamp of when the event occurred
event.tenant_idstringUnique identifier for the tenant associated with the event
event.trace_idstringUnique identifier for tracing this event across systems
event.data.EVENT-SPECIFIC-OBJECTobjectObject containing data specific to the event type. The property name will be different based on the event.
event.data.actorobjectInformation about the actor who triggered the event (if available)
event.data.actor.idstringUnique identifier for the actor
event.data.actor.typestringType of the actor (application, user, admin, system)
event.data.actor.namestringName or identifier of the actor
delivered_atstringISO 8601 formatted timestamp of when the event was delivered

The individual data objects are defined below by type.

3DS Sessions

Session Authenticated

3ds.session.authenticated
{
"session": {
"id": "...",
"authentication_status": "...",
"created_at": "...",
"created_by": "...",
"device": "...",
"expires_at": "...",
"pan_token_id": "...",
"card_brand": "..."
}
}
NameTypeDescription
session.idStringThe unique identifier of the session.
session.authentication_statusStringThe status of the authentication.
session.created_atStringThe creation date of the session in ISO 8601 format.
session.created_byStringThe Application ID which created the session
session.deviceStringThe device used to create the session (browser or mobile).
session.expires_atStringThe expiration date of the session in ISO 8601 format.
session.pan_token_idStringThe unique identifier for the payment account number (PAN) token.
session.card_brandStringThe brand of the card associated with the session.

Challenge Result Retrieved

3ds.session.challenge-result-retrieved
{
"session": {
"id": "...",
"tenant_id": "...",
"created_at": "...",
"created_by": "...",
"device": "...",
"expires_at": "...",
"pan_token_id": "...",
"card_brand": "..."
}
}
NameTypeDescription
session.idStringThe unique identifier of the session.
session.tenant_idStringThe unique identifier of the Tenant associated with the session.
session.created_atStringThe creation date of the session in ISO 8601 format.
session.created_byStringThe Application ID which created the session
session.deviceStringThe device used to create the session (browser or mobile).
session.expires_atStringThe expiration date of the session in ISO 8601 format.
session.pan_token_idStringThe unique identifier for the payment account number (PAN) token.
session.card_brandStringThe brand of the card associated with the session.

Session Created

3ds.session.created
{
"session": {
"id": "...",
"tenant_id": "...",
"created_at": "...",
"created_by": "...",
"device": "...",
"expires_at": "...",
"pan_token_id": "...",
"card_brand": "..."
}
}
NameTypeDescription
session.idStringThe unique identifier of the session.
session.tenant_idStringThe unique identifier of the Tenant associated with the session.
session.created_atStringThe creation date of the session in ISO 8601 format.
session.created_byStringThe Application ID which created the session
session.deviceStringThe device used to create the session (browser or mobile).
session.expires_atStringThe expiration date of the session in ISO 8601 format.
session.pan_token_idStringThe unique identifier for the payment account number (PAN) token.
session.card_brandStringThe brand of the card associated with the session.

Account Updater

Job Completed

account-updater.job.completed
{
"job": {
"id": "55256454-c9f9-4e79-bc9e-24bd38af5c21",
"status": "..."
}
}
NameTypeDescription
job.idStringThe unique identifier of the job.
job.statusStringThe current status of the job.

Job Created

account-updater.job.created
{
"job": {
"id": "55256454-c9f9-4e79-bc9e-24bd38af5c21",
"status": "..."
}
}
NameTypeDescription
job.idStringThe unique identifier of the job.
job.statusStringThe current status of the job.

Job Failed

account-updater.job.failed
{
"job": {
"id": "55256454-c9f9-4e79-bc9e-24bd38af5c21",
"status": "..."
}
}
NameTypeDescription
job.idStringThe unique identifier of the job.
job.statusStringThe current status of the job.

Applications

Application Created

application.created
{
"application": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"type": "...",
"name": "...",
"created_by": "...",
"created_at": "...",
"permissions": [
"..."
],
"rules": [
{
"description": "...",
"priority": 1,
"container": "...",
"transform": "...",
"conditions": [
{
"attribute": "...",
"operator": "...",
"value": "..."
}
],
"permissions": [
"..."
]
}
]
}
}
NameTypeDescription
application.idStringThe unique identifier of the Application.
application.typeStringThe type of the application.
application.nameStringThe name of the application.
application.created_byStringThe user or application that created the application.
application.created_atStringThe creation date of the application in ISO 8601 format.
application.permissionsArrayAn array of Permissions granted to the application
application.rulesArrayAn array of Access Rules granted to the application
application.rules[].descriptionStringA description of the rule.
application.rules[].priorityNumberThe priority level of the rule.
application.rules[].containerStringThe container associated with the rule.
application.rules[].transformStringThe transform applied by the rule.
application.rules[].conditionsArrayList of conditions to be satisfied for the rule to be used. Only applies to sessions
application.rules[].conditions[].attributeStringThe attribute evaluated in the condition.
application.rules[].conditions[].operatorStringThe operator used in the condition.
application.rules[].conditions[].valueStringThe value to compare against in the condition.
application.rules[].permissionsArrayAn array of permissions granted by the rule.

Application Updated

application.updated
{
"application": {
"id": "...",
"name": "...",
"type": "...",
"permissions": [
"..."
],
"rules": [
{
"description": "...",
"priority": 0,
"container": "...",
"transform": "...",
"conditions": [
{
"attribute": "...",
"operator": "...",
"value": "..."
}
],
"permissions": [
"..."
]
}
],
"created_at": "...",
"created_by": "...",
"modified_at": "...",
"modified_by": "..."
}
}
NameTypeDescription
application.idStringThe unique identifier of the Application.
application.nameStringThe name of the application.
application.typeStringThe type of the application.
application.permissionsArrayAn array of Permissions granted to the application
application.rulesArrayAn array of Access Rules granted to the application
application.rules[].descriptionStringA description of the rule.
application.rules[].priorityNumberThe priority level of the rule (0 indicates the highest priority).
application.rules[].containerStringThe container associated with the rule.
application.rules[].transformStringThe transform applied by the rule.
application.rules[].conditionsArrayList of conditions to be satisfied for the rule to be used. Only applies to sessions
application.rules[].conditions[].attributeStringThe attribute evaluated in the condition.
application.rules[].conditions[].operatorStringThe operator used for the evaluation.
application.rules[].conditions[].valueStringThe value to compare against in the condition.
application.rules[].permissionsArrayList of permissions granted on this Access Rule
application.created_atStringThe creation date of the application in ISO 8601 format.
application.created_byStringThe user or system that created the application.
application.modified_atStringThe last modified date of the application in ISO 8601 format.
application.modified_byStringThe last user or system that modified the application.

Application Deleted

application.deleted
{
"application": {
"id": "..."
}
}
NameTypeDescription
application.idStringThe unique identifier of the application.

Application Keys

Application Key Created

application.key.created
{
"application_key": {
"id": "...",
"application_id": "...",
"version": "...",
"created_at": "...",
"created_by": "..."
}
}
NameTypeDescription
application_key.idStringThe unique identifier of the application key.
application_key.application_idStringThe unique identifier of the associated Application.
application_key.versionStringThe version of the application key.
application_key.created_atStringThe creation date of the application key in ISO 8601 format.
application_key.created_byStringThe user or application that created the application key.

Application Key Deleted

application.key.deleted
{
"application_key": {
"id": "...",
"application_id": "..."
}
}
NameTypeDescription
application_key.idStringThe unique identifier of the application key.
application_key.application_idStringThe unique identifier of the associated Application.

Http

Request

http.request
{
"request": {
"method": "POST",
"path": "/tokens",
"headers": {
"Host": [
"localhost:5090"
],
"Content-Type": [
"application/json; charset=utf-8"
],
"Content-Length": [
"279"
],
"BT-TRACE-ID": [
"6f100e49-b64b-4747-9049-78d44f1ceb13"
],
"BT-API-KEY": [
"ke***f2 (length 75)"
]
}
},
"response": {
"status": 201,
"headers": {
"Content-Type": [
"application/json; charset=utf-8"
],
"Content-Length": [
"633"
],
"BT-TRACE-ID": [
"6f100e49-b64b-4747-9049-78d44f1ceb13"
],
"Date": [
"Fr***MT (length 29)"
],
"Server": [
"*******"
],
"Location": [
"ht***3d (length 65)"
]
}
}
}
NameTypeDescription
request.methodStringThe HTTP method used for the request (e.g., POST).
request.pathStringThe path of the request (e.g., /tokens).
request.headersObjectThe headers included in the request.
request.headers.HostArrayThe host header of the request.
request.headers.Content-TypeArrayThe content type of the request.
request.headers.Content-LengthArrayThe length of the request body.
request.headers.BT-TRACE-IDArrayThe trace ID for tracking the request.
request.headers.BT-API-KEYArrayThe API key used for the request (partially masked).
response.statusNumberThe HTTP status code returned in the response (e.g., 201).
response.headersObjectThe headers returned in the response.
response.headers.Content-TypeArrayThe content type of the response.
response.headers.Content-LengthArrayThe length of the response body.
response.headers.BT-TRACE-IDArrayThe trace ID for tracking the response.
response.headers.DateArrayThe date header of the response (partially masked).
response.headers.ServerArrayThe server information returned in the response (partially masked).
response.headers.LocationArrayThe location header indicating where to find the resource (partially masked).

Proxies

Proxy Created

proxy.created
{
"proxy": {
"id": "...",
"name": "...",
"application_id": "...",
"destination_url": "...",
"require_authentication": ...,
"created_at": "...",
"created_by": "..."
}
}
NameTypeDescription
proxy.idStringThe unique identifier of the proxy.
proxy.nameStringThe name of the proxy.
proxy.application_idStringThe unique identifier of the associated Application.
proxy.destination_urlStringThe destination URL that the proxy forwards requests to.
proxy.require_authenticationBooleanIndicates whether authentication is required for the proxy.
proxy.created_atStringThe creation date of the proxy in ISO 8601 format.
proxy.created_byStringThe user or application that created the proxy.

Proxy Deleted

proxy.deleted
{
"proxy": {
"id": "..."
}
}
NameTypeDescription
proxy.idStringThe unique identifier of the proxy.

Proxy Invoked

proxy.invoked
{
"proxy": {
"id": null,
"name": "...",
"type": "..."
},
"request": {
"headers": "...",
"method": "...",
"url": "..."
},
"response": {
"headers": "...",
"status_code": "...",
"elapsed_ms": ...
}
}
NameTypeDescription
proxy.idStringThe unique identifier of the proxy
proxy.nameStringThe name of the proxy.
proxy.typeStringThe type of the proxy.
request.headersStringThe headers included in the request.
request.methodStringThe HTTP method used for the request (e.g., GET, POST).
request.urlStringThe URL to which the request is sent.
response.headersStringThe headers returned in the response.
response.status_codeStringThe HTTP status code returned in the response.
response.elapsed_msNumberThe time taken to process the request in milliseconds.

Proxy Updated

proxy.updated
{
"proxy": {
"id": "...",
"name": "...",
"proxy_host": "...",
"destination_url": "...",
"require_authentication": ...,
"created_at": "...",
"created_by": "...",
"modified_at": "...",
"modified_by": "..."
}
}
NameTypeDescription
proxy.idStringThe unique identifier of the proxy.
proxy.nameStringThe name of the proxy.
proxy.proxy_hostStringThe host address of the proxy server.
proxy.destination_urlStringThe destination URL that the proxy forwards requests to.
proxy.require_authenticationBooleanIndicates whether authentication is required for the proxy.
proxy.created_atStringThe creation date of the proxy in ISO 8601 format.
proxy.created_byStringThe user or system that created the proxy.
proxy.modified_atStringThe last modified date of the proxy in ISO 8601 format.
proxy.modified_byStringThe last user or system that modified the proxy.

Reactors

Reactor Completed

reactor.completed
{
"reactor": {
"id": "...",
"name": "..."
},
"request": {
"id": "...",
"invocation_type": "..."
},
"elapsed_ms": ...
}
NameTypeDescription
reactor.idStringThe unique identifier of the reactor.
reactor.nameStringThe name of the reactor.
request.idString(Optional) The unique identifier of the request if the invocation_type is async. Can be used to retrieve the results of the invocation.
request.invocation_typeStringEither sync or async
elapsed_msNumberThe time taken to process the request in milliseconds.

Reactor Created

reactor.created
{
"reactor": {
"id": "...",
"name": "...",
"created_at": "...",
"created_by": "..."
}
}
NameTypeDescription
reactor.idStringThe unique identifier of the reactor.
reactor.nameStringThe name of the reactor.
reactor.created_atStringThe creation date of the reactor in ISO 8601 format.
reactor.created_byStringThe user or application that created the reactor.

Reactor Deleted

reactor.deleted
{
"reactor": {
"id": "..."
}
}
NameTypeDescription
reactor.idStringThe unique identifier of the reactor.

Reactor Failed

reactor.failed
{
"reactor": {
"id": "...",
"name": "..."
},
"request": {
"id": "...",
"invocation_type": "..."
},
"error": "...",
"elapsed_ms": ...
}
NameTypeDescription
reactor.idStringThe unique identifier of the reactor.
reactor.nameStringThe name of the reactor.
request.idString(Optional) The unique identifier of the request if the invocation_type is async. Can be used to retrieve the results of the invocation.
request.invocation_typeStringEither sync or async
errorStringA message describing any error that occurred.
elapsed_msNumberThe time taken to process the request in milliseconds.

Reactor Invoked

reactor.invoked
{
"reactor": {
"id": "...",
"name": "..."
},
"request": {
"id": "...",
"invocation_type": "..."
}
}
NameTypeDescription
reactor.idStringThe unique identifier of the reactor.
reactor.nameStringThe name of the reactor.
request.idString(Optional) The unique identifier of the request if the invocation_type is async. Can be used to retrieve the results of the invocation.
request.invocation_typeStringEither sync or async

Reactor Updated

reactor.updated
{
"reactor": {
"id": "...",
"name": "...",
"created_at": "...",
"created_by": "...",
"modified_by": "...",
"modified_at": "..."
}
}
NameTypeDescription
reactor.idStringThe unique identifier of the reactor.
reactor.nameStringThe name of the reactor.
reactor.created_atStringThe creation date of the reactor in ISO 8601 format.
reactor.created_byStringThe user or application that created the reactor.
reactor.modified_byStringThe last user or application that modified the reactor.
reactor.modified_atStringThe last modified date of the reactor in ISO 8601 format.

Sessions

Session Authorized

session.authorized
{
"session": {
"id": "...",
"created_at": "...",
"created_by": "...",
"expires_at": "...",
"permissions": [
"..."
],
"rules": [
{
"description": "...",
"priority": 0,
"container": "...",
"transform": "...",
"conditions": [
{
"attribute": "...",
"operator": "...",
"value": "..."
}
],
"permissions": [
"..."
]
}
],
"issued_to_application": {
"id": "...",
"name": "..."
}
}
}
NameTypeDescription
session.idStringThe unique identifier of the session.
session.created_atStringThe creation date of the session in ISO 8601 format.
session.created_byStringThe user or system that created the session.
session.expires_atStringThe expiration date of the session in ISO 8601 format.
session.permissionsArrayAn array of Permissions associated with the session.
session.rulesArrayAn array of Access Rules defined for the session.
session.rules[].descriptionStringA description of the rule.
session.rules[].priorityNumberThe priority level of the rule.
session.rules[].containerStringThe container associated with the rule.
session.rules[].transformStringThe transform applied by the rule.
session.rules[].conditionsArrayAn array of conditions that must be met for the rule.
session.rules[].conditions[].attributeStringThe attribute evaluated in the condition.
session.rules[].conditions[].operatorStringThe operator used in the condition.
session.rules[].conditions[].valueStringThe value to compare against in the condition.
session.rules[].permissionsArrayAn array of Permissions granted by the rule.
session.issued_to_application.idStringThe unique identifier of the Application to which the session is issued.
session.issued_to_application.nameStringThe name of the application to which the session is issued.

Session Created

session.created
{
"session": {
"id": "...",
"created_at": "...",
"created_by": "...",
"expires_at": "...",
"issued_to_application": {
"id": "...",
"name": "..."
}
}
}
NameTypeDescription
session.idStringThe unique identifier of the session.
session.created_atStringThe creation date of the session in ISO 8601 format.
session.created_byStringThe user or application that created the session.
session.expires_atStringThe expiration date of the session in ISO 8601 format.
session.issued_to_application.idStringThe unique identifier of the application to which the session is issued.
session.issued_to_application.nameStringThe name of the application to which the session is issued.

Tenants

Tenant Created

tenant.created
{
"tenant": {
"id": "...",
"name": "...",
"created_at": "...",
"created_by": "..."
}
}
NameTypeDescription
tenant.idStringThe unique identifier of the Tenant.
tenant.nameStringThe name of the tenant.
tenant.created_atStringThe creation date of the tenant in ISO 8601 format.
tenant.created_byStringThe user or application that created the tenant.

Tenant Updated

tenant.updated
{
"tenant": {
"id": "...",
"name": "...",
"created_at": "...",
"created_by": "...",
"modified_at": "...",
"modified_by": "..."
}
}
NameTypeDescription
tenant.idStringThe unique identifier of the Tenant.
tenant.nameStringThe name of the tenant.
tenant.created_atStringThe creation date of the tenant in ISO 8601 format.
tenant.created_byStringThe creator of the tenant.
tenant.modified_atStringThe last modified date of the tenant in ISO 8601 format.
tenant.modified_byStringThe user or application that modified the tenant.

Tenant Deleted

tenant.deleted
{
"tenant": {
"id": "..."
}
}
NameTypeDescription
tenant.idStringThe unique identifier of the Tenant.

Tenant Invitations

Invitation Accepted

tenant.invitation.accepted
{
"invitation": {
"id": "...",
"email": "...",
"role": "...",
"expires_at": "...",
"created_at": "...",
"created_by": "..."
}
}
NameTypeDescription
invitation.idStringThe unique identifier of the invitation.
invitation.emailStringThe email address of the invitee.
invitation.roleStringThe role assigned to the invitee.
invitation.expires_atStringThe expiration date of the invitation in ISO 8601 format.
invitation.created_atStringThe creation date of the invitation in ISO 8601 format.
invitation.created_byStringThe user or application that created the invitation.

Invitation Created

tenant.invitation.created
{
"invitation": {
"id": "...",
"email": "...",
"role": "...",
"expires_at": "...",
"created_at": "...",
"created_by": "..."
}
}
NameTypeDescription
invitation.idStringThe unique identifier of the invitation.
invitation.emailStringThe email address associated with the invitation.
invitation.roleStringThe role assigned to the invitation.
invitation.expires_atStringThe expiration date of the invitation in ISO 8601 format.
invitation.created_atStringThe creation date of the invitation in ISO 8601 format.
invitation.created_byStringThe user or application that created the invitation.

Invitation Deleted

tenant.invitation.deleted
{
"invitation": {
"id": "...",
"email": "...",
"role": "...",
"expires_at": "...",
"created_at": "...",
"created_by": "..."
}
}
NameTypeDescription
invitation.idStringThe unique identifier of the invitation.
invitation.emailStringThe email address associated with the invitation.
invitation.roleStringThe role assigned to the invitation, formatted for readability.
invitation.expires_atStringThe expiration date of the invitation in ISO 8601 format.
invitation.created_atStringThe creation date of the invitation in ISO 8601 format.
invitation.created_byStringThe user or application that created the invitation.

Invitation Resent

tenant.invitation.resent
{
"invitation": {
"id": "...",
"email": "...",
"role": "...",
"expires_at": "...",
"created_at": "...",
"created_by": "..."
}
}
NameTypeDescription
invitation.idStringThe unique identifier of the invitation.
invitation.emailStringThe email address associated with the invitation.
invitation.roleStringThe role assigned to the invitation, formatted for readability.
invitation.expires_atStringThe expiration date of the invitation in ISO 8601 format.
invitation.created_atStringThe creation date of the invitation in ISO 8601 format.
invitation.created_byStringThe user or application that created the invitation.

Tenant Members

Member Created

tenant.member.created
{
"member": {
"id": "...",
"user_id": "...",
"role": "...",
"created_at": "...",
"created_by": "..."
}
}
NameTypeDescription
member.idStringThe unique identifier of the tenant member.
member.user_idStringThe unique identifier of the user associated with the member.
member.roleStringThe role assigned to the member, formatted for readability.
member.created_atStringThe creation date of the member in ISO 8601 format.
member.created_byStringThe user or application that created the member.

Member Deleted

tenant.member.deleted
{
"member": {
"id": "..."
}
}
NameTypeDescription
member.idStringThe unique identifier of the tenant member.

Tokens

Token Created

token.created
{
"token": {
"id": "...",
"type": "...",
"metadata": "...",
"containers": ["..."],
"fingerprint": "...",
"fingerprint_expression": "...",
"search_indexes": ["..."],
"created_by": "...",
"created_at": "...",
"expires_at": "..."
}
}
NameTypeDescription
token.idStringThe unique identifier of the token.
token.typeStringThe type of the token.
token.metadatamap<string, string>Additional metadata associated with the token.
token.containersArrayAn array containing the container associated with the token.
token.fingerprintStringThe fingerprint of the token.
token.fingerprint_expressionStringThe expression used to generate the fingerprint.
token.search_indexesArrayAn array of search index expressions associated with the token.
token.created_byStringThe creator of the token.
token.created_atStringThe creation date of the token in ISO 8601 format.
token.expires_atStringThe expiration date of the token in ISO 8601 format.

Token Deleted

token.deleted
{
"token": {
"id": "..."
}
}
NameTypeDescription
token.idStringThe unique identifier of the token.

Token Expired

token.expired
{
"token": {
"id": "..."
}
}
NameTypeDescription
token.idStringThe unique identifier of the token.

Token Property Expired

token.property.expired
{
"token": {
"id": "...",
"property_name": "..."
}
}
NameTypeDescription
token.idStringThe unique identifier of the token.
token.property_nameStringThe name of the property associated with the token.

Token Read

token.read
{
"token": {
"id": "...",
"type": "..."
}
}
NameTypeDescription
token.idStringThe unique identifier of the token.
token.typeStringThe type of the token.

Token Updated

token.updated
{
"token": {
"id": "...",
"type": "...",
"metadata": "...",
"containers": ["..."],
"fingerprint": "...",
"fingerprint_expression": "...",
"search_indexes": ["..."],
"modified_by": "...",
"modified_at": "...",
"created_by": "...",
"created_at": "...",
"expires_at": "..."
}
}
NameTypeDescription
token.idStringThe unique identifier of the token.
token.typeStringThe type of the token.
token.metadatamap<string, string>Additional metadata associated with the token.
token.containersArrayAn array containing the container associated with the token.
token.fingerprintStringThe fingerprint of the token.
token.fingerprint_expressionStringThe expression used to generate the fingerprint.
token.search_indexesArrayAn array of search index expressions associated with the token.
token.modified_byStringThe last user who modified the token.
token.modified_atStringThe last modified date of the token in ISO 8601 format.
token.created_byStringThe creator of the token.
token.created_atStringThe creation date of the token in ISO 8601 format.
token.expires_atStringThe expiration date of the token in ISO 8601 format.