Webhook event reference

The supported webhook types and the exact data payload of each.

Disclaimer

Example field values below are significant for format and type only. Do not treat them as real data.

This page lists every supported webhook type and shows the complete request body for each. For the shared request format (method, headers, delivery and retry behaviour, security), see the Webhooks overview.

Each event is identified by the X-Webhook-Type request header, whose value is one of the strings in the table below. Route on that header, then read the fields for that type.

Every webhook body has the same three top-level fields, and the type-specific fields are nested under data:

FieldTypeDescription
idstringUnique identifier for this event, generated by DT One. Use it to deduplicate repeated deliveries.
created_atstringRFC 3339 timestamp (UTC) of when DT One recorded the event.
dataobjectThe type-specific event fields, documented per webhook type below.
X-Webhook-TypeDT Shop labelFires when…
ESIM_STATUSeSIM StatusThe installation state of an eSIM profile changes (e.g. it is installed).
ESIM_BALANCE_ACTIVATIONeSIM Balance ActivationA data balance is activated on an eSIM.
ESIM_BALANCE_ALERTeSIM Balance AlertAn eSIM's remaining data balance crosses the low-balance threshold.
ESIM_COUNTRY_CHANGEeSIM Country ChangeAn eSIM connects to a network in a different country.
📘

All current events are eSIM events

Every webhook type available today relates to eSIM services. The id / created_at / data body structure and delivery behaviour are generic, so new event types may be added later without changing the request format — always route on X-Webhook-Type and ignore any data fields you do not recognize.


ESIM_STATUS

Sent when the installation state of an eSIM profile changes — for example, when the end user installs the profile on a device.

{
  "id": "1288",
  "created_at": "2026-07-26T10:15:30Z",
  "data": {
    "iccid": "89361123300836129514",
    "imsi": "260216611193634",
    "profile_state": "INSTALLED",
    "eid": "74088234238931452"
  }
}
FieldTypeDescription
idstringUnique event identifier (top level). Use it to deduplicate.
created_atstringRFC 3339 timestamp (UTC) when DT One recorded the event (top level).
data.iccidstringICCID (serial) of the eSIM whose state changed.
data.imsistringIMSI (International Mobile Subscriber Identity) of the eSIM.
data.profile_statestringThe eSIM profile's installation state (for example, INSTALLED).
data.eidstringThe device's eUICC identifier (EID). Optional — may be empty or absent if the device did not report it.

ESIM_BALANCE_ACTIVATION

Sent when a data balance is activated on an eSIM (for example, after a purchase or top-up is provisioned).

{
  "id": "1289",
  "created_at": "2026-07-26T09:52:10Z",
  "data": {
    "activatedAt": "2026-07-26T09:52:10Z",
    "expiresAt": "2026-08-03T10:15:30Z",
    "transaction_id": 2239249455
  }
}
FieldTypeDescription
idstringUnique event identifier (top level). Use it to deduplicate.
created_atstringRFC 3339 timestamp (UTC) when DT One recorded the event (top level).
data.activatedAtstringRFC 3339 timestamp (UTC) when the balance was activated.
data.expiresAtstringRFC 3339 timestamp (UTC) when the balance will expire.
data.transaction_idintegerThe DT One transaction that provisioned this balance. Cross-reference it against your own records.

ESIM_BALANCE_ALERT

Sent when an eSIM's remaining data balance drops below the low-balance threshold, so you can prompt the user to top up.

{
  "id": "1290",
  "created_at": "2026-07-26T10:15:30Z",
  "data": {
    "iccid": "89361123300836129514",
    "imsi": "260216611193634",
    "timestamp": "2026-07-26T10:15:30Z",
    "balance_amount_in_byte": 93618231,
    "transaction_id": 2239249455
  }
}
FieldTypeDescription
idstringUnique event identifier (top level). Use it to deduplicate.
created_atstringRFC 3339 timestamp (UTC) when DT One recorded the event (top level).
data.iccidstringICCID (serial) of the eSIM.
data.imsistringIMSI of the eSIM.
data.timestampstringRFC 3339 timestamp (UTC) when the alert was raised.
data.balance_amount_in_byteintegerRemaining data balance, in bytes.
data.transaction_idintegerThe DT One transaction associated with the eSIM. Cross-reference it against your own records.

ESIM_COUNTRY_CHANGE

Sent when an eSIM connects to a network in a different country.

{
  "id": "1291",
  "created_at": "2026-07-26T11:02:00Z",
  "data": {
    "imsi": "123456789012345",
    "iccid": "12345678901234567890",
    "previous_country": null,
    "new_country": "DE"
  }
}
FieldTypeDescription
idstringUnique event identifier (top level). Use it to deduplicate.
created_atstringRFC 3339 timestamp (UTC) when DT One recorded the event (top level).
data.imsistringIMSI of the eSIM.
data.iccidstringICCID (serial) of the eSIM.
data.previous_countrystring / nullThe country the eSIM was previously connected to. null when this is the eSIM's first connection.
data.new_countrystringThe country the eSIM is now connected to.

Full HTTP request example

The bodies above are delivered inside a POST request with DT One's headers. A complete ESIM_STATUS request looks like this end to end:

POST /your/webhook/endpoint HTTP/1.1
Content-Type: application/json; charset=UTF-8
X-Webhook-Type: ESIM_STATUS
User-Agent: Digital Value Services Webhook
Date: Sun, 26 Jul 2026 10:15:30 UTC

{
  "id": "1288",
  "created_at": "2026-07-26T10:15:30Z",
  "data": {
    "iccid": "89361123300836129514",
    "imsi": "260216611193634",
    "profile_state": "INSTALLED",
    "eid": "74088234238931452"
  }
}

Did this page help you?