TANITARDevelopers
WebhooksEvent catalogevent

event.ticket.email-status-changed

Version 1 of the event.ticket.email-status-changed webhook event.

The event.ticket.email-status-changed event.

Event typeevent.ticket.email-status-changed
Schema version1
Routing keyevent.event.ticket.email-status-changed.v1
Produced bynotification-service
Schemaurn:defendr:contract:event:ticket-email-status-changed:1

data fields

FieldTypeRequiredDescription
eventIdstringyes
issueIdstringyes
deliveryIdstringyes
status"pending", "sending", "smtp-accepted", "missing-contact", "failed", "expired", "revoked"yes
attemptsintegeryes
revisionintegeryes

Some fields are required only in particular states. The JSON Schema below is authoritative.

Example delivery

Signed with the example secret whsec_placeholder_example_webhooks_signing_secret, so you can check your verifier against it. See Verifying signatures.

POST /your/webhook/endpoint HTTP/1.1
content-type: application/json
webhook-id: whd_00000000-0000-4000-8000-000000000009
webhook-timestamp: 1800000000
webhook-signature: v1,kixvnH0d/fcJ6AGb05n79hX8ZVGcoEyHvjKYNiZzYyA=
tanitar-event-type: event.ticket.email-status-changed
tanitar-schema-version: 1
tanitar-delivery-attempt: 1

{"messageId":"evt_00000000-0000-4000-8000-000000000009","kind":"event","type":"event.ticket.email-status-changed","schemaVersion":1,"occurredAt":"2027-01-15T10:00:00.000Z","producer":"notification-service","accountId":"acc_11111111-1111-4111-8111-111111111111","correlationId":"corr_00000000-0000-4000-8000-000000000009","data":{"eventId":"event_example","issueId":"ticket_aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","deliveryId":"ticket-delivery:ticket_example:initial","status":"pending","attempts":1,"revision":1}}

The same body, formatted:

{
  "messageId": "evt_00000000-0000-4000-8000-000000000009",
  "kind": "event",
  "type": "event.ticket.email-status-changed",
  "schemaVersion": 1,
  "occurredAt": "2027-01-15T10:00:00.000Z",
  "producer": "notification-service",
  "accountId": "acc_11111111-1111-4111-8111-111111111111",
  "correlationId": "corr_00000000-0000-4000-8000-000000000009",
  "data": {
    "eventId": "event_example",
    "issueId": "ticket_aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
    "deliveryId": "ticket-delivery:ticket_example:initial",
    "status": "pending",
    "attempts": 1,
    "revision": 1
  }
}

JSON Schema

urn:defendr:contract:event:ticket-email-status-changed:1
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:defendr:contract:event:ticket-email-status-changed:1",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "eventId",
    "issueId",
    "deliveryId",
    "status",
    "attempts",
    "revision"
  ],
  "properties": {
    "eventId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 400
    },
    "issueId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 400
    },
    "deliveryId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 400
    },
    "status": {
      "enum": [
        "pending",
        "sending",
        "smtp-accepted",
        "missing-contact",
        "failed",
        "expired",
        "revoked"
      ]
    },
    "attempts": {
      "type": "integer",
      "minimum": 0,
      "maximum": 5
    },
    "revision": {
      "type": "integer",
      "minimum": 1
    }
  }
}

On this page