Guida eSIM10 min di lettura

eSIM API Integration in 2026: What Developers Need to Know Before They Build

Learn how to integrate an eSIM API in 2026, from GSMA SGP.22 standards and provider selection to provisioning, QR code delivery, webhooks, security, device…

Louisa Jacobson

Louisa Jacobson

Team editoriale Roamify

eSIM API Integration in 2026: What Developers Need to Know Before They Build

Building eSIM functionality into a product sounds straightforward — until you're three weeks into a sprint and realizing that RSP standards, carrier-side activation flows, and QR code delivery pipelines each have their own failure modes. This guide covers what you actually need to know before writing a line of integration code in 2026.

What eSIM API Integration Actually Means #

The term gets used loosely. In practice, it covers several distinct problems depending on who you are and what you're building:

  • A travel app embedding eSIM purchasing so users can buy a data plan without leaving the app
  • A reseller or affiliate platform connecting to a provider's catalog to surface plans, handle purchases, and deliver activation codes
  • A device manufacturer or MDM vendor managing eSIM profiles programmatically across a fleet
  • A telecom operator building SM-DP+ (Subscription Manager Data Preparation) infrastructure from scratch

These are very different challenges. The first two are the most common use cases for developers at product companies in 2026, and that's where this article focuses — with notes on lower-level standards where they're relevant.

The Standards Layer You Can't Ignore #

GSMA RSP Architecture #

The GSMA's Remote SIM Provisioning (RSP) specification is the technical foundation everything else sits on. The current consumer profile standard is SGP.22 (M2M uses SGP.02, but if you're building for smartphones, SGP.22 is what matters). It defines how eSIM profiles are downloaded, installed, enabled, and deleted on a device.

You won't need to implement SGP.22 yourself in most integration scenarios. But understanding what it means for your architecture matters:

  • Activation codes follow a defined format: LPA:1$<SM-DP+ address>$<matching ID>
  • Profile downloads are initiated by the device's Local Profile Assistant (LPA), not your server
  • Your API's job is typically to provision the profile on the SM-DP+ server and return the activation code to the user

That separation is important because it tells you where errors will actually occur. A failed download is almost never your API call failing — it's usually a device compatibility issue, a network interruption during the LPA handshake, or a profile that was already consumed.

QR Code vs. Push Activation #

Most consumer eSIM APIs deliver an activation QR code that the user scans from a second device or screenshots. Some providers also support "push" or "direct install" flows where the profile installs automatically if the user is on the same device. Direct install is cleaner UX, but it has narrower device support and stricter OS version requirements. If you're targeting a broad device base, treat QR code delivery as your primary path and direct install as a progressive enhancement.

Choosing an API Provider #

Unless you're building carrier infrastructure, you're integrating with an eSIM API provider that sits between your product and the underlying SM-DP+ servers. That provider handles carrier relationships, profile provisioning, and often the reseller catalog.

Here's what to evaluate before committing:

Coverage and Plan Catalog #

How many countries does the provider cover? Do they offer single-country, regional, and global plans? Catalog breadth directly affects what you can surface to users. A provider covering 200+ countries and regions gives you meaningful global reach without stitching together multiple integrations.

Pricing Structure and Margins #

Understand how the provider prices API access. Some charge per-activation fees on top of plan costs; others offer wholesale rates with margin built in. If you're building a reseller product, your margin depends entirely on this structure. Compare the provider's published retail prices against what they offer via API to understand where you sit.

Activation Code Delivery #

Does the API return the activation QR code synchronously, or is it async with a webhook? Async delivery is common when the provider needs to provision the profile on the carrier's SM-DP+ server before generating the code — and your UX needs to account for that. A user who purchases and waits 30 seconds for a QR code needs a clear loading state; one who waits 5 minutes needs an email fallback.

Sandbox and Testing Environment #

Any provider worth integrating with has a sandbox. Verify that it returns realistic test activation codes, that webhook payloads match production format exactly, and that error codes are documented. Discovering in production that a "plan sold out" error returns a 200 with an error body rather than a 4xx will ruin your week.

Webhooks and Status Updates #

eSIM activation isn't instantaneous. You need webhooks for:

  • Profile provisioning complete (activation code ready)
  • Profile downloaded by device
  • Data usage thresholds (if the provider exposes them)
  • Plan expiry

If a provider only supports polling and doesn't offer webhooks, that's a red flag for anything beyond a simple one-time purchase flow.

Core API Flows to Design Around #

Plan Discovery #

Your integration typically starts with a catalog endpoint: fetch available plans by country or region, return plan details (data amount, validity, price, network coverage), and let the user select. Cache this aggressively. Catalog data doesn't change minute-to-minute, and hammering a catalog endpoint on every page load is unnecessary — and will get you rate-limited.

Purchase and Provisioning #

The purchase flow usually looks like this:

  1. User selects a plan
  2. Your backend calls the provider's order/purchase endpoint with the plan ID and user reference
  3. Provider returns an order ID and begins provisioning
  4. Webhook fires when the activation code is ready (or the response is synchronous if the provider supports it)
  5. Your backend stores the activation code and delivers it to the user

Never expose the activation code in a client-side API call. The code is single-use. If it leaks, the plan is gone.

Activation Code Delivery #

Deliver the QR code as a rendered image — the provider usually gives you either a base64 PNG or a raw activation string you render yourself. Always include the manual entry string alongside the QR code. Some users will be on the device they're trying to activate and can't scan their own screen.

Error Handling #

The failure modes you'll hit most often:

  • Device incompatible: The user's device doesn't support eSIM or has hit its profile limit. Surface this clearly — don't show a generic error.
  • Plan unavailable: A stock or carrier-side availability issue. Offer alternatives.
  • Activation code already used: The user tried to install twice. Handle re-delivery gracefully, which usually means contacting the provider's support API or flagging it for manual review.
  • Network error during LPA download: This is on the device, not your integration. Tell the user to try again on a stable connection.

Device Compatibility Considerations #

Your API integration can be flawless and still fail because of the device. Key compatibility points to communicate before purchase:

  • The device must be eSIM-capable (not all budget Android phones are)
  • The device must be carrier-unlocked
  • iOS devices need iOS 12.1 or later for basic eSIM; iOS 16+ for dual eSIM on supported models
  • Most devices cap stored eSIM profiles somewhere between 5 and 20, depending on the manufacturer
  • Devices purchased in mainland China often have eSIM disabled at the hardware level regardless of model

Build a device check or compatibility FAQ into your purchase flow. Cutting post-purchase support tickets from incompatible devices is worth the UX investment.

Security Considerations #

A few non-negotiable practices:

Store activation codes server-side. Return them to authenticated users only. Log access.

Verify webhook signatures. Every reputable provider signs webhook payloads. Verify the signature before processing — an unverified webhook endpoint is an easy attack vector for fraudulent order completions.

Rate-limit your purchase endpoints. eSIM plans are a digital good with real cost. Without rate limiting, a credential-stuffing attack or a buggy client retry loop can generate real charges fast.

Don't log activation codes in plaintext. Treat them like payment tokens.

Building a Reseller or Affiliate Integration #

If you're building a comparison site, travel app, or embedded eSIM store rather than a first-party product, the integration model shifts. You're typically embedding a provider's purchasing flow or using a white-label API to surface plans under your own brand.

Platforms like Roamify run a partnership and reseller program (at partner.getroamify.com) that lets developers and affiliates embed eSIM plan access without building the full provisioning stack themselves. The catalog covers 200+ countries and regions with plans starting at $2 — which matters when you're building a price-sensitive comparison product and need a competitive floor to show users.

For this type of integration, your technical scope is narrower: catalog display, deep links or embedded checkout, and attribution. The provisioning complexity lives with the provider. The tradeoff is less control over the purchase UX and margin structure.

Testing Before You Ship #

A pre-launch checklist worth running through:

  • Purchase a real plan in the sandbox and confirm activation code delivery end-to-end
  • Test webhook delivery with a tool like ngrok or a webhook testing service before wiring to production
  • Simulate a failed purchase (use a test plan ID that triggers an error) and verify your error UI
  • Test on both iOS and Android with real eSIM-capable devices
  • Confirm that re-requesting an already-delivered activation code returns the same code, not a new one
  • Verify that your activation code display works on small screens — 64% of eSIM purchases happen on mobile
  • Check that your QR code renders at a size that's actually scannable (minimum 200×200px, ideally larger)

FAQs #

What's the difference between an eSIM API and an eSIM marketplace?
An eSIM API is a programmatic interface for integrating eSIM plan purchasing and provisioning into your own product. An eSIM marketplace is a consumer-facing storefront. Some providers offer both: a retail storefront for direct consumers and an API or reseller program for developers who want to embed the same inventory.

Do I need to work directly with carriers to build eSIM functionality?
Not for most product use cases. eSIM API providers handle carrier relationships and SM-DP+ infrastructure — you integrate with their API and they manage the provisioning layer. Direct carrier integration is only necessary if you're building your own MVNO or managing eSIM profiles at scale for enterprise device fleets.

How do I handle users who lose their activation QR code?
Store the activation code server-side, tied to the user's account and order ID, and allow authenticated users to retrieve it. Most providers allow the same activation code to be displayed multiple times; what they don't allow is using it to install the profile more than once.

What causes an eSIM activation to fail after a successful purchase?
The most common culprits: device not eSIM-capable or carrier-locked, device profile storage full, user tried to scan the QR code on the same device being activated (requires a second device or manual entry), or a network interruption during the LPA download. These are device-side issues, not API failures.

Can I build an eSIM integration that works globally?
Yes, if your provider has sufficient country coverage. Look for providers covering 200+ countries and regions. Keep in mind that coverage quality varies — a plan may technically be available for a destination but rely on a single local carrier with poor rural reach. Check network partner details per destination if your users travel off the beaten path.

Is eSIM API integration significantly different in 2026 compared to earlier years?
The GSMA SGP.22 standard has been stable, but provider APIs have matured considerably. Webhook reliability, sandbox environments, and documentation quality are all meaningfully better than they were a few years ago. Direct install flows have also expanded to more device models, though QR code delivery remains the most universally compatible approach.

What should I prioritize if I'm building a reseller integration rather than a first-party product?
Focus on catalog freshness, pricing accuracy, and attribution tracking. The provisioning complexity is handled by the provider. Your differentiation comes from how well you surface the right plan for a given destination, how clearly you communicate compatibility requirements, and how competitive your pricing looks relative to alternatives.

Where to Start #

The fastest path to a working integration is picking a provider with a clean API, a real sandbox, and a catalog that covers your users' destinations. Test the full purchase-to-activation flow yourself before building any UI around it. Device compatibility edge cases and async provisioning patterns are where most integrations get tripped up — and you want to find those in testing, not production.

If you're evaluating the reseller or white-label route, Roamify offers a partnership program worth looking at for developers who want to embed eSIM access without managing provisioning infrastructure directly.

Domande frequenti

Imparerai come funziona l'attivazione dell'eSIM, come confrontare i piani dati e quali passaggi di configurazione sono più importanti prima e durante il viaggio.

Attivazione immediata

In partenza per una nuova meta? Resta connesso non appena atterri.

Dati di viaggio convenienti per oltre 200 destinazioni. Niente costi di roaming, niente spese nascoste, basta scansionare e partire.

Continua a leggere

Tutti gli articoli