{"skill":{"slug":"esim","displayName":"eSIM","summary":"Implement and troubleshoot eSIM across consumer activation, carrier integration, and RSP development.","description":"---\nname: eSIM\ndescription: Implement and troubleshoot eSIM across consumer activation, carrier integration, and RSP development.\nmetadata: {\"clawdbot\":{\"emoji\":\"📱\",\"os\":[\"linux\",\"darwin\",\"win32\"]}}\n---\n\n## Critical Distinction\n- Consumer RSP (SGP.22) and M2M RSP (SGP.02) are completely different architectures — not interchangeable, verify which applies before starting\n\n## Platform API Restrictions\n- Apple eSIM APIs require carrier entitlements — third-party apps cannot access without carrier partnership agreement\n- Android carrier privilege APIs require signing certificate match — must be signed with carrier's certificate\n- No public API exists for arbitrary eSIM provisioning — apps suggesting otherwise will fail App Store/Play Store review\n\n## Activation Code Traps\n- Format is `LPA:1$SMDP+address$MatchingId` — parse carefully, some codes omit optional parts\n- `$1` suffix means confirmation code required — flow differs, timeout is shorter\n- Codes are often one-time use — SM-DP+ rejects reused MatchingId, must generate new code\n- QR code is just encoding — the activation code content is what matters\n\n## Certification Requirements\n- GSMA SAS (Security Accreditation Scheme) mandatory for production SM-DP+ — cannot go live without it\n- Use test eUICCs during development — production EIDs must not touch test environments\n- GSMA TS.48 defines RSP test cases — certification testing follows this spec\n- Entitlement server is separate from RSP — iOS carrier features require additional integration beyond profile provisioning\n\n## Consumer-Facing Pitfalls\n- QR codes expire — typically 24-72 hours, carrier-dependent, users panic when \"invalid\"\n- Deleting profile is permanent on device — must request new activation code from carrier, no local recovery\n- Device lock status matters — locked devices reject profiles from non-native carriers\n- Regional variants of same phone model may lack eSIM hardware — verify before promising compatibility\n- Profile transfer between devices almost never works — expect new activation per device\n\n## Carrier Integration Reality\n- MVNOs rarely operate own SM-DP+ — use MNO's infrastructure or aggregators (G+D, IDEMIA, Thales)\n- Business agreements required before technical integration — ES2+ access isn't self-service\n- Number porting complicates eSIM activation — may require physical SIM first depending on carrier process\n\n## Troubleshooting Specifics\n- \"Profile already exists\" error — delete existing profile before retry, or request new MatchingId from SM-DP+\n- Download fails mid-process — ES9+ requires stable HTTPS, retry on better connection, not a code issue\n- Profile installed but no service — verify profile is enabled AND set as active line, restart radio\n","tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":1224,"installsAllTime":0,"installsCurrent":0,"stars":2,"versions":1},"createdAt":1770762823564,"updatedAt":1778486994957},"latestVersion":{"version":"1.0.0","createdAt":1770762823564,"changelog":"Initial release","license":null},"metadata":{"setup":[],"os":["linux","darwin","win32"],"systems":null},"owner":{"handle":"ivangdavila","userId":"s178jdk12x4qj3gs2se3etxf3h83h7ft","displayName":"Iván","image":"https://avatars.githubusercontent.com/u/81719670?v=4"},"moderation":null}