For the complete documentation index, see llms.txt. This page is also available as Markdown.

eSIM Profiles

An eSIM profile allows access to the mobile data network. The user can install an eSIM using different methods on an eSIM-capable smartphone:

  • Scan the Activation Code

  • Direct Installation via Universal link (recommended)

eSIM API Object

Each eSIM profile comes with

  • uid - identitier; used for SDK eSIM download

  • ICCID - main identifier for end-user support

  • activationCode - used to install the eSIM

  • IMSI, lastSeen, activatedAt - additional identifiers for support

  • state - current state (e.g. INSTALLED)

{
    "iccid": "89972123300991848961",
    "imsi": "260060145143896",
    "activationCode": "LPA:1$domain.tld$1234567890ABCDEF123456",
    "appleUniversalLink": "https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=LPA:1$<SM-DP+ Address>$<Activation Code>",
    "installationUrl": "https://tunz.giga.store#/esim/profile?token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI4OTk3MjEyMzMwMDk5MTg0ODk2MSJ9.V34vHdqG6QD9iyCLjIfh2zxsv5MUUjEaOkSw3EY_RVJAxhQQfTeZBfEL_EYwAS9TMNi_Rn6L2Q2cuuI8Ve9zmQ",
    "lastSeen": null,
    "activatedAt": null,
    "state": "RELEASED",
    "uid": "7555cab8-72bc-4e85-b56a-6cdf60e2d6e4",
    "active": true
}

Providing QR code for installation

Once the First Package is activated, the returned eSIM can be used to provide a QR code for installing the eSIM.

You can use any QR code renderer to generate a QR code using the activationCode and provide it to your user via email or through other channels.

The QR code must be scanned with an eSIM-capable device, like an iPhone 14.

Example QR code of LPA:1$domain.tld$1234567890ABCDEF123456
iPhone identifies the code as "Mobile Plan"

On Android 10 and iOS 17.4 and above, users can install their eSIM directly on their devices by clicking a simple link. The Universal Link install method works by adding the unique SMDP+ address and Activation Code as parameters to the universal link URL, which can be tied to a button in your application. The universal link would look as follows:

OS
URL
Activation code
Universal Link Sample

Apple

https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=

LPA:1$SMDP+_Address$Activation_Code

https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=LPA:1$SMDP+_Address$Activation_Code

Android

https://esimsetup.android.com/esim_qrcode_provisioning?carddata=

LPA:1$SMDP+_Address$Activation_Code

https://esimsetup.android.com/esim_qrcode_provisioning?carddata=LPA:1$rsp.truphone.com$JQ-209U6H-6I82J5

Important Notes for Implementation:

  1. URL Casing: The base URL should always be lowercase to ensure compatibility and avoid processing errors.

  2. Activation Code: The Activation Code may contain capital letters and should be entered strictly as provided.

  3. External Link Configuration: If integrating this link within an app, configure it to open externally. This ensures that the device’s browser handles the activation, adhering to Apple’s setup protocols.

SMDP+ address and Activation Code are provided with this request

POST /gigastore/activations/register

eSIM States

An eSIM can have different states. You can use the eSIM state to guide the user during your user journey.

State
Meaning
Comment

RELEASED

Not installed on a device

Profile ready to be downloaded and installed

DISABLED

Installed, but user disabled the eSIM in the OS

Not available for all eSIM profiles / devices

INSTALLED/ENABLED

Installed and enabled

Profile is already installed, and may already be turned on in user's device

ERROR

Something went wrong during installation

Contact support to replace the profile.

To receive status updates, use the eSIM Status webhook. The webhook is triggered within a few seconds after the user interaction.

Last updated

Was this helpful?