Skip to main content
gaoyu1
Level 2.0: Eclair
May 22, 2026
Solved

eSIM silently (without user interaction) downloaded to the device and successfully activated

  • May 22, 2026
  • 3 replies
  • 236 views

I am currently developing an EMM using the official AMAPI. For the requirement of "eSIM silently (without user interaction) downloaded to the device and successfully activated", it is required to directly call the interface to download EISM without using an activation code. However, the activation code field in the AddEsimParams field of the AMAPI interface is a mandatory item. How can I implement this feature

Best answer by jasonbayton

AMAPI's AddEsimParams.activationCode is mandatory by Google's design. I’m not sure I draw the same conclusion as you from the docs..

 

The activation code is the destination from which the profile is downloaded, it can either be a full profile or a partial profile, in the latter you don’t provide an activation code with a full eSIM configured, but rather point to an SM-DP+ server that has device identifiers mapped to an eSIM config on that end. If you want the admin not to type a code, the EMM has to fetch one via direct integration with the carrier. The EMM then calls AMAPI's AddEsim with the carrier-supplied code and the user sees nothing.

 

I’ve implemented this a couple of times to date, perhaps these references will help:

 

From a usage standpoint, 

  • The EMM user obtains an LPA activation code from the carrier / SM-DP+ provider independently - typically a string like LPA:1$smdp.example.com$MATCHING_ID.
  • Submits it via the Add eSIM command. Flash sends addEsimParams.activationCode plus activationState (defaulting to ACTIVATION_STATE_UNSPECIFIED if you don't set it - see amapi-command.ts ADD_ESIM body construction).
  • On a fully managed device running Android 15+, AMAPI downloads and activates the profile with no user interaction.

If you literally don't have an activation code, your real question is for the SM-DP+/carrier, not the EMM - ask them to issue an activation code (or per-device matching IDs) you can feed into addEsimParams. AMAPI has no EID-only download path today.

 

Thanks for the ping ​@Kirk :)

3 replies

Kirk
Community Manager
May 22, 2026

Hey, thanks for posting, great question!
 

I'm not sure I can do it full justice myself, but one of our community experts, Jason, has actually written up the AMAPI eSIM management flow in some detail, which might be worth a read as a starting point: Is it possible to manage eSIM? | Jason Bayton
 

Tagging ​@jasonbayton to see if he has any specific insight on the activation code requirement and whether there's a workaround available for your use case!

gaoyu1
gaoyu1Author
Level 2.0: Eclair
May 25, 2026

Thank you for your reply. In the article you shared, I have gained other insights from eSIM

jasonbayton
Level: 4.1: Jelly bean
May 22, 2026

AMAPI's AddEsimParams.activationCode is mandatory by Google's design. I’m not sure I draw the same conclusion as you from the docs..

 

The activation code is the destination from which the profile is downloaded, it can either be a full profile or a partial profile, in the latter you don’t provide an activation code with a full eSIM configured, but rather point to an SM-DP+ server that has device identifiers mapped to an eSIM config on that end. If you want the admin not to type a code, the EMM has to fetch one via direct integration with the carrier. The EMM then calls AMAPI's AddEsim with the carrier-supplied code and the user sees nothing.

 

I’ve implemented this a couple of times to date, perhaps these references will help:

 

From a usage standpoint, 

  • The EMM user obtains an LPA activation code from the carrier / SM-DP+ provider independently - typically a string like LPA:1$smdp.example.com$MATCHING_ID.
  • Submits it via the Add eSIM command. Flash sends addEsimParams.activationCode plus activationState (defaulting to ACTIVATION_STATE_UNSPECIFIED if you don't set it - see amapi-command.ts ADD_ESIM body construction).
  • On a fully managed device running Android 15+, AMAPI downloads and activates the profile with no user interaction.

If you literally don't have an activation code, your real question is for the SM-DP+/carrier, not the EMM - ask them to issue an activation code (or per-device matching IDs) you can feed into addEsimParams. AMAPI has no EID-only download path today.

 

Thanks for the ping ​@Kirk :)

gaoyu1
gaoyu1Author
Level 2.0: Eclair
May 25, 2026

Thank you for your answer. Currently, my EMM has implemented the use of activation codes to download and configure, but the auditor requires users to install silently without any operation. I don't quite understand what this means

 

jasonbayton
Level: 4.1: Jelly bean
May 25, 2026

Take two videos, 

 

First use an activation code in the command with a full esim profile and set it to activated, show the device installing it silently

 

Second use an activation code that just points to the sm-dp+ where the device has already been assigned a similar based on it's EID, set it to active, record it installing on the device

Moombas
Level 4.4: KitKat
May 22, 2026

To be honest i would wonder if an activation code is NOT required.

I see my assumption agreed viewing this documentation: https://source.android.com/docs/core/connect/esim-overview#activation-code


A​lso as @Kirk points to ​@jasonbaytons documentation, there the activation code is not stated as optional which would fit my assumption as well.

gaoyu1
gaoyu1Author
Level 2.0: Eclair
May 25, 2026

Thank you for your reply. Currently, my EMM is using LAP activation codes, but the auditor still refused my video verification and requested a silent installation without any user operation. I don't quite understand how to implement it

Moombas
Level 4.4: KitKat
May 26, 2026

There’s no user operation needed. The provider needs to hand over the activation code which can be then provided to the devices and install the eSIM without user handling.
I tested this with Soti since they implemented this into their MDM (just slightly too late for us but still an interesting thing to be developed as other countries will switch in future, I’m sure).

The only thing i see on iser side is a message in the notifications that new settings need to be installed from provider side and they just need to push “install” there.

But i also tried to just ignore this and they worked, so more likely to get rid of the message and this might be different (we switched from SIM to eSIM) in use case, provider, device manufacturer or what ever.