eSIM API Integration: Costs, Best Practices, and Process Overview

Denis Belov

Copywriter

Published on:

Tags:

API

eSIM

Telecom

API integration can get tricky: poor documentation, limited security, and general performance issues can compound, drastically increasing dev time, pushing up costs, and slowing progress. This can make it or break it for any ongoing sprint or project, especially when dealing with white-label eSIM platforms.

The only solution? Good knowledge sources that cover the basics and digest the complex. That’s why, using our experience at esimba.ai, we’ll discuss API integration, examine all associated costs and best practices, and provide a general process overview.

For Developers: How eSIM APIs Actually Work

If you’ve already worked with APIs, then the model is the same. An eSIM API sits between your app and your carrier’s provisioning infrastructure. You call it, it handles all the telecom complexity, and you get back a data plan, an activation code, or a status update. 

All eSIMs currently operate on the GSMA SGP.22 standard. It defines and regulates how eSIM profiles get securely delivered to the embedded chip. You won’t have to apply it in practice, as it’s your carrier’s responsibility. It should be more than enough to memorize the underlying principle: after scanning a QR code or activating the eSIM, the profile is downloaded from the carrier’s server and moves through their infrastructure to the device's eUICC (the chip).

Additionally, to prevent server overload and malicious bot attacks, eSIM APIs have a rate limit. Any developer tasked with implementation should keep this in mind and try to use caching to avoid issues. For reference, at esimba.ai, we keep ours at 60 requests.

API Command Overview

Most eSIM APIs are REST-based and have a similar set of capabilities. The most noteworthy ones include:  

  • Bundle catalog. Query available data plans by country, region, or duration. This is your product catalog if you're building a consumer app.
  • Order placement. Assign a specific plan to a device identifier (ICCID). This is the transaction.
  • Activation code/QR code generation. The output your app delivers to the end user, which they scan or tap to install the profile on their device.
  • Status endpoints. Poll for profile state: ordered, delivered, installed, active, expired.
  • Webhooks. Event-driven notifications for the same states. Prefer these over polling; activation happens asynchronously on the device, and you don't control the timing.
  • Usage status. Used to retrieve data about remaining data, days, and other information. 
  • Balance. Get information about the current balance, top it up, or configure an autorefill. 

Use Cases

Depending on what you’re building, the integration process and capability utilization may look different. Here are a few examples: 

  • B2C (Business-to-Consumer) travel app: A user selects a bundle, your backend places an order, and the API returns a QR code for the user to scan. Your job is to ensure the code is accessible quickly and handle cases where installation takes long. 
  • MVNO (Mobile Virtual Network Operator ) or reseller: You use the API to build a product on top of someone else’s infrastructure. You handle inventory, pricing, and end-user accounts. The surface area is the same, but you add in catalog management, margin tracking, and multi-tenant account structures. 

However, each case is unique to the business or team, and we encourage you to look through our API documentation to get a thorough understanding of what you need for implementation. 

How Much Does eSIM API Integration Cost?

This cost depends on the situation. For example, at esimba.ai, we only charge for developer time if you actually need our team for implementation, and the cost is variable. If you’re planning to do the integration yourself, you don’t have to pay anything extra beyond fulfilling our initial minimal balance requirements. 

But if we look more granularly, associated costs can be broken down into more than several groups. 

Main Cost Groups

Vendor and data costs come first. You have to account for:

  • Profile activation. Can run you for $0.05–$0.50 per eSIM, depending on volume, tier and provider. esimba.ai doesn’t charge its clients for activation.
  • Data bundles. Rates vary and heavily depend on the region. The same applies to margins, which tend to thin within the EU.
  • Minimum volume top-up. Some providers may request that you maintain a minimum data balance. The amount varies by provider, and if you want to inquire about ours at esimba.ai, contact us.

The next logical group is the development and integration costs. Hiring a mid-level developer in the US will cost $60–$120 per hour. eSIM REST API integration can take anywhere from 2-5 days, provided the documentation is in order. Subtract a day if the provider offers an SDK, and add two or three if the docs are sparse. You’re looking at roughly $960–$4,800.

Altogether, at the maximum range, the costs could amount to $5,300, excluding the bundle price. 

Other Cost Factors

If there are no webhooks, this means polling, which involves more API calls against your rate limit and an activation UX that’s harder to build well. And if there are undocumented error codes, you’ll have to debug or, more precisely, reverse-engineer behavior that should’ve been specified.

The solution involves additional engineering time, and if you’re unlucky enough to run into these two issues, you’re looking at anywhere from $720 to $3,840.

API Integration: Best Practices for eSIM Projects

Because the potential for additional costs is high, it’s best to build defensively. Let’s take our API as an example and look through the top four best integration practices. 

Secure Authentication Properly 

Many providers use keys, which is not optimal for security because they can serve as static access points for cybercriminals. However, you can protect your business from hacking attempts. For that purpose, esimba.ai uses a dual-credential system, where an API key paired with an accessToken is required on each entry HTTPS request. We also use webhook signature verification via HMAC-SHA256 for additional security. 

Remember About Asynchronous Activation

The most common developer mistake is forgetting about asynchronous eSIM profile activation. It usually takes seconds, but, depending on the provider-side situation, it can get up to 15 minutes. 

A good solution is to build a proper state machine from the beginning. esimba.ai surfaces three line states out of the box: Registered, Activated, and Deactivated. The changes are pushed through simcard.status.changed webhook event in real time. That means you don't need to poll for activation confirmation; you subscribe to the event and let the platform push the transition to you. For providers that don't support webhooks, polling with exponential backoff is your only option. 

Handle Errors at Your Layer

We use standard HTTP status codes throughout (200, 401, 403, 404, etc.), which allows for a cleaner error taxonomy. Even so, your application shouldn't be surfacing raw vendor responses to users or to your monitoring systems. Map vendor codes to your own internal error taxonomy early in the build. This insulates your application from vendor-side changes and makes debugging significantly faster. 

Treat the Bundle Catalog as a Live Data Source

eSIM bundle catalogues aren’t static: carrier agreements change, and so does the list of available operators. We planned for this at esimba.ai, and bundle.added and bundle.removed webhook events notify you in real time when plans are added to or removed from the platform. Other providers are doing the same, but just in case,  set a TTL on your catalog cache and treat webhook events as authoritative signals. 

If you plan to partner with esimba.ai, the last tip is to use /line/{iccid}/available_refills rather than deriving refill options from the bundle catalog directly. It's faster and specific to the line in question.  

Skip the Infrastructure. Launch Faster.

API Integration: Best Testing/Staging Practices for eSIM Projects

Integrating without testing is suboptimal, to say the least. eSIMs have real costs, and you pay for profiles, sometimes even activation charges, and leave end-users without connectivity. 

Set Up a Staging Environment 

Not all eSIM API providers have a dedicated testing environment. If that’s the case, it’s not a big issue, and you can treat a small pool of lines as your sandbox. Purchase a handful of the cheapest available bundles specifically for testing, document which ICCIDs are reserved for that purpose, and account for their cost upfront in your integration budget. 

For webhook testing, use a tool like ngrok or Webhook.site during development to expose a local endpoint and capture real webhook payloads. 

Organize Testing Layers

Another good practice is to do your testing in three layers:

  • Unit. Authentication header generation, error code mapping logic, bundle catalog parsing, and filtering.
  • Integration. Full order-to-activation sequence, webhook signature verification, retry behavior under simulated failures, idempotency on order placement, and both sync (/line/create) and async (/line/create_async) paths.
  • Contract. Snapshot response schemas on critical endpoints and alert on unexpected changes; field renames and new required parameters ship without warning more often than you'd expect.

All this allows for independent testing and catching breaking API changes before users do. 

Simulate Edge Cases

A few failure modes worth mocking explicitly:

  • A profile that takes 10–15 minutes to activate. Confirm your polling fallback works and that the UX doesn't strand users in a loading state with no timeout.
  • A bundle.removed event against a plan your test user is actively on. Verify the catalog UI degrades gracefully rather than displaying something that can no longer be purchased.
  •  A rate limit response. Confirm your retry logic handles a 429 with backoff rather than surfacing a raw error to the user.

Process Overview: From Vendor Selection to Integration

If you’re already planning an API integration and partnering with a provider, consider your approach. You can follow these steps:

  1. Define your use case. A travel app and a reseller platform have very few things in common, and you need to get specific before committing. 
  2. Shortlist vendors. Consider the scope, documentation depth, webhook support, and how they handle breaking changes.
  3. Model costs. Get wholesale quotes and try to run unit economics while factoring in minimum volume commitments and other similar things.
  4. Prototype before committing. Build auth, one bundle query, and one order placement against your chosen provider. 
  5. Design the activation state machine. Map every state and transition before writing production code. 
  6. Build core integration. Authentication, bundle catalog, order placement, activation status, and webhook listener. Keep the eSIM API calls server-side; never expose credentials to the client. 
  7. Stage and validate. Reserve test lines, verify webhook signatures, confirm idempotency, and simulate edge cases.
  8. Monitor from day one. Activation success rate and webhook delivery rate are your two primary health signals. Set alerts on both before launch. 

Choosing esimba.ai as Your Provider

We’ve referenced our API throughout the blog, and for a reason. Measured against the evaluation criteria that actually matter for a developer building on top of an eSIM API, it holds up well across the board. 

The API is clean REST, thoroughly documented, and covers the full integration surface: bundle catalog, line creation, activation status, refills, auto-refill, and webhook events for every meaningful state change. For resellers and app developers, the minimum top-up balance requirement to access the API is a low barrier relative to what comparable platforms demand, and it goes directly toward usable inventory rather than a platform fee.

If a partnership sounds interesting to you, you can reach out to us today for pricing and coverage. Our sales team will outline the integration process and help you start your journey to high-quality connectivity.

Ready for the next step?

Contact us today to learn more about our eSIM API integration solution.

Read more