Skip to main content
POST
/
v3
/
webhook
/
destinations
curl --request POST \
  --url https://verification.didit.me/v3/webhook/destinations/ \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "label": "Production session webhooks",
  "url": "https://yourapp.com/webhooks/didit",
  "webhook_version": "v3",
  "subscribed_events": [
    "status.updated",
    "data.updated"
  ]
}
'
{
  "uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "label": "<string>",
  "url": "<string>",
  "enabled": true,
  "webhook_version": "v1",
  "secret_shared_key": "<string>",
  "subscribed_events": [
    "status.updated",
    "data.updated"
  ],
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "summary": {
    "total_deliveries": 123,
    "failed_deliveries": 123,
    "error_rate_percentage": 123,
    "min_response_time_ms": 123,
    "avg_response_time_ms": 123,
    "max_response_time_ms": 123,
    "last_delivery_at": "2023-11-07T05:31:56Z"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.didit.me/llms.txt

Use this file to discover all available pages before exploring further.

Webhook destinations let you send different Didit events to different URLs. Each destination has its own secret_shared_key, webhook_version, and subscribed_events list.

How subscribed_events works

subscribed_events is a required array of exact event names. Didit delivers a webhook to this destination only when the payload’s webhook_type matches one of the values in the array.
  • Include at least one event.
  • Use only the supported event names below.
  • Add every event you want delivered; there is no wildcard value like * or all.
  • To route different product areas to different systems, create multiple destinations with different subscribed_events lists.

Event catalog

EventSubscribe when you need
status.updatedUser Verification (KYC) or Business Verification (KYB) session status changes. KYB payloads include session_kind: "business" and business_session_id.
data.updatedSession verification data is corrected or updated after creation, such as reviewer edits to KYC, Proof of Address, or KYB data.
user.status.updatedA User entity changes status, for example ACTIVE, FLAGGED, or BLOCKED.
user.data.updatedA User entity profile, counters, metadata, documents, or aggregate verification fields change.
business.status.updatedA Business entity changes status, for example after manual review, KYB results, or a blocklist action.
business.data.updatedA Business entity profile, counters, metadata, registration fields, or aggregate verification fields change.
activity.createdA timeline activity is recorded for a User, Business, external counterparty, session, or transaction.
transaction.createdA Transaction Monitoring transaction is created and its initial rule evaluation is complete.
transaction.status.updatedA transaction changes status after rules, analyst review, remediation, provider updates, or API/console actions.
Common subscription sets:
{
  "subscribed_events": ["status.updated", "data.updated"]
}
{
  "subscribed_events": ["transaction.created", "transaction.status.updated"]
}
{
  "subscribed_events": [
    "user.status.updated",
    "user.data.updated",
    "business.status.updated",
    "business.data.updated",
    "activity.created"
  ]
}
For payload examples and signing code, see the webhooks guide.

Authorizations

x-api-key
string
header
required

Body

application/json
label
string
required
url
string<uri>
required
subscribed_events
enum<string>[]
required

Event filter for this webhook destination. Didit delivers only webhooks whose webhook_type exactly matches one of these values. Include at least one event; there is no wildcard subscription.

Minimum array length: 1

Supported webhook event name. Use these exact strings in subscribed_events; unsupported values are rejected.

Available options:
status.updated,
data.updated,
user.status.updated,
user.data.updated,
business.status.updated,
business.data.updated,
activity.created,
transaction.created,
transaction.status.updated
Example:
["status.updated", "data.updated"]
enabled
boolean
default:true
webhook_version
enum<string>
Available options:
v1,
v2,
v3

Response

201 - application/json

Webhook destination created.

uuid
string<uuid>
label
string
url
string<uri>
enabled
boolean
webhook_version
enum<string>
Available options:
v1,
v2,
v3
secret_shared_key
string
subscribed_events
enum<string>[]

Event filter for this webhook destination. Didit delivers only webhooks whose webhook_type exactly matches one of these values. Include at least one event; there is no wildcard subscription.

Minimum array length: 1

Supported webhook event name. Use these exact strings in subscribed_events; unsupported values are rejected.

Available options:
status.updated,
data.updated,
user.status.updated,
user.data.updated,
business.status.updated,
business.data.updated,
activity.created,
transaction.created,
transaction.status.updated
Example:
["status.updated", "data.updated"]
created_at
string<date-time>
updated_at
string<date-time>
summary
object