Last active
October 17, 2024 23:52
-
-
Save empeje/bd0ca79cc719a9c734b9cf24e3e0f7a8 to your computer and use it in GitHub Desktop.
eSIM Go - v2.4 fix
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
openapi: 3.0.0 | |
info: | |
title: eSIM-GO API | |
version: 2.4.0 | |
servers: | |
- url: https://api.esim-go.com/v2.4 | |
description: eSIMGo API | |
components: | |
securitySchemes: | |
apikeyAuth: | |
type: apiKey | |
in: header | |
name: X-API-Key | |
security: | |
- apikeyAuth: [] | |
tags: | |
- name: Api | |
- name: Callback | |
- name: eSIMs | |
- name: eSIMs (Deprecated) | |
- name: Organisation | |
- name: Orders | |
- name: Inventory | |
- name: Catalogue | |
- name: networks | |
paths: | |
/: | |
get: | |
tags: | |
- API | |
summary: Get API details | |
description: Returns information about the available API endpoints. | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
- <string> | |
- <string> | |
/your-usage-callback-url/: | |
post: | |
tags: | |
- Callback | |
summary: eSIM Usage Callback | |
description: > | |
V3 of the Callback system is now available and provides additional data | |
as well as HMAC signature validation. | |
**This must be enabled in the eSIM Portal.** | |
V2 of the Callback system is still available by default, but will be | |
disabled in the future. | |
When data is used on an eSIM, a usage event can be sent to a URL defined | |
by you in the eSIM Portal. | |
The usage event will report the current bundle in use by an eSIM, and | |
it's remaining data. | |
Example of validating HMAC body in NodeJS: | |
```javascript | |
import crypto from "crypto"; | |
const signature = crypto | |
.createHmac("sha256", key) // key is your API Key | |
.update(body) // body is the raw (string) request body | |
.digest("base64"); | |
const matches = signature === signatureHeader; | |
``` | |
Validation uses your API Key as the HMAC key. | |
The body of the request is the raw (string) request body, and should not | |
be parsed as JSON before validation. | |
**Note:** Bundle names are case sensitive e.g. "esim_1GB_7D_IM_U". | |
**Request Body Notes:** | |
- The "try" button for this endpoint is **NOT** functional | |
- The schema defines an example message that is sent to the configured | |
callback URL. | |
- For more information on callback notification types, Please see the | |
[Notifications Page](/api/notifications#overview). | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
iccid: <string> | |
alertType: <string> | |
bundle: | |
id: <string> | |
reference: <string> | |
name: <string> | |
description: <string> | |
initialQuantity: <integer> | |
remainingQuantity: <integer> | |
startTime: <dateTime> | |
endTime: <dateTime> | |
unlimited: <boolean> | |
parameters: | |
- name: Content-Type | |
in: header | |
schema: | |
type: string | |
example: application/json | |
responses: | |
'200': | |
description: Successful response | |
content: | |
application/json: {} | |
/esims/apply: | |
post: | |
tags: | |
- eSIMs | |
summary: Apply Bundle to an eSIM | |
description: > | |
This endpoint enables you to receive a new eSIM with the specified | |
Bundle pre-applied. | |
**Usage:** | |
* Either provide Bundle or Bundles. | |
* If an ICCID is provided as well as only a Bundle, the Bundle will be | |
applied to the eSIM for that ICCID. | |
* If no ICCID is provided, a new eSIM will be assigned to you, and the | |
Bundle applied. | |
* If no ICCID is provided, as well as only providing a Bundle, Repeat | |
can be provided to assign *Repeat* eSIMs to you with the Bundle applied. | |
* If Bundles is provided, seperate new eSIMs will be provided to you for | |
each bundle. | |
* The ICCID is always returned in the response. | |
* An ICCID cannot be provided in conjunction with the Repeat field. | |
* Bundle names are case sensitive and should be typed like the following | |
"esim_1GB_7D_IM_U". | |
**Notes:** | |
* In order to use this you must first have already purchased Bundles and | |
have them available in your inventory on your account. | |
* Bundle assignments to an eSIM are usually instant but please allow for | |
up to 10 minutes for the bundle to fully process. While the bundle is | |
processing the eSIM can be successfully installed and the eSIM will | |
register onto a network if within coverage. | |
* The Bundle Status can be checked through [Get the Status of a bundle | |
assigned to an | |
eSIM](https://docs.esim-go.com/api/#get-/esims/-iccid-/bundles/-name-) | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
iccid: <string> | |
bundle: <string> | |
bundles: | |
- <string> | |
- <string> | |
startTime: <string> | |
repeat: <integer> | |
allowReassign: <boolean> | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Content-Type | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
esims: | |
- iccid: <string> | |
status: <string> | |
- iccid: <string> | |
status: <string> | |
applyReference: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'503': | |
description: Service Unavailable | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims/qr/{reference}: | |
get: | |
tags: | |
- eSIMs (Deprecated) | |
summary: >- | |
Get QR codes for eSIMs from an Order or Bundle apply reference | |
(Deprecated) | |
description: > | |
Get multiple QR codes by providing an Order or Apply Reference. Returns | |
multiple QR codes as `.PNG` contained in a `.ZIP`. | |
Deprecated: See `/esims/assignments` | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/zip | |
- name: reference | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) Order Reference or Apply Reference | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/zip | |
content: | |
text/plain: | |
schema: | |
type: string | |
example: <zip> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims/csv/{reference}: | |
get: | |
tags: | |
- eSIMs (Deprecated) | |
summary: Get CSV containing eSIMs from an Order or Bundle apply (Deprecated) | |
description: | | |
Get eSIM SMDP+ details by providing an Order or Apply Reference. | |
Contains ICCID, SMDP+ address and Matching ID. | |
Deprecated: See `/esims/assignments` | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: text/csv | |
- name: additionalFields | |
in: query | |
schema: | |
type: string | |
example: appleInstallUrl | |
- name: reference | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) Order Reference or Apply Reference | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: text/csv | |
content: | |
text/plain: | |
schema: | |
type: string | |
example: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims/assignments: | |
get: | |
tags: | |
- eSIMs | |
summary: Get eSIM Install Details | |
description: > | |
Get eSIM SMDP+ details by providing an Order or Apply Reference. | |
Contains ICCID, SMDP+ address and Matching ID. | |
Multiple `reference`'s can be passed in using the query parameter. | |
Use the `Accept` header to control output format. Supported: `text/csv`, | |
`application/json`, `application/zip`. | |
Default return value is `text/csv`. | |
Using `application/zip` returns a ZIP file containing QR code images (in | |
PNG format). | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: reference | |
in: query | |
schema: | |
type: string | |
description: (Required) Order Reference or Apply Reference | |
example: <string> | |
- name: additionalFields | |
in: query | |
schema: | |
type: string | |
example: appleInstallUrl | |
responses: | |
'200': | |
description: OK | |
content: | |
text/plain: | |
schema: | |
type: string | |
example: '' | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims/{iccid}/history: | |
get: | |
tags: | |
- eSIMs | |
summary: Get eSIM history | |
description: | | |
Return the history of an eSIM. | |
Bundle Assignment States: | |
- **Processing:** | |
The bundle assignment is currently processing. | |
This is usually instant but can, on occasion, take up to 10 minutes to complete. | |
The eSIM can still be installed and will register on a network while the bundle is processing. | |
- **Queued:** | |
The bundle has been successfully assigned, has not been used yet, and is queued for use. | |
- **Active:** | |
The bundle has successfully been used. | |
It has data remaining and is within the bundle duration. | |
- **Depleted:** | |
The bundle has no data remaining but is still within the bundle duration. | |
- **Expired:** | |
The bundle has expired, and the bundle duration has been exceeded. | |
- **Revoked:** | |
The bundle has been revoked, and is no longer on the esim. | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: iccid | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) The ICCID of the eSIM | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
- name: <string> | |
bundle: <string> | |
date: <string> | |
bundleState: <string> | |
alertType: <string> | |
- name: <string> | |
bundle: <string> | |
date: <string> | |
bundleState: <string> | |
alertType: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims/{iccid}/refresh: | |
get: | |
tags: | |
- eSIMs | |
summary: Refresh eSIM | |
description: >- | |
This request is used to generate a cancel location request to the | |
network, note this disconnects the customer from the network and should | |
be used for troubleshooting purposes only, it should not be used to | |
cancel location in bulk | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: iccid | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) The ICCID of the eSIM | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'503': | |
description: Service Unavailable | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims/{iccid}/compatible/{bundle}: | |
get: | |
tags: | |
- eSIMs | |
summary: Check eSIM and Bundle Compatibility | |
description: >- | |
This request is used to check that a specific bundle is compatible with | |
an eSIM. | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: iccid | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) The ICCID of the eSIM | |
example: <string> | |
- name: bundle | |
in: path | |
schema: | |
type: string | |
required: true | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims/{iccid}/sms: | |
post: | |
tags: | |
- eSIMs | |
summary: Send SMS to eSIM | |
description: > | |
SMS must be UTF-8 compliant; with a minimum length of 1, and maximum | |
length of 160 characters. | |
This defaults to `eSIM` and is the only supported value by default. | |
Unique identifiers can be assigned to your Organisation on request. | |
**Please contact your Account Manager to discuss this.** | |
**Note:** Requires the eSIM to have an MSISDN | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: message | |
from: eSIM | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Content-Type | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: iccid | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) The ICCID of the eSIM | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims/{iccid}/bundles/{name}/applications/{assignmentId}: | |
delete: | |
tags: | |
- eSIMs (Deprecated) | |
summary: Revoke a specific Bundle Assignment from an eSIM (Deprecated) | |
description: > | |
Revokes a single assignment of a given Bundle type. | |
e.g. Can remove 1 month from a 1-year Bundle. | |
**Note:** Bundle names are case sensitive and should be typed like the | |
following "esim_1GB_7D_IM_U". | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: type | |
in: query | |
schema: | |
type: string | |
description: >- | |
type `validate` will provide options for the revoke and the | |
behaviours, if any. type `transaction` will execute the revoke. | |
Defaults to `transaction` | |
example: validate | |
- name: iccid | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) The ICCID of the eSIM | |
example: <string> | |
- name: name | |
in: path | |
schema: | |
type: string | |
required: true | |
description: > | |
(Required) Name of Bundle | |
Format as defined in [List Catalogue](/api/#get-/catalogue) API | |
call. | |
Example: `esim_10GB_30D_IM_U` | |
example: <string> | |
- name: assignmentId | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) ID of individual Bundle Assignment to revoke from an eSIM | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
status: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims/{iccid}/bundles/{name}/assignments/{assignmentId}: | |
delete: | |
tags: | |
- eSIMs | |
summary: Revoke specific Bundle | |
description: > | |
**IMPORTANT:** | |
If there are no bundles left on the eSIM AFTER the revoke, AND if the | |
eSIM is not installed, the eSIM will undergo the eSIM Go returns | |
process. | |
The start of the returns process will immediately REMOVE the eSIM from | |
your account - you will no longer be able to access it. | |
After a minimum of 4 days: if during the returns process, the eSIM is | |
now installed (e.g. by your end user), the eSIM will be returned to your | |
account. | |
If you DO NOT want the eSIM to be given back to eSIM Go, ensure the eSIM | |
either:- | |
- Is installed | |
- Has more than 1 bundle on it at the time of revoking | |
--- | |
Revokes a single assignment of a given Bundle type. | |
e.g. Can remove 1 month from a 1-year Bundle. | |
**Note:** Bundle names are case sensitive and should be typed like the | |
following "esim_1GB_7D_IM_U". | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: type | |
in: query | |
schema: | |
type: string | |
description: >- | |
type `validate` will provide options for the revoke and the | |
behaviours, if any. type `transaction` will execute the revoke. | |
Defaults to `transaction` | |
example: validate | |
- name: iccid | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) The ICCID of the eSIM | |
example: <string> | |
- name: name | |
in: path | |
schema: | |
type: string | |
required: true | |
description: > | |
(Required) Name of Bundle | |
Format as defined in [List Catalogue](/api/#get-/catalogue) API | |
call. | |
Example: `esim_10GB_30D_IM_U` | |
example: <string> | |
- name: assignmentId | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) ID of individual Bundle Assignment to revoke from an eSIM | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
status: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims/{iccid}/bundles/{name}: | |
get: | |
tags: | |
- eSIMs | |
summary: Get applied Bundle status | |
description: > | |
Provides details about an individual assignment of a Bundle applied to | |
an eSIM. | |
Remaining data can be found here. | |
Each Bundle can have multiple assignments. e.g. a 1-year Bundle will | |
have 12 assignments, each with their own start and finish dates | |
Bundle Assignment States: | |
- **Processing:** | |
The bundle assignment is currently processing. | |
This is usually instant but can, on occasion, take up to 10 minutes to complete. | |
The eSIM can still be installed and will register on a network while the bundle is processing. | |
- **Queued:** | |
The bundle has been successfully assigned, has not been used yet, and is queued for use. | |
- **Active:** | |
The bundle has successfully been used. | |
It has data remaining and is within the bundle duration. | |
- **Depleted:** | |
The bundle has no data remaining but is still within the bundle duration. | |
- **Expired:** | |
The bundle has expired, and the bundle duration has been exceeded. | |
- **Revoked:** | |
The bundle has been revoked, and is no longer on the esim. | |
**Notes:** | |
- If multiple of the same bundle are applied to a single eSIM, the | |
status bundle with the latest assignment will be returned. | |
- Bundle names are case sensitive and should be typed like the following | |
"esim_1GB_7D_IM_U". | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: iccid | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) The ICCID of the eSIM | |
example: <string> | |
- name: name | |
in: path | |
schema: | |
type: string | |
required: true | |
description: > | |
(Required) Name of Bundle | |
Format as defined in [List Catalogue](/api/#get-/catalogue) API | |
call. | |
Example: `esim_10GB_30D_IM_U` | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
assignments: | |
- id: <string> | |
callTypeGroup: <string> | |
initialQuantity: <integer> | |
remainingQuantity: <integer> | |
startTime: <dateTime> | |
endTime: <dateTime> | |
bundleState: <string> | |
assignmentDateTime: <dateTime> | |
assignmentReference: <string> | |
unlimited: <boolean> | |
- id: <string> | |
callTypeGroup: <string> | |
initialQuantity: <integer> | |
remainingQuantity: <integer> | |
startTime: <dateTime> | |
endTime: <dateTime> | |
bundleState: <string> | |
assignmentDateTime: <dateTime> | |
assignmentReference: <string> | |
unlimited: <boolean> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
delete: | |
tags: | |
- eSIMs | |
summary: Revoke applied Bundle | |
description: > | |
**IMPORTANT:** | |
If there are no bundles left on the eSIM AFTER the revoke, AND if the | |
eSIM is not installed, the eSIM will undergo the eSIM Go returns | |
process. | |
The start of the returns process will immediately REMOVE the eSIM from | |
your account - you will no longer be able to access it. | |
After a minimum of 4 days: if during the returns process, the eSIM is | |
now installed (e.g. by your end user), the eSIM will be returned to your | |
account. | |
If you DO NOT want the eSIM to be given back to eSIM Go, ensure the eSIM | |
either:- | |
- Is installed | |
- Has more than 1 bundle on it at the time of revoking | |
--- | |
Revokes latest assignment of a given Bundle type. | |
If a bundle assignment has not been started and no data has been | |
consumed, the bundle assignment can either be returned to the inventory | |
or credited back to the organisations balance. | |
If the bundle assignment has started, or was purchased outside of their | |
permitted refund period, typically 60 days, it cannot be returned to the | |
inventory or taken as a credit. | |
**Note:** Bundle names are case sensitive and should be typed like the | |
following "esim_1GB_7D_IM_U". | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: refundToBalance | |
in: query | |
schema: | |
type: string | |
description: >- | |
If Applicable, refund the value of this bundle to organisation | |
balance | |
example: <boolean> | |
- name: offerId | |
in: query | |
schema: | |
type: string | |
description: >- | |
If Applicable, the offerId of the bundle to revoke. needed for | |
refunding to balance | |
example: <string> | |
- name: type | |
in: query | |
schema: | |
type: string | |
description: >- | |
type `validate` will provide options for the revoke and the | |
behaviours, if any. type `transaction` will execute the revoke. | |
Defaults to `transaction` | |
example: validate | |
- name: iccid | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) The ICCID of the eSIM | |
example: <string> | |
- name: name | |
in: path | |
schema: | |
type: string | |
required: true | |
description: > | |
(Required) Name of Bundle | |
Format as defined in [List Catalogue](/api/#get-/catalogue) API | |
call. | |
Example: `esim_10GB_30D_IM_U` | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
status: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims/{iccid}/bundles: | |
get: | |
tags: | |
- eSIMs | |
summary: List Bundles applied to eSIM | |
description: | | |
Provides details about the current Bundles applied to an eSIM. | |
Remaining data can be found here. | |
Each Bundle can have multiple assignments. | |
Bundle Assignment States: | |
- **Processing:** | |
The bundle assignment is currently processing. | |
This is usually instant but can, on occasion, take up to 10 minutes to complete. | |
The eSIM can still be installed and will register on a network while the bundle is processing. | |
- **Queued:** | |
The bundle has been successfully assigned, has not been used yet, and is queued for use. | |
- **Active:** | |
The bundle has successfully been used. | |
It has data remaining and is within the bundle duration. | |
- **Depleted:** | |
The bundle has no data remaining but is still within the bundle duration. | |
- **Expired:** | |
The bundle has expired, and the bundle duration has been exceeded. | |
- **Revoked:** | |
The bundle has been revoked, and is no longer on the esim. | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: includeUsed | |
in: query | |
schema: | |
type: string | |
description: | | |
Include used & expired Bundles | |
Backward compatibility for v2.1 | |
example: <boolean> | |
- name: limit | |
in: query | |
schema: | |
type: string | |
description: > | |
Number of assignments to return. Must be between 1 and 200. Default | |
is 15 | |
example: <integer> | |
- name: iccid | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) The ICCID of the eSIM | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
bundles: | |
- name: <string> | |
assignments: | |
- id: <string> | |
callTypeGroup: <string> | |
initialQuantity: <integer> | |
remainingQuantity: <integer> | |
startTime: <dateTime> | |
endTime: <dateTime> | |
bundleState: <string> | |
assignmentDateTime: <dateTime> | |
assignmentReference: <string> | |
unlimited: <boolean> | |
- id: <string> | |
callTypeGroup: <string> | |
initialQuantity: <integer> | |
remainingQuantity: <integer> | |
startTime: <dateTime> | |
endTime: <dateTime> | |
bundleState: <string> | |
assignmentDateTime: <dateTime> | |
assignmentReference: <string> | |
unlimited: <boolean> | |
- name: <string> | |
assignments: | |
- id: <string> | |
callTypeGroup: <string> | |
initialQuantity: <integer> | |
remainingQuantity: <integer> | |
startTime: <dateTime> | |
endTime: <dateTime> | |
bundleState: <string> | |
assignmentDateTime: <dateTime> | |
assignmentReference: <string> | |
unlimited: <boolean> | |
- id: <string> | |
callTypeGroup: <string> | |
initialQuantity: <integer> | |
remainingQuantity: <integer> | |
startTime: <dateTime> | |
endTime: <dateTime> | |
bundleState: <string> | |
assignmentDateTime: <dateTime> | |
assignmentReference: <string> | |
unlimited: <boolean> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
post: | |
tags: | |
- eSIMs (Deprecated) | |
summary: Apply a Bundle to an eSIM (Deprecated) | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
name: <string> | |
startTime: <string> | |
repeat: <integer> | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Content-Type | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: iccid | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) The ICCID of the eSIM | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
status: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims/{iccid}/location: | |
get: | |
tags: | |
- eSIMs | |
summary: Get eSIM Location | |
description: Returns the last known location and operator for a given eSIM. | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: iccid | |
in: path | |
schema: | |
type: string | |
required: true | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
mobileNetworkCode: <string> | |
networkName: <string> | |
country: <string> | |
lastSeen: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims/{iccid}: | |
get: | |
tags: | |
- eSIMs | |
summary: Get eSIM details | |
description: | | |
Receive eSIM details for an ICCID | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: additionalFields | |
in: query | |
schema: | |
type: string | |
example: appleInstallUrl | |
- name: iccid | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) The ICCID of the eSIM | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
iccid: <string> | |
matchingId: <string> | |
smdpAddress: <string> | |
profileStatus: Released | |
pin: <string> | |
puk: <string> | |
firstInstalledDateTime: <dateTime> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/esims: | |
get: | |
tags: | |
- eSIMs | |
summary: List eSIMs | |
description: | | |
Returns all eSIMs currently assigned to your organisation. | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: page | |
in: query | |
schema: | |
type: string | |
description: Page of ESIMs to return | |
example: <string> | |
- name: perPage | |
in: query | |
schema: | |
type: integer | |
description: Number of ESIMs to return per page | |
example: '50' | |
- name: direction | |
in: query | |
schema: | |
type: string | |
description: Direction of ordering | |
example: asc | |
- name: orderBy | |
in: query | |
schema: | |
type: string | |
description: Name of column to order by | |
example: iccid | |
- name: filterBy | |
in: query | |
schema: | |
type: string | |
description: >- | |
Name of column to filter by. eSIMs can be filtered by ICCID, | |
Customer Reference, Last Action (Bundle Refund, Bundle Applied, | |
Bundle Revoked, eSIM Updated, eSIM Refreshed, eSIM Utilisation | |
Alert), Last Action Date and SIM Assignment Date. | |
example: iccid, customerRef, lastAction, actionDate, assignedDate | |
- name: filter | |
in: query | |
schema: | |
type: string | |
description: Value to filter by | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
esims: | |
- iccid: <string> | |
customerRef: <string> | |
lastAction: <string> | |
actionDate: <string> | |
physical: <boolean> | |
assignedDate: <string> | |
- iccid: <string> | |
customerRef: <string> | |
lastAction: <string> | |
actionDate: <string> | |
physical: <boolean> | |
assignedDate: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
put: | |
tags: | |
- eSIMs | |
summary: Update eSIM Details | |
description: | | |
Update sim details | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
iccid: <string> | |
customerRef: <string> | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Content-Type | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: iccid | |
in: query | |
schema: | |
type: string | |
description: (Required) ICCID of eSIM | |
example: <string> | |
- name: customerRef | |
in: query | |
schema: | |
type: string | |
description: (Required) New Customer Reference | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/organisation/balance: | |
post: | |
tags: | |
- Organisation | |
summary: Topup Organisation Balance | |
description: > | |
Update the pre-payed balance held by your organisation. | |
Initial payment is done using the Portal: https://portal.esim-go.com/. | |
This will store your card details for future use. | |
Follow up payments can be done using the API. | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: amount | |
in: query | |
schema: | |
type: string | |
description: (Required) The amount of to be charged to the saved card | |
example: <integer> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
amount: <integer> | |
balance: <integer> | |
ref: <integer> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'503': | |
description: Service Unavailable | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/organisation/groups: | |
get: | |
tags: | |
- Organisation | |
summary: Get Bundle Groups | |
description: > | |
Bundles are grouped into categories. This returns a list of the groups | |
of Bundles available for your Organisation to order. | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
- name: <string> | |
- name: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/organisation: | |
get: | |
tags: | |
- Organisation | |
summary: Get Current Organisation Details | |
description: Get details of your Organisation including all users | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
organisations: | |
- name: <string> | |
apiKey: <string> | |
taxLiable: <string> | |
addr1: <string> | |
addr2: <string> | |
city: <string> | |
country: <string> | |
postcode: <string> | |
callbackUrl: <string> | |
notes: <string> | |
groups: | |
- <string> | |
- <string> | |
currency: <string> | |
balance: <integer> | |
testCredit: <integer> | |
testCreditExpiry: <string> | |
businessType: <string> | |
website: <string> | |
productDescription: <string> | |
users: | |
- firstName: <string> | |
lastName: <string> | |
role: <string> | |
emailAddress: <string> | |
phoneNumber: <string> | |
timeZone: <string> | |
- firstName: <string> | |
lastName: <string> | |
role: <string> | |
emailAddress: <string> | |
phoneNumber: <string> | |
timeZone: <string> | |
- name: <string> | |
apiKey: <string> | |
taxLiable: <string> | |
addr1: <string> | |
addr2: <string> | |
city: <string> | |
country: <string> | |
postcode: <string> | |
callbackUrl: <string> | |
notes: <string> | |
groups: | |
- <string> | |
- <string> | |
currency: <string> | |
balance: <integer> | |
testCredit: <integer> | |
testCreditExpiry: <string> | |
businessType: <string> | |
website: <string> | |
productDescription: <string> | |
users: | |
- firstName: <string> | |
lastName: <string> | |
role: <string> | |
emailAddress: <string> | |
phoneNumber: <string> | |
timeZone: <string> | |
- firstName: <string> | |
lastName: <string> | |
role: <string> | |
emailAddress: <string> | |
phoneNumber: <string> | |
timeZone: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/orders/{orderReference}: | |
get: | |
tags: | |
- Orders | |
summary: Get order detail | |
description: | | |
Get details on an order, including total cost and contents | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: orderReference | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) Reference for your order | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
order: | |
- type: <string> | |
item: <string> | |
quantity: <integer> | |
subTotal: <integer> | |
pricePerUnit: <integer> | |
- type: <string> | |
item: <string> | |
quantity: <integer> | |
subTotal: <integer> | |
pricePerUnit: <integer> | |
total: <integer> | |
currency: <string> | |
status: <string> | |
statusMessage: <string> | |
orderReference: <string> | |
createDate: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/orders: | |
get: | |
tags: | |
- Orders | |
summary: List orders | |
description: > | |
Get details on all previous orders, including total cost and contents. | |
Response data is paginated. | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: includeIccids | |
in: query | |
schema: | |
type: boolean | |
description: > | |
Set to true to include eSIM data (ICCID, Matching ID and SMDP | |
Address) in the response, and an ICCIDs array. | |
Note: From v2.3.0 onwards, this data will be included by default. | |
example: 'true' | |
- name: page | |
in: query | |
schema: | |
type: integer | |
description: | | |
Page number to return. | |
example: '1' | |
- name: limit | |
in: query | |
schema: | |
type: integer | |
description: | | |
Number of results to return per page. | |
example: '10' | |
- name: createdAt | |
in: query | |
schema: | |
type: string | |
description: > | |
Specifies the date range for filtering orders. This parameter has a | |
'lte:' prefix to specify the end date. | |
For example, to query orders from March 1, 2024, to March 31, 2024, | |
use the following format: | |
`createdAt=gte:2024-03-01T00:00:00.000Z&createdAt=lte:2024-03-31T23:59:59.999Z`. | |
example: <dateTime> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
- order: | |
- type: <string> | |
item: <string> | |
quantity: <integer> | |
subTotal: <integer> | |
pricePerUnit: <integer> | |
invoiceLink: <string> | |
- type: <string> | |
item: <string> | |
quantity: <integer> | |
subTotal: <integer> | |
pricePerUnit: <integer> | |
invoiceLink: <string> | |
total: <integer> | |
currency: <string> | |
status: <string> | |
statusMessage: <string> | |
orderReference: <string> | |
createDate: <string> | |
- order: | |
- type: <string> | |
item: <string> | |
quantity: <integer> | |
subTotal: <integer> | |
pricePerUnit: <integer> | |
invoiceLink: <string> | |
- type: <string> | |
item: <string> | |
quantity: <integer> | |
subTotal: <integer> | |
pricePerUnit: <integer> | |
invoiceLink: <string> | |
total: <integer> | |
currency: <string> | |
status: <string> | |
statusMessage: <string> | |
orderReference: <string> | |
createDate: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
post: | |
tags: | |
- Orders | |
summary: Create orders | |
description: > | |
Orders can be validated and processed using this endpoint. | |
Total will be deducted from your Organisation's balance. | |
**Auto-assign** | |
By specifying ICCID(s) of eSIM(s) belonging to your Organisation and | |
setting 'assign' to true, a bundle can be automatically assigned to | |
eSIM(s) | |
Bundle assignments to an eSIM are usually instant but please allow for | |
up to 10 minutes for the bundle to fully process. While the bundle is | |
processing the eSIM can be successfully installed and the eSIM will | |
register onto a network if within coverage. | |
The Bundle Status can be checked through [Get the Status of a bundle | |
assigned to an | |
eSIM](https://docs.esim-go.com/api/#get-/esims/-iccid-/bundles/-name-) | |
**Usage:** | |
* eSIM ICCIDs can only be specifed if assign is set to true | |
* If assign is set to true, but no ICCIDs are provided, bundles are | |
assigned to new eSIMs | |
* If ICCIDs are provided, quantity is required to match the number of | |
ICCIDs for each bundle | |
* If quantity is specified and assign is set to false, the quantity of | |
that bundle is purchased into inventory | |
**Note:** In some cases, it may take up to 5 minutes for your eSIM | |
bundles to be delivered | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
type: validate | |
assign: <boolean> | |
Order: | |
- type: bundle | |
quantity: <integer> | |
item: <string> | |
iccids: | |
- <string> | |
- <string> | |
allowReassign: <boolean> | |
- type: bundle | |
quantity: <integer> | |
item: <string> | |
iccids: | |
- <string> | |
- <string> | |
allowReassign: <boolean> | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Content-Type | |
in: header | |
schema: | |
type: string | |
example: application/json | |
responses: | |
'200': | |
description: OK | |
content: | |
text/plain: | |
schema: | |
type: string | |
example: '' | |
'400': | |
description: Bad Request | |
content: | |
text/plain: | |
schema: | |
type: string | |
example: '' | |
'401': | |
description: Unauthorized | |
content: | |
text/plain: | |
schema: | |
type: string | |
example: '' | |
'503': | |
description: Service Unavailable | |
content: | |
text/plain: | |
schema: | |
type: string | |
example: '' | |
/inventory/refund: | |
post: | |
tags: | |
- Inventory | |
summary: Refund bundle from inventory | |
description: > | |
Refunds an item in the inventory to the organisations balance. | |
Takes a usageId and a quantity. The usageId's can be found by querying | |
the /inventory endpoint | |
The quantity of a refund cannot exceed the remaining quantity left for | |
the specific usageId. If you wish to refund multiple usageId's, multiple | |
calls to this endpoint will need to be done. | |
If a bundle assignment has not been started and no data has been | |
consumed, the bundle can be refunded as a credit back to the | |
organisations balance. | |
If the bundle assignment has started, or was purchased outside of their | |
permitted refund period, typically 60 days, it cannot be refunded. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
usageId: <integer> | |
quantity: <integer> | |
parameters: | |
- name: Content-Type | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/inventory: | |
get: | |
tags: | |
- Inventory | |
summary: Get bundle inventory | |
description: > | |
All of your Organisation's currently purchased Bundles and their | |
remaining usages. | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
bundles: | |
- name: <string> | |
desc: <string> | |
available: | |
- id: <integer> | |
total: <integer> | |
remaining: <integer> | |
expiry: <string> | |
- id: <integer> | |
total: <integer> | |
remaining: <integer> | |
expiry: <string> | |
countries: | |
- <string> | |
- <string> | |
data: <integer> | |
duration: <integer> | |
durationUnit: <string> | |
autostart: <boolean> | |
unlimited: <boolean> | |
speed: | |
- <string> | |
- <string> | |
- name: <string> | |
desc: <string> | |
available: | |
- id: <integer> | |
total: <integer> | |
remaining: <integer> | |
expiry: <string> | |
- id: <integer> | |
total: <integer> | |
remaining: <integer> | |
expiry: <string> | |
countries: | |
- <string> | |
- <string> | |
data: <integer> | |
duration: <integer> | |
durationUnit: <string> | |
autostart: <boolean> | |
unlimited: <boolean> | |
speed: | |
- <string> | |
- <string> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/catalogue/bundle/{name}: | |
get: | |
tags: | |
- Catalogue | |
summary: Get Bundle details from catalogue | |
description: Get details of a specific Bundle from your Organisation's catalogue | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: name | |
in: path | |
schema: | |
type: string | |
required: true | |
description: (Required) Name of Bundle Group to get countries for | |
example: <string> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
name: <string> | |
description: <string> | |
countries: | |
- name: <string> | |
region: <string> | |
iso: <string> | |
- name: <string> | |
region: <string> | |
iso: <string> | |
dataAmount: <integer> | |
duration: <integer> | |
speed: | |
- <string> | |
- <string> | |
autostart: <boolean> | |
unlimited: <boolean> | |
roamingEnabled: | |
- name: <string> | |
region: <string> | |
iso: <string> | |
- name: <string> | |
region: <string> | |
iso: <string> | |
price: <integer> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/catalogue: | |
get: | |
tags: | |
- Catalogue | |
summary: Get Bundle catalogue | |
description: | | |
List all Bundles available to your Organisation for ordering. | |
Bundle names can be used with the `/orders` endpoint to place an order. | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: page | |
in: query | |
schema: | |
type: string | |
description: Page of Bundles to return | |
example: <string> | |
- name: perPage | |
in: query | |
schema: | |
type: integer | |
description: Number of Bundles to return per page | |
example: '50' | |
- name: direction | |
in: query | |
schema: | |
type: string | |
description: Direction of ordering | |
example: asc | |
- name: orderBy | |
in: query | |
schema: | |
type: string | |
description: Name of column to order by | |
example: duration | |
- name: description | |
in: query | |
schema: | |
type: string | |
description: Wildcard search for description | |
example: <string> | |
- name: group | |
in: query | |
schema: | |
type: string | |
description: Filter by Bundle Group (exact value) e.g. `Standard eSIM Bundles` | |
example: <string> | |
- name: countries | |
in: query | |
schema: | |
type: string | |
description: >- | |
Comma-separated list of country ISO codes to filter by. This will | |
search for Bundles that include at least one of the countries as | |
their base country. e.g. `GB, US` | |
example: <string> | |
- name: region | |
in: query | |
schema: | |
type: string | |
description: >- | |
This will return Bundles that have a base country in the specified | |
region. e.g. `Europe` | |
example: Antarctica | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
- name: <string> | |
description: <string> | |
groups: | |
- <string> | |
- <string> | |
countries: | |
- name: <string> | |
region: <string> | |
iso: <string> | |
- name: <string> | |
region: <string> | |
iso: <string> | |
dataAmount: <integer> | |
duration: <integer> | |
speed: | |
- <string> | |
- <string> | |
autostart: <boolean> | |
unlimited: <boolean> | |
roamingEnabled: | |
- name: <string> | |
region: <string> | |
iso: <string> | |
- name: <string> | |
region: <string> | |
iso: <string> | |
price: <integer> | |
- name: <string> | |
description: <string> | |
groups: | |
- <string> | |
- <string> | |
countries: | |
- name: <string> | |
region: <string> | |
iso: <string> | |
- name: <string> | |
region: <string> | |
iso: <string> | |
dataAmount: <integer> | |
duration: <integer> | |
speed: | |
- <string> | |
- <string> | |
autostart: <boolean> | |
unlimited: <boolean> | |
roamingEnabled: | |
- name: <string> | |
region: <string> | |
iso: <string> | |
- name: <string> | |
region: <string> | |
iso: <string> | |
price: <integer> | |
'400': | |
description: Bad Request | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'403': | |
description: Forbidden | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
'500': | |
description: Internal Server Error | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: | |
message: <string> | |
/networks: | |
get: | |
tags: | |
- Networks | |
summary: Get Country Network Data | |
description: > | |
This endpoint is used to return the networks for a country/countries | |
searched for either by an array of countires or ISO codes (ISOs). | |
Alternatively, it can be toggled to return all countries and their | |
networks. | |
Please refer to the rate sheet, availible to download in the eSIM Go | |
Management Portal for a full list of country names and ISO codes. | |
security: | |
- apikeyAuth: [] | |
parameters: | |
- name: Accept | |
in: header | |
schema: | |
type: string | |
example: application/json | |
- name: countries | |
in: query | |
schema: | |
type: string | |
description: List of Countries e.g. United Kingdom,United States | |
example: <string> | |
- name: isos | |
in: query | |
schema: | |
type: string | |
description: List of ISOs e.g. GB,US | |
example: <string> | |
- name: returnAll | |
in: query | |
schema: | |
type: string | |
description: Used to toggle returning of all Countries e.g. true/false | |
example: <boolean> | |
responses: | |
'200': | |
description: OK | |
headers: | |
Content-Type: | |
schema: | |
type: string | |
example: application/json | |
content: | |
application/json: | |
schema: | |
type: object | |
example: null | |
'400': | |
description: Bad Request | |
content: | |
text/plain: | |
schema: | |
type: string | |
example: '' | |
'401': | |
description: Unauthorized | |
content: | |
text/plain: | |
schema: | |
type: string | |
example: '' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment