Events and message schema

You can configure event destinations for Stedi transaction enrollment events.

More event types, including transaction processing events, will be available in future releases. Please contact Stedi support to request event types for your use case.

Message schema

Stedi uses the following schema for event destination deliveries.

Headers

Each event delivery includes the following required headers:

HeaderTypeDescription
attempt-numberintegerThe delivery attempt number. The initial delivery is 1.
attempt-typeenumWhether the attempt originated from Stedi (AUTOMATIC) or was a manual retry (MANUAL).
destination-idstringThe identifier for the event destination,formatted as dst_{UUID}.
event-idstringThe event identifier, formatted as evt_{UUID}.
webhook-idstringA unique message identifier per the Standard Webhooks specification, formatted as msg_{UUID}. You can use this to check for duplicate event deliveries.
webhook-signaturestringA Stedi-generated signature, formatted as v1,{signature}. Use this to verify message authenticity.
webhook-timestampintegerA Unix timestamp indicating when the event was created. This is different from when the event was delivered. You can use this to verify the time of receipt.

The following example headers show that this is the original delivery (attempt-number: 1) from Stedi.

attempt-number: 1
attempt-type: AUTOMATIC
destination-id: dst_019d30e3-5e39-7ab3-9a2e-fcf8218a313d
event-id: evt_b73ae1d2-9128-90b5-60ff-7479ab8b30ac
webhook-id: msg_b73ae1d2-9128-90b5-60ff-7479ab8b30ac
webhook-signature: v1,Z5wMZ2rqRMsnGdfKzOLnRv1SIwivsLFCGQzJH7eCmlU=
webhook-timestamp: 1774641758

Event payload

Stedi events use a thin event schema. Thin events notify you that a resource has changed but don't include the resource's data. Once you receive an event, verify the resource's state and retrieve details using Stedi's APIs or the Stedi portal.

The event payload schema is available in the Retrieve Event endpoint's eventPayload.v1Event object.

Events

You can subscribe to two types of transaction enrollment events. You can also trigger a generic test event from within the Stedi portal to test your event destinations.

You can use each enrollment event's resource.id to retrieve details about the enrollment request through the Retrieve Enrollment endpoint or the Enrollments page in the Stedi portal.

enrollment.activated

Stedi generates this event when a transaction enrollment request is set to LIVE status. This indicates that the enrollment process is complete, and the specified provider can begin exchanging the listed transaction types with the payer.

{
  "account": "11111111-2222-3333-4444-555555555555",
  "created": "2026-03-30T23:19:00.501Z",
  "environment": "PRODUCTION",
  "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652",
  "object": "v1.event",
  "resource": {
    "id": "019bb508-dc63-73a1-8ddc-9d4720299072",
    "type": "enrollment"
  },
  "type": "enrollment.activated"
}

enrollment.rejected

Stedi generates this event when a transaction enrollment request is set to REJECTED status. This indicates that the payer rejected the enrollment. Common reasons for rejection include incorrect details in the request and the provider not being credentialed with the payer. Customer support will contact you with reasons for rejection and next steps.

{
  "account": "11111111-2222-3333-4444-555555555555",
  "created": "2026-03-30T23:18:52.772Z",
  "environment": "PRODUCTION",
  "id": "evt_8c28ce2e-5d4f-ae1c-fddb-e2421245a873",
  "object": "v1.event",
  "resource": {
    "id": "019bb4e9-5209-7e83-bc84-0db436be7e00",
    "type": "enrollment"
  },
  "type": "enrollment.rejected"
}

event.ping

A test event you can trigger to validate your event destination.

{
  "id": "evt_019d51b6-8d19-71c3-8f5f-cfb55830b618",
  "object": "v1.event",
  "created": "2026-04-03T05:00:11.417Z",
  "environment": "PRODUCTION",
  "resource": {
    "type": "destination",
    "id": "dst_019d51b6-707c-7920-8569-de40061cbe5c"
  },
  "account": "cd26e999-2cb9-4c64-be13-f7375e640b83",
  "type": "event.ping"
}

Data retention

By default, Stedi returns event data and displays delivery attempts from the past 30 days. Contact us if you need access to older event data.

On this page