SGP.22 Activation-Code Decoder
Parse an eSIM activation code / LPA string per GSMA SGP.22 — split and label the SM-DP+ address, matching ID, OID and confirmation-code flag, and understand the download flow. 100% client-side.
The activation-code anatomy
A consumer eSIM activation code is a compact string: LPA:1$<SM-DP+ address>$<matching id>
with two optional trailing fields (an SM-DP+ OID and a confirmation-code-required flag). The
LPA (Local Profile Assistant) on the device parses it, connects to the named SM-DP+ over
ES9+, authenticates the eUICC, then downloads and installs the profile with user consent.
Consumer vs IoT provisioning
SGP.22 is the consumer model (a person scans a code). SGP.32 is the IoT model, where an eIM (eSIM IoT remote Manager) drives provisioning through the device's IPA — no user-scanned code. Both matter as connected fleets scale in 2026; this decoder anchors the consumer side.
FAQ
What is the LPA:1$…$… string?
It's the SGP.22 activation code a consumer eSIM QR code carries. After the LPA: scheme prefix, the $-separated fields are: format version (1), the SM-DP+ server address (FQDN), the matching ID / AC_Token, an optional SM-DP+ OID, and an optional confirmation-code-required flag.
Is anything sent to the SM-DP+?
No. This decoder only splits and validates the string locally in your browser. It never contacts an SM-DP+ or downloads a profile.
Does this apply to IoT eSIM (SGP.32)?
Not directly. SGP.32 IoT provisioning is driven by an eIM through the IPA rather than a user-scanned activation code. This decoder targets consumer SGP.22, but understanding it is the baseline for the IoT flow too.
Related tools
Need this at production scale?
Senior SIM/USIM/OTA consulting, applet development and operator advisory — EN/PT.