FAQ
The net price is provided as “net_price” in every order or package-related endpoint.
This refers to the wholesale price that you will be charged for each transaction and are required to pay.
:::warning[]
Keep in mind, the prices in the Sandbox and the Production are different.
:::
The packages offered in the sandbox environment are specifically designed for testing and development purposes. They are not replicas of the packages available in the production environment.
Due to testing and development, the set of packages and their associated prices may differ between sandbox and production environments. These variations are intended to facilitate testing and experimentation without affecting live production data.
| Code | Language |
| --- | --- |
|ar| Arabic|
|zh| Chinese|
|cs| Czech|
|nl| Dutch|
|en| English|
|fr| French|
|ka| Georgian|
|de| German|
|el| Greek|
|he| Hebrew|
|hi| Hindi|
|it| Italian|
|ja| Japanese|
|ko| Korean|
|pl| Polish|
|pt| Portuguese|
|ru| Russian|
|tl| Tagalog|
|th| Thai|
|tr| Turkish|
|uk| Ukrainian|
|zh-CN| Chinese (Simplified)|
|pt-BR| Portuguese (Brazil)|
|es-419| Spanish (Latin America)|
|hy-AM| Armenian|
|zh-TW| Chinese (Traditional)|
|vls-BE| Vlaams|
|pt-PT| Portuguese (Portugal)|
|sr-CS| Serbian (Cyrillic)|
|es-ES| Spanish (Spain)|
|sv-SE| Swedish|
|ur-PK| Urdu|
|fil| Filipino|
|sq| Albanian|
|az| Azerbaijani|
|bg| Bulgarian|
|hr| Croatian|
|da| Danish|
|et| Estonian|
|fi| Finnish|
|hun| Hungarian|
|kmr| Kurdish|
|ky| Kyrgyz|
|lv| Latvian|
|lt| Lithuanian|
|mk| Macedonian|
|ms| Malay|
|nb| Norwegian|
|ro| Romanian|
|sk| Slovak|
|uz| Uzbek|
|vi| Vietnamese|
What country code format is required for filtering?
The Get Packages API requires the use of the cc2
code for filtering by country. The cc2
code is a two-letter country code based on the ISO 3166 standard.
Can I retrieve packages without specifying a country code?
Yes, if you do not specify a country code in the filter as part of your request, the Get Packages API will return packages available in all countries.
With the introduction of universal links by Apple, users with iOS 17.4 or higher can directly install eSIMs using a special URL. The URL can be provided to your users if they are using iOS version 17.4 or above.
The following endpoints will now return a new universal link for the eSIM:
- Submit Order
- Get Installation Instructions
- Get eSIM
- Get eSIM List
You can find the latest pricing details in the price list on the Partner Platform. If you have any further questions, please do not hesitate to contact your Airalo Account Manager.
The complete workflow for buying a top-up package:
- GET https://sandbox-partners-api.airalo.com/v2/sims to see the list of purchased eSIMs.
- GET https://sandbox-partners-api.airalo.com/v2/sims/:iccid/topups to see the list of available top-ups for the eSIMs.
- POST https://sandbox-partners-api.airalo.com/v2/orders/topups with the proper "iccid" and "package_id" values to purchase a top-up.
- GET https://sandbox-partners-api.airalo.com/v2/sims/:iccid/packages to see the list of all packages for the eSIM, including the original package and top-ups.
Learn more
The net price is provided as “net_price” in every order or package-related endpoint: GET packages, GET order, POST order, POST topup, and GET order list. This refers to the wholesale price that you will be charged for each transaction and are required to pay.
We have updated our API documentation to reflect our plans to deprecate the Airalo Partners V1 API. This change is due to new partners using the V1 endpoint despite the availability of V2. New partners should integrate with the V2 API.
We are committed to keeping you informed and will communicate the rollout plan for V1 deprecation in due course, so there will be enough time for you to transition to V2.
We want to reassure you that the transition from V1 to V2 carries a low risk. The core structure remains unchanged in V2, providing backward compatibility for most partners. The primary advantage of V2 is its flexibility to extend responses with new attributes, accommodating the continuous addition of new features.
For your planning purposes, we suggest that you begin the transition to V2. This can be achieved by updating the URLs to V2 and conducting end-to-end testing to ensure a smooth changeover.
For a more consistent experience and stable connection, we may recommend that users disable automatic network selection and manually connect to a supported network.
- In our API (Get Package) response, check the property for an operator entity — look for the
is_prepaid
property.
is_prepaid
- If it is set to
true
, it means Airalo is not integrated with the operator and cannot provide usage information about the eSIM package.
true
Here is a sample code below that generates QR code by using the QRCodeJS javascript library:
"qrcode": "LPA:1$lpa.airalo.com$TEST"
Or, you can just show this image to the user instead of the link:
"qrcode_url": "https://sandbox.airalo.com/qr?expires=1779274637&id=61038&signature=022cf8ed01dcba6659c91935f1550be000d2605cbb2af5a6ae34888106127262",
Here is sample code to generate a QR code on Partner website directly:
<script src="https://cdn.rawgit.com/davidshimjs/qrcodejs/gh-pages/qrcode.min.js"></script>
<script type="text/javascript">
function generateQRCode() {
let qrcodeContainer = document.getElementById("qrcode");
qrcodeContainer.innerHTML = "";
//use the value of "qrcode" attribute from API here
let qrCodeText = "LPA:1$wbg.prod.ondemandconnectivity.com$AE67HKJ0W6F651HH";
new QRCode(qrcodeContainer, qrCodeText);
document.getElementById("qrcode-container").style.display = "block";
};
</script>
<body onload="generateQRCode()">
<h1>QR Code using qrcodejs</h1>
<div id="qrcode-container">
<div id="qrcode" class="qrcode"></div>
</div>
</body>
When users run out of call minutes but still has remaining data or texts, they will need to purchase a top-up that includes additional data, call minutes, and SMS to add more call minutes. Please refer to the "TOP-UP" section below for more information.
If users are on a call when their call minutes run out, they will be disconnected immediately.
Notifications are only sent for the remaining data in a package. Webhook or email notifications regarding the depletion of call minutes or SMS are not available.
You can view the available package types below:
Plan type | Details |
---|---|
Data Only | This plan type only supports data service. The eSIM doesn’t come with a phone number. |
Data, Calls | This plan type supports data and call services. The eSIM comes with a phone number. |
Data, Calls, & Text | This plan type supports data, call, and text services. The eSIM comes with a phone number. |
Data & Incoming Calls | This plan type supports data and callservices. The eSIM comes with a phone number. |
Case | Answer |
---|---|
Incoming calls | They do consume the minute allowance. |
If the user has no remaining minutes | If the users have 0 remaining minutes, they can't receive calls anymore. |
If the user has no remaining SMS | The user can receive SMS. |
TOP-UP
For eSIM packages with data, calls, and texts, you can only purchase top-ups that include all three. A top-up for just data, calls, or SMS is not available.
Similarly, you can’t top up a data-only eSIM with a package that contains data, calls, and texts.
Top-up usage
The options (data, calls, or texts) in the top-up will be consumed automatically to supplement the consumed options on the eSIM package.
Scenario:
- The user has an eSIM with 100 MB, 100 Mins, 100 SMS
eSIM | Total | ||
---|---|---|---|
MB | 100 | 100 | |
Mins | 100 | 100 | |
SMS | 100 | 100 |
- The user consumed all 100 Mins
- New status total: 100 MB, 0 Mins, 100 SMS
eSIM | Total | ||
---|---|---|---|
MB | 100 | 100 | |
Mins | 0 | 100 | |
SMS | 100 | 100 |
- User purchases a top-up with 50 MB, 50 Mins, 50 SMS
- The options add up. MB will be consumed from the eSIM while Mins from the top-up
- User sees a total of 150 MB, 50 Mins, 150 SMS
eSIM | Top-up | Total | |
---|---|---|---|
MB | 100 | 50 | 150 |
Mins | 0 | 50 | 50 |
SMS | 100 | 50 | 150 |
- User consumes 50 MB
- The MB will be consumed from the eSIM
- User sees a total of 100 MB, 50 Mins, 150 SMS
eSIM | Top-up | Total | |
---|---|---|---|
MB | 50 | 50 | 100 |
Mins | 0 | 50 | 50 |
SMS | 100 | 50 | 150 |
You can also use it to filter your order by the Get Order List endpoint – filter for the customer ID or partner order reference, if you have provided it during the submission process.
Here is the documentation of the Get Order List:
Description: Optional. A string to filter orders by their description. This performs a like search using the format '%DESCRIPTION%'."
Go to the partner documentation site for more information on the Submit Order endpoint.
- “Couldn’t activate service” – This error is occasionally occurs for Android users. It may result from various issues, such as a corrupted profile, partial download, invalid QR code, or a previously installed eSIM. In these cases, our standard procedure involves replacing the eSIM for affected users to resolve the issue.
- Unsupported device – If users’ devices do not support eSIM, they will encounter an error during installation. It’s crucial to inform users about supported devices to prevent them from purchasing eSIMs for incompatible devices.
- No internet connection during installation – eSIM installation requires an internet connection. If users attempt to install without internet access, they will encounter an error. Users should be informed about this requirement to ensure a successful installation.
- Attempted installation on multiple devices – eSIMs can only be installed on one device. If users attempt to install an eSIM on other devices after it has already been installed, they will encounter an error. Once installed, eSIMs cannot be transferred to another device.
If you encounter any of these errors during eSIM activation, please reach out to our support team for assistance, and we’ll guide you through the necessary steps to resolve the issue.
Direct installation for iOS:
- Direct installation for iOS is now fully supported through Apple Universal Links. For more details on how to use this feature, please refer to https://airalopartners.zendesk.com/hc/en-us/articles/20908409861917-How-can-I-use-universal-links-to-support-direct-installation-on-iOS
Direct installation for Android:
- The Android app has a unique signature/ID, which needs to be incorporated into eSIM profiles for direct installation.
- Custom eSIM profiles and our network provider’s infrastructure do not support this feature, primarily due to security reasons.
Get Data Usage and Get Package History endpoints come with a rate limit: you can pull specific eSIM history info once every 15 minutes.
If you send another request too soon, the server responds with a 429 HTTP code. Please check the “Retry-After” header, this will tell you how long to wait before the rate limit resets and you can fetch fresh info.
Please, use a caching mechanism on the client side to deal with frequent customer requests.
You can get data usage for an eSIM up to 96 times per 24 hours.
In most cases, there is no specified time period required to activate an eSIM. Your users can activate the eSIM at any time as long as there have not been any network provider changes or network blocking. If these changes take place, they will be communicated to the you via email.
Please note that some eSIMs do required activation within a specific time — generally within 90 days of purchase. This is a newer requirement from network providers due to regulations surrounding MSISDN usage.
Additionally, some eSIMs activate at the time of installation, such as the dtac eSIM for Thailand.
You have an option to refer to user/customer as part of the submit order process. Any combination of customer_id, user_id, partner’s order_id can be included in the description field.
Airalo stores these together with order details — you can search for these in your orders.
See documentation of the Submit order endpoint for more information.
You can store eSIM packages, but it's important to note that these packages are not a fixed set of products and may vary over time.
To accommodate for flexibility, we have implemented an API endpoint that offers a list of packages along with filtering capabilities. This allows you to efficiently manage and access the relevant eSIM packages.
In case you store and cache the products:
- We advise you synchronize the list of available packages via the Get Packages endpoint periodically — at least once per day, but recommended at least once per hour.
- If you attempt to submit orders for non-existing packages, the Submit Order endpoint will respond by indicating that the requested package is not available. Depending on how your flow is implemented, this may result in required refunds.
If you encounter a timeout error during eSIM creation, it means the order has not been processed and there will be no order record in our database or on the Partner Platform.
To address this issue, please place the order again. We recommend placing an order with a reduced quantity to mitigate the risk of another timeout.
Note, we do not have the full set of packages in Sandbox as in Production. As a result, it is possible you will not find a country in sandbox that will be in PROD.
Yes, our Partner API is compatible with WordPress.
Some of our partners who use WordPress sites have combined WordPress with WooCommerce
You can use the Get Usage endpoint, only available in the sandbox environment. This endpoint will reduce the data available by 100 MB for each call, so it simulates your user’s usage.
The SM-DP+ Address and activation code can be found in the response of the Submit Order endpoint, but are also available at the Get eSIM and Get Order endpoints.
No, the packages and the prices differ in the sandbox and production environments. The packages created in the sandbox are for testing and development purposes, only.
We do support Woocommerce with plugin, and the team is working on the Shopify integration.
No, it is not possible to customize the SPN.
In most instances, the Airalo Partner API allows for a complete white-label experience.
Some eSIM providers, however, might display “Airalo” as the Service Provider Network (SPN) when an eSIM has been installed.
This depends on how many times an eSIM has been reinstalled.
Most eSIMs can be reinstalled up to 3 times. Notable exceptions to this are eSIMs for Chile, Argentina, and those that require eKYC.
The activation policy s provided in the Get Package endpoint — operator.activation_policy provides this information (typically displayed as "first-usage” or “installation”).
First usage applies when the eSIM is connected to any supported network. Please keep this in mind for regional or global packages.
Installation applies to the few eSIM packages that are activated at the time when the eSIM is installed. Please inform your customer when this is the case.
In some instances, the APN needs to be set up manually. In other instances, this is done automatically — this depends on the operator and corresponding eSIM package. You can find this information by using the the Get Packages endpoint.
Get Packages V1
The two attributes “apn_type” and “apn_value” in the response provide this information so you can advise your users, as necessary.
Get Packages V2
Our updated version provides extended support and OS-specific information. In many cases, APN settings are automatic for iOS devices while requiring manual setup on Android devices.
Yes, the Discover+ package provides services such as data, texting, and phone numbers, so authentication can be done using the phone number received through eSIM.
Depending on the device, however, you may receive an error message during registration.
To resolve this, additional steps may be needed, such as using a VPN during registration to match the country of the phone number and the IP address.
You can use the filter="global" to receive both regional and global packages.
Once the filter is applied, you have two options:
- Use the slug.
- Use the covered countries.
While either option works, country coverage is often more reliable.
If you want to test the entire flow, from purchase to activation, you can place test orders in the production environment once you’ve finished development and internal testing. Make 1-2 test orders using your production credentials before enabling the production app for your end users.
These test orders can be refunded — just open a support ticket and cite “testing” as the reason for your refund request.
Before you can cancel an order, you’ll need to manually check whether the conditions of the cancelation policy have been met.
We always recommend checking all the requirements with the client. To reduce canceled orders, check your user’s device compatibility by calling the submit order endpoint after the payment is collected from the client.
In the event you need to cancel an order, you’ll need to submit a ticket with our support team via email (partner.support@airalo.com) and provide the list of ICCIDs and the cancellation reason
How to set up a brand for eSIM Sharing
We’ve enabled custom branding to highlight your own brand while sharing eSIMs. This can be set up by creating a brand in the Partner Platform. The brand settings play a crucial role in customizing the experience across various components of eSIMs, the Partner Platform, emails, and PDFs. Here's how they are used in each area:
- eSIMs Cloud: Brand settings personalize the eSIM details display, incorporating logos and colors in the user interface. This ensures consistent brand representation when customers interact with the eSIM service.
- Partner Platform: Brand settings customize eSIM QR codes, reflecting your own brand by showcasing your logo.
- eSIM Emails: Brand settings influence the appearance of emails sent to customers. They ensure that email templates carry your branding (logo, colors, etc.) and contain the eSIM cloud link, creating a consistent look and feel in communications.
- eSIM PDFs: Brand settings apply to generated PDF documents, incorporating logos and support contact details.
How do I access brand settings?
Once you have the necessary permissions, you can access the Brand Settings page. Click on your username in the top right corner. The Company Settings should contain a Brand Settings tab.
How do I create a new brand?
- Enter the brand name. The system will automatically suggest a unique brand alias, with a validation check to ensure it’s not already in use.
- You’ll also see the eSIMs Cloud URL and email associated with the brand.
- The brand setting name serves as an internal identifier for brand settings within the system. This parameter will be used to assign a brand via the API.
Add the visual elements for brand styling, including your brand logo, icon, hero image, and brand color.
In the Customer Support Details section, include your support email and optional phone number.
Brand eSIM settings allow you to manage the visibility of eSIM details. Once it’s:
- Enabled - users can check the eSIM usage and details.
- Disabled - only the installation instructions are visible, with basic eSIM Information.
As you change these settings, the preview section updates in real-time, previewing the branded PDF and other changes.
What do the brand settings affect?
Based on the brand settings, other parts of our products can be affected. The table below shares the details of those connections.
Input | Affects → | QR Code | eSIM PDF | eSIMs Cloud | Share eSIM Emails |
---|---|---|---|---|---|
Brand name | N/A | N/A | Name of the Web Tab | Sender name | |
Brand alias | N/A | N/A | URL → https://esims.cloud/{brand_alias}/{eSIM_id} | Sender email → {brand_alias}@esims.cloud | |
Brand setting name | N/A | N/A | N/A | N/A | |
Brand logo | N/A | It’s visible on the top of the PDF | Visible on the top of the Page | N/A | |
Brand icon | Visible in the center of the QR Code | Visible in the QR codes | Visible in the Browser’s Tab Favicon Visible in QR Codes | N/A | |
Hero image | N/A | N/A | Visible in Contact us Page | Visible on the top of a Branded Email |
Once the brand is created, how do I assign the brand through API?
When submitting an order, the brand can be specified by adding the "brand_settings_name" value. It also can be done at a later stage by updating the assigned brand. This ensures that the eSIM will reflect the selected brand’s settings, such as logos and color schemes.
All the details about retrieving branded eSIM information are outlined in How to get the eSIM Sharing Link through API.
Can I use the eSIM Sharing Link without creating a brand?
Yes, you can. If neither method is used to specify branding, the eSIM will be unbranded by default. This means it won’t include any partner-specific branding for sharing, and users won’t see Contact Us details. All of the other functionalities will still work.
It is a link to the eSIMs Cloud platform, which securely shares all of the information that is needed for using an eSIM. It supports:
- Multi-language capabilities, including installation and activation instructions
- Direct installation link (for devices with iOS 17.4+)
- Custom brand styling (branded QR codes and eSIMs Cloud pages)
- eSIM information (current eSIM usage, technical details, supported countries and networks, and package history)
- Contact Us page (only if a brand has been set up)
You can learn how eSIMs Cloud Sharing Links work here.
You can set up your brand settings directly in the Partner Platform. Instructions are available here (@Piotr Dzieciol - this link should navigate to the “How to set up a Brand in the Partner Platform” FAQ).
How do I get the Cloud link and access code for an eSIM?
A) “Submit Order” Endpoint
Every time you make a successful “Submit Order” call, the “Sharing“ data model is returned by default. It contains the eSIMs Cloud Link and Access code that can be shared with the End users right away.
- If a brand setting is set, the eSIMs Cloud link will show the branded version of eSIMs Cloud:
"sharing": {
"link": "https://esims.cloud/test-brand/jgxtu-pvk2fmh4",
"access_code": "4436"
},
- If no brand settings are set, the eSIMs Cloud link will show the unbranded version of eSIMs Cloud:
"sharing": {
"link": "https://esims.cloud/he4qy-kqc8u68t",
"access_code": "8319"
},
B) “Get eSIM” Endpoint
The eSIMs Cloud link and access code can be retrieved at any time by calling the “Get eSIM” endpoint using the eSIM's ICCID. The “Sharing“ data model is returned by default.
- If a brand setting is set, the eSIMs Cloud link will show the branded version of eSIMs Cloud:
"sharing": {
"link": "https://esims.cloud/test-brand/jgxtu-pvk2fmh4",
"access_code": "4436"
},
- If no brand settings are set, the eSIMs Cloud link will show the unbranded version of eSIMs Cloud:
"sharing": {
"link": "https://esims.cloud/he4qy-kqc8u68t",
"access_code": "8319"
},
Are the sharing link and access code always available?
Yes, the sharing link and access code are always available in the “Submit Order” and “Get eSIM” request response. This applies regardless of whether the eSIM is branded or unbranded.
How will my Customers use the link and the Access Code?
They just need to open the link and enter the access code. After that, they will be able to view all the eSIM details, including:
- Package, country, region, name & data usage
- Package details: validity period
- ICCID number, network, and phone number (if applicable)
- eSIM Instructions: Direct, QR code, and manual installation details for several devices
- Support email and phone number are available on the Contact Us page
- Customers can change the language on the Menu page
How do I assign a brand for an eSIM order?
Set up your brand by specifying the brand name. If you haven’t set up a brand in the Partner Platform yet, please refer to the article “How to set up a brand in the Partner Platform” (link goes here).
Include this name (brand settings name) in your order submission to link it to your brand. The brand_settings_name parameter is optional in The Submit Order Request:
"brand_settings_name": "Test Brand"
You can update the brand for a specific eSIM using the following endpoint:
PUT: /v2/sims/:sim_iccid/brand
- This endpoint allows you to modify the brand settings associated with a particular eSIM in the Airalo Partners API using the eSIM’s ICCID and the “brand setting name”.
- The selected brand will be displayed when sharing links or emails.
- To create an unbranded order, simply submit it without specifying a brand — set brand as a null value. You can still access the eSIM information and share the link using the ICCID.