Webhooks
eSIM events
Signed POST requests to your webhook endpoint for esim lifecycle events. See the Webhooks overview for signature verification.
Triggered when an eSIM is successfully assigned to a client after ordering. The eSIM is now ready to be downloaded to a device.
Payload
typestringrequiredesim.assignedtimestampstring · date-timerequiredWhen the event occurred
dataobjectrequiredShow propertiesHide properties
profileReferencestringrequiredesimReferencestringrequiredeSIM reference identifier (18-digit opaque token)
iccidstringrequiredTriggered when an eSIM profile has been downloaded to a device.
Payload
typestringrequiredesim.downloadedtimestampstring · date-timerequiredWhen the event occurred
dataobjectrequiredShow propertiesHide properties
profileReferencestringrequiredesimReferencestringrequiredeSIM reference identifier (18-digit opaque token)
iccidstringeidstringThe eUICC Identifier (EID) of the device, if available
Triggered when an eSIM profile has been installed on a device.
Payload
typestringrequiredesim.installedtimestampstring · date-timerequiredWhen the event occurred
dataobjectrequiredShow propertiesHide properties
profileReferencestringrequiredesimReferencestringrequiredeSIM reference identifier (18-digit opaque token)
iccidstringeidstringThe eUICC Identifier (EID) of the device, if available
Triggered when an eSIM profile has been enabled on a device.
Payload
typestringrequiredesim.enabledtimestampstring · date-timerequiredWhen the event occurred
dataobjectrequiredShow propertiesHide properties
profileReferencestringrequiredesimReferencestringrequiredeSIM reference identifier (18-digit opaque token)
iccidstringeidstringThe eUICC Identifier (EID) of the device, if available
Triggered when an eSIM profile has been disabled on a device.
Payload
typestringrequiredesim.disabledtimestampstring · date-timerequiredWhen the event occurred
dataobjectrequiredShow propertiesHide properties
profileReferencestringrequiredesimReferencestringrequiredeSIM reference identifier (18-digit opaque token)
iccidstringeidstringThe eUICC Identifier (EID) of the device, if available
Triggered when an eSIM profile has been deleted from a device.
Payload
typestringrequiredesim.deletedtimestampstring · date-timerequiredWhen the event occurred
dataobjectrequiredShow propertiesHide properties
profileReferencestringrequiredesimReferencestringrequiredeSIM reference identifier (18-digit opaque token)
iccidstringeidstringThe eUICC Identifier (EID) of the device, if available
Experimental. This event is still settling — its payload may change without a deprecation cycle.
Triggered when an eSIM profile fails to download to, or install on, a device. Distinct from esim.deleted, which reports an actual removal of a profile that was present.
reason is the normalized cause and detail keeps the underlying provider codes for support. A fault is usually not the end of the attempt: the download order stays live and the device may retry to a successful install, so a subsequent esim.installed for the same eSIM is expected and supersedes this event. The exception is download_order_expired, where the order itself is dead and a replacement eSIM must be ordered.
Payload
typestringrequiredesim.faultedtimestampstring · date-timerequiredWhen the event occurred
dataobjectrequiredShow propertiesHide properties
profileReferencestringrequiredesimReferencestringrequiredeSIM reference identifier (18-digit opaque token)
iccidstringeidstringThe eUICC Identifier (EID) of the device, if available
reasonstringrequiredNormalized cause of the failure. download_order_expired means the download order ran out of attempts and is dead. user_rejected means the end user declined the installation prompt. device_out_of_memory means the device has no room for another profile. already_installed means the profile is already present on that device. install_interrupted means the installation was cut short. download_failed and install_failed are the unclassified failures of their respective stages, and unknown is a failure the provider described with no machine-readable cause.
download_order_expireduser_rejecteddownload_faileddevice_out_of_memoryalready_installedinstall_interruptedinstall_failedunknowndetailstringThe underlying provider codes and message behind reason, for support and debugging. Free-form and not intended to be parsed. Absent when the provider supplied none.
Triggered when an eSIM registers on a different mobile network than the one it last registered on — a change of MCC or MNC. Repeated registrations on the same network emit nothing. Carries the previous network alongside the new one; on the first registration ever observed for an eSIM the previous* fields are absent.
Payload
typestringrequiredesim.mccswitchtimestampstring · date-timerequiredWhen the event occurred
dataobjectrequiredShow propertiesHide properties
profileReferencestringrequiredesimReferencestringrequiredeSIM reference identifier (18-digit opaque token)
iccidstringpreviousCountrystringISO 3166-1 alpha-2 country code. Absent on the first registration ever observed for the eSIM.
previousMccstringMobile Country Code. Absent on the first registration ever observed for the eSIM.
previousMncstringMobile Network Code
newCountrystringISO 3166-1 alpha-2 country code resolved from the MCC. Absent when the MCC is not geographically bound (satellite and other international networks, MCC 90x).
newMccstringrequiredMobile Country Code
newMncstringMobile Network Code
Triggered when an eSIM's network connectivity is suspended, via PATCH /profiles/{profileReference}/esims/{esimReference}/lifecycle with operation: suspend. This is the network lifecycle, not the profile state on the device: esim.disabled reports the profile being switched off on the handset, while this event reports the line no longer being served by the network. Any active packages are ended first, each with its own package.ended event carrying reason: removed.
Payload
typestringrequiredesim.lifecycle.suspendedtimestampstring · date-timerequiredWhen the event occurred
dataobjectrequiredShow propertiesHide properties
profileReferencestringrequiredesimReferencestringrequiredeSIM reference identifier (18-digit opaque token)
iccidstringlifecycleStatusstringrequiredNetwork lifecycle status after the change
suspendedpreviousLifecycleStatusstringNetwork lifecycle status before the change
activesuspendedterminatedTriggered when an eSIM's network connectivity is activated after a suspension, either via PATCH /profiles/{profileReference}/esims/{esimReference}/lifecycle with operation: reactivate, or automatically when a package is ordered on a suspended eSIM. Not emitted when an eSIM first goes live after provisioning: esim.assigned covers that.
Payload
typestringrequiredesim.lifecycle.activatedtimestampstring · date-timerequiredWhen the event occurred
dataobjectrequiredShow propertiesHide properties
profileReferencestringrequiredesimReferencestringrequiredeSIM reference identifier (18-digit opaque token)
iccidstringlifecycleStatusstringrequiredNetwork lifecycle status after the change
activepreviousLifecycleStatusstringNetwork lifecycle status before the change
activesuspendedterminatedTriggered when an eSIM's network connectivity is permanently terminated, via PATCH /profiles/{profileReference}/esims/{esimReference}/lifecycle with operation: terminate. Terminal: the eSIM cannot be reactivated. Any active packages are ended first, each with its own package.ended event carrying reason: removed.
Payload
typestringrequiredesim.lifecycle.terminatedtimestampstring · date-timerequiredWhen the event occurred
dataobjectrequiredShow propertiesHide properties
profileReferencestringrequiredesimReferencestringrequiredeSIM reference identifier (18-digit opaque token)
iccidstringlifecycleStatusstringrequiredNetwork lifecycle status after the change
terminatedpreviousLifecycleStatusstringNetwork lifecycle status before the change
activesuspendedterminatedExperimental. This event is still settling — its payload may change without a deprecation cycle.
Sent after a balance credit or debit succeeds.
Payload
typestringrequiredesim.balance.updatedtimestampstring · date-timerequiredWhen the event occurred
dataobjectrequiredShow propertiesHide properties
profileReferencestringrequiredesimReferencestringrequiredupdateTypestringrequiredcreditdebitsourcestringrequiredclientproviderreasonstringrequireddetailstringOptional context for this update
amountintegerrequiredUpdate amount in integer minor currency units
balanceAfterintegerrequiredBalance after this update
currencystringrequiredThree-letter ISO 4217 currency code
clientTransactionIdstringClient transaction identifier, present for client updates
providerTransactionIdstringExternal transaction identifier when available
occurredAtstring · date-timeWhen the balance update occurred