zendit developers Logo
Search zendit documentation
Menu

zendit eSIM

Zendit eSIMs provide roaming data connectivity for the travel market on eSIM capable devices. eSIMs are available for a specific destination country or for a destination region.

eSIM

Zendit eSIMs provide data roaming on mobile devices in over 150 countries.  

About the product

Zendit eSIMs provide roaming data connectivity for the travel market on eSIM capable devices. eSIMs are available for a specific destination country or for a destination region.

Plans are available in many configurations and come in multiple subtypes from single country with a fixed amount of data and duration to regional and global plans with unlimited data.

You can find the list of known devices that support eSIMs in the Zendit User’s Guide.

Product Catalog

The product catalog of eSIMs use the /esim endpoints. You can filter the catalog by region, country or a subtype. Subtypes categorize the eSIMs into several varieties based on features.

Products can be searched with any combination of filters for regions, destination country, and subtype.

About Subtypes

A product subtype is a categorization of the product. There are subtypes that allow you to build an experience of providing the products in categories on your implementation. New subtypes may be introduced over time to distinguish the category of product. The current list of subtypes includes:

  • Standard
  • Fast
  • Faster
  • Fastest

Standard products provide up to 5G data (where available) for a fixed amount of data and a fixed duration of time. Once the data cap has been reached, the eSIM plan will be considered exhausted. If the plan has elapsed it’s duration but not all the data has been used, the plan is considered expired and any remaining data will be forfeit.

Fast products provide 1 GB of high speed data per 24 hour period and then unlimited throttled data at 512kbps. Fast products are sold for a duration of days and each day of the plan the high speed data amount will reset to 1 GB and then throttle once high speed has been exhausted.

Faster products provide 1 GB of high speed data per 24 hour period and then unlimited throttled data at 1.25mbps. Fast products are sold for a duration of days and each day of the plan the high speed data amount will reset to 1 GB and then throttle once high speed has been exhausted.

Fastest products provide 2 GB of high speed data per 24 hour period and then unlimited throttled data at 2 mbps. Fast products are sold for a duration of days and each day of the plan the high speed data amount will reset to 2 GB and then throttle once high speed has been exhausted.

Using these values on the subtype filter will expose products in these categories when searching the catalog.

About eSIM Destinations

Zendit eSIMs are available in 2 types: Regional and Destination Country without Roaming.

Regional eSIM

eSIMs are available to support roaming within a specific region. There is a Global regional eSIM available for roaming in most countries in the world. Additionally there are eSIMs available for Europe, Central America (Latin America includes part of South America), Africa, Asia, Middle East, North America and Oceania.

Regional eSIMs contain an array of countries for roaming with the available data speeds on networks within the countries. This information is available through the catalog endpoints for retrieving offers.

To see the list of regions for eSIMs, visit the catalog topic.

Destination Country with No Roaming eSIM

eSIMs are available for a specific destination country. These eSIMs are only supported in the destination country and do not support roaming. For example, an eSIM for Mexico will only work in Mexico and will not operate in Guatemala.

Working with the Catalog

The catalog can be queried for a list of items using the filters or a specific item. The format of an eSIM product on a client who has setup their wallet in USD is as follows:

{
      "enabled": true,
      "offerId": "ESIM-US-15D-2GB-NOROAM",
      "regions": [
        "North America"
      ],
      "country": "US",
      "brand": "eSIM",
      "brandName": "eSIM",
      "productType": "ESIM",
      "subTypes": [
        "Standard"
      ],
      "notes": "eSIM United States of America (the) No Roaming",
      "shortNotes": "eSIM 15 Days, 2 GB",
      "priceType": "FIXED",
      "price": {
        "currency": "USD",
        "fixed": 450,
        "suggestedFixed": 450,
        "margin": 0.2667
      },
      "cost": {
        "currency": "USD",
        "fixed": 330
      },
      "durationDays": 15,
      "dataGB": 2,
      "dataUnlimited": false,
      "smsNumber": 0,
      "smsUnlimited": false,
      "voiceMinutes": 0,
      "voiceUnlimited": false,
      "dataSpeeds": [],
      "roaming": [],
      "createdAt": "2025-02-17T05:51:58.829Z",
      "updatedAt": "2025-02-20T00:00:00Z"
    }

From the example you can see this product is for a single country (US) that delivers 2 GB for 15 days.

The cost is $3.30 and the price to charge a customer for the product is $4.50. The price can be customized in the catalog console to set the price to charge a customer as desired. When selling the product, $3.30 will be deducted from the zendit wallet to fulfill the eSIM.

Processing Transactions

When processing a transaction, ensure that you are supplying all values required for the transaction, this includes the unique transaction ID that you send, the ID of the offer, and optionally the ICCID of an existing eSIM that has been sold through your account on zendit to top up with an additional plan.

The format for sending a transaction to issue a new eSIM with a plan takes the following form:

{
  "offerId": "string",
  "transactionId": "string"
}

To top up an eSIM with a new plan use the following format to send the transaction:

{
  "iccid": "string",
  "offerId": "string",
  "transactionId": "string"
}

eSIM Transaction Receipt

A successful transaction will produce a receipt with the following format:

  "confirmation": {
    "activationCode": "string",
    "externalReferenceId": "string",
    "iccid": "string",
    "redemptionInstructions": "string",
    "smdpAddress": "string"
  },

The values in this receipt can be given to the customer for manual install, used to build a QR Code and on iOS devices an Apple link to provide to the user to install the eSIM.

The values are as follows:

  • activationCode: a code required for activation on some eSIMs. Current eSIMs on zendit do not require the activation code at this time
  • externalReferenceId: the matching ID for the eSIM when installing it,
  • iccid: The iccid of the eSIM. This is a unique value that identifies a specific eSIM and can be used to add additional plans to an existing eSIM
  • redemptionInstructions: A link to the zendit developer’s site containing instructions to redeem. The content for installing the eSIM on a device should be provided in your integration and may copy the content to your application or website or provide the white label PDF file contained on the linked page.
  • smdpAdress: the SMDP+ URL used for activating the eSIM in combination with the externalReferenceId (matching ID)

About Issuing Multiple Plans

An eSIM may contain up to 30 plans simultaneously. When the plan is issued and the eSIM is installed, the plan will remain in a queued status until the user has attached to a mobile network in the location for the plan.

Not all eSIMs are compatible with all plans. eSIMs use multiple upstream providers to issue and the general rule is that each eSIM is issued for a region and are only compatible with plans for the same region. As an example, an eSIM issued with a US plan is compatible with an additional plan for Canada, but is not compatible with plans for European countries like Germany. A single North American eSIM can stack plans for North America regional plans as well as individual plans for Canada, US and Mexico. An eSIM issued in Japan would be compatible with plans issued in the Asian region but not other parts of the world.

In the case that a plan is incompatible with the existing eSIM, you may inform the customer that they need an additional eSIM for the plan they have selected and retry the transaction without the iccid to issue a new eSIM for the plan.

In the case of Global region eSIM plans, the eSIM is only compatible with additional plans for Global as a region.

Webhook

eSIM has a webhook available for receiving the status of the transaction. The webhook format is identical to the format of polling the transaction by ID on the eSIM endpoints for status and will have the following format:

For more information on setting up Webhooks in Zendit, see the Webhooks documentation.

QR Code generation

Zendit provides an endpoint to retrieve the QR code on the API. Optionally, eSIMs can be generated by the client using their QR generator of choice. To create the eSIM the following format must be encoded into the eSIM:

LPA:1$smdpAddress$matchingID

The SMDP+ Address is an url to retrieve from the transaction in the smdpAddress field and the matching ID is in the externalReferenceId field. Both fields can be found in the confirmation section of the transaction.

Note for Test Mode transactions, QR Codes from the API are dummy QR codes.

Apple iOS Install Link

Starting with iOS 17.4 Apple has provided a universal link service to install an eSIM on an iOS device. The link takes the place of a QR code and can be triggered directly on the iPhone by clicking the link. This link takes the form:

https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=LPA:1$smdpAddress$matchingID

This link can be created for iOS users by using the smdpAddress on the receipt and the exteranlReferenceId as the matchingID.

eSIM Activation

An eSIM will become active the first time the user turns on data roaming with the eSIM and it successfully connects to the cellular network. An eSIM can be purchased and installed on the user’s device without being activated until a later date. Once the purchased offer has been activated and either the data limit or duration of the offer is reached, the eSIM will no longer have a valid plan. Currently the eSIM will not be reloadable and if the customer purchases another offer, they will receive a new ICCID. In a future release, Zendit will support reloading an eSIM issued by Zendit so the user can retain the eSIM. When this feature is rolled out, an eSIM without a remaining offer will be expired and no longer reloadable after 12 months of inactivity.

Tracking the ICCID of Customers

When users purchase eSIM products, to provide the user with information about how many days are left in their plan and how much data they have remaining, you’ll need to track the ICCID they are using to retrieve this data for them when the feature is available on Zendit.

An eSIM may be loaded with multiple plans based on customer needs. Keeping an inventory or user profile that your ICCIDs are assigned to will assist with locating the customer so their ICCID can be sent through when purchasing a plan instead of issuing a new eSIM each time a customer purchases a plan.

eSIM and Plan Expiration

eSIMs that remain unused for 12 months will be reclaimed. If the eSIM contains any plans, these plans will be forfeited by the purchaser. The eSIM must have activity on it every 12 months to remain active. Activities include:

  • Purchasing a Plan
  • Using a Plan

Each of these activities will reset the 12 month expiration countdown for the eSIM. Additionally, each eSIM may have up to 30 bundles queued on them simultaneously.

How Plans are Used

Plans are used in order of which plan will expire first. As an example a user with 2 7 day, 1 GB plans for the US would use the plans one after another. The first plan would be consumed until either the data is completely consumed or the plan expires. After that, the second plan would become active and would be consumed until it has either exhausted data or has expired.

In the case that a user has a 7 day, 1 GB US plan and a 30 day, 3 GB US plan, when the use attaches to the network in the US, the 7 day plan would be used first until it has expired or been exhausted. If the user is still in the US, the 30 day, 3 GB plan would become active and begin to be used first.

In the case of Regional Plans, they follow the same rules of usage by earliest expiration. Consider the scenario that a user has purchased a 30 day, 3 GB North America plan, a 7 day, 1 GB US plan and a 30 day, 3 GB US plan.

If the user arrives in the US, the 7 day, 1 GB US plan would begin being used since it would expire before the 30 day plans. If after 3 days, the user travels to Canada for 2 days, the 30 day, 3 GB North America plan would become active and used in Canada.

If the user then arrives back in the US 5 days into their usage, usage would resume on the 7 day, 1 GB plan until it is exhausted of data or expired. At this point the 30 day, 3 GB North America plan would be used (since it will expire before the 30 day US plan that has not yet been used) until the plan is exhausted of data or expired. If the user is still in the US the 30 day, 3GB US plan would begin being used.

eSIM Usage

The usage of an eSIM can be tracked through both the API and the through the user console in the eSIM usage section. All queued or active plans will be available. Queued plans are plans that have not been used by the customer yet. Active plans will have a start and end date based on the user’s first usage and will return the original amount of data that the plan was issued with as well as the remaining data. Only queued or active plans are available to view usage. Plans that have expired or all data has been consumed will no longer be available in the list of plans assigned to the eSIM.