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
typestringesim.assignedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringeSIM reference identifier (18-digit opaque token)
iccidstringTriggered when an eSIM profile has been downloaded to a device.
Payload
typestringesim.downloadedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringeSIM reference identifier (18-digit opaque token)
iccidstringoptionaleidstringoptionalThe eUICC Identifier (EID) of the device, if available
Triggered when an eSIM profile has been installed on a device.
Payload
typestringesim.installedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringeSIM reference identifier (18-digit opaque token)
iccidstringoptionaleidstringoptionalThe eUICC Identifier (EID) of the device, if available
Triggered when an eSIM profile has been enabled on a device.
Payload
typestringesim.enabledtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringeSIM reference identifier (18-digit opaque token)
iccidstringoptionaleidstringoptionalThe eUICC Identifier (EID) of the device, if available
Triggered when an eSIM profile has been disabled on a device.
Payload
typestringesim.disabledtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringeSIM reference identifier (18-digit opaque token)
iccidstringoptionaleidstringoptionalThe eUICC Identifier (EID) of the device, if available
Triggered when an eSIM profile has been deleted from a device.
Payload
typestringesim.deletedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringeSIM reference identifier (18-digit opaque token)
iccidstringoptionaleidstringoptionalThe eUICC Identifier (EID) of the device, if available
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
typestringesim.faultedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringeSIM reference identifier (18-digit opaque token)
iccidstringoptionaleidstringoptionalThe eUICC Identifier (EID) of the device, if available
reasonstringExtensible enum. Normalized 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. profile_rejected means the device could not process the profile's contents. device_unspecified_error means the device refused the installation without stating a cause of its own. 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_interruptedprofile_rejecteddevice_unspecified_errorinstall_failedunknowndetailstringoptionalThe 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
typestringesim.mccswitchtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringeSIM reference identifier (18-digit opaque token)
iccidstringoptionalpreviousCountrystringoptionalISO 3166-1 alpha-2 country code. Absent on the first registration ever observed for the eSIM.
previousMccstringoptionalMobile Country Code. Absent on the first registration ever observed for the eSIM.
previousMncstringoptionalMobile Network Code
newCountrystringoptionalISO 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).
newMccstringMobile Country Code
newMncstringoptionalMobile 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 SIM no longer being served by the network. Packages ordered on the eSIM stay active and send no event.
Payload
typestringesim.lifecycle.suspendedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringeSIM reference identifier (18-digit opaque token)
iccidstringoptionallifecycleStatusstringNetwork lifecycle status after the change
suspendedpreviousLifecycleStatusstringoptionalNetwork lifecycle status before the change
activeTriggered 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, and when a preactive eSIM goes live. Not emitted for an eSIM that is active when it is assigned; esim.assigned covers that.
Payload
typestringesim.lifecycle.activatedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringeSIM reference identifier (18-digit opaque token)
iccidstringoptionallifecycleStatusstringNetwork lifecycle status after the change
activepreviousLifecycleStatusstringoptionalNetwork lifecycle status before the change
preactivesuspendedTriggered 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
typestringesim.lifecycle.terminatedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringeSIM reference identifier (18-digit opaque token)
iccidstringoptionallifecycleStatusstringNetwork lifecycle status after the change
terminatedpreviousLifecycleStatusstringoptionalNetwork lifecycle status before the change
preactiveactivesuspendedSent after a balance credit or debit succeeds.
Payload
typestringesim.balance.updatedtimestampstring · date-timeWhen the event was recorded. This can be later than the change it reports: usage reported by the network can describe consumption that happened earlier.
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringupdateTypestringcreditdebitsourcestringWho originated the update: client for your own credit, debit or set; provider for a
movement the network applied; system for a movement we made on our own.
clientprovidersystemreasonstringdetailstringoptionalOptional context for this update
amountintegerUpdate amount in integer minor currency units
balanceAfterintegerBalance after this update
currencystringThree-letter ISO 4217 currency code
clientTransactionIdstringoptionalClient transaction identifier, present for client updates
providerTransactionIdstringoptionalExternal transaction identifier when available
occurredAtstring · date-timeoptionalWhen the balance update occurred