- 1. Introduction
- 2. Target Groups
- 3. Transfer Mechanism
- 4. Authentication and Authorization
- 5. Syntax Notation
- 6. Resources
- 6.1a. Single Operation - Get Device Details (Structured Response)
- 6.1b. Single Operation - Get Device Details (Non-Structured Response)
- 6.2. Single Operation - Get Device Network Status
- 6.3. Single Operation - Change Service Profile
- 6.4. Single Operation - Assign Static IP
- 6.5. Single Operation - Change Rate Plan
- 6.6. Single Operation - Update Traffic Policy
- 6.7. Single Operation - Update Device State
- 6.8. Single Operation - Update Device Attributes
- 6.9. Single Operation - Provision Device
- 6.10. Bulk Operation - Bulk Device Provision
- 6.11. Bulk Operation - |Bulk Device Status| - |Bulk Traffic| - |Bulk Rate Plan| - |Bulk Change Service Name| - |Bulk Change Static IP| - |Bulk Update Custom Attribute|
- 6.13. Get SIM Inventory
- 7. Error Codes
1. Introduction
This section of AerAdmin API documentation outlines RESTful web services, which can be used for performing AerAdmin operations like provisioning, activating, and managing devices.
2. Target Groups
All authorized users of AerPort portal.
3. Transfer Mechanism
Access to the AerAdmin RESTful web services is available through secure HTTP over the public Internet. The URI for each request is given with their corresponding request description section.
4. Authentication and Authorization
The authentication and authorization of all requests is maintained through API key, which is an integral part of each request.
5. Syntax Notation
This interface uses a generic syntax that is described in the following sections.
5.1. Resource Identifier
Each service offered by the AerAdmin API is accessed by a URI with the following format:
<scheme>://<host>[:<port>]/<apiName_version>/<resource_path>?apiKey=<apiKey>
URI Parameters for the Resource Identifier
Parameter |
Description |
scheme |
The application protocol, for example HTTP. |
host |
The network address to access the interface and its connected service. The public host for AerAdmin APIs is aeradminapi.aeris.com.We have used the actual hostnames in most of our sample API requests. |
port |
The TCP/IP port used for access. If not specified, default ports for the applications are assumed. For AerAdmin APIs you can skip this value. |
apiName_version |
Defines the API name consisting of their version too. Currently, all AerAdmin API uses the version as AerAdmin_WS_5_0. |
resource_path |
Identifies the actual path to access the resource. For example, /rest/devices/details. |
6. Resources
The AerAdmin API offers access to different functionalities. Each functionality has its own access path and parameters which are described in the following sections.
6.1a. Single Operation - Get Device Details (Structured Response)
This API is used for retrieving the device details (for example, activation date, device status, service name, and IP details) for one device of one particular customer account. The response payload is a structured format in JSON objects.
6.1a.1. URI
https://<host>/AerAdmin_WS_5_0/rest/v1/devices/details?apiKey=<apiKey>
6.1a.1.1. Variable Path Parameters
The preceding URI has the following variable path parameters:
Name |
Type |
Description |
NA |
NA |
NA |
6.1a.1.2. Query Parameters
The preceding URI has the following query parameters:
Name |
Type |
Description |
apiKey |
String |
Defines the unique API key that is assigned to the customer account for accessing the API. This API key can be retrieved from the AerPort Portal. |
6.1a.2. HTTP Headers
The following standard and custom HTTP headers are supported.
6.1a.2.1. Request Headers
HTTP headers available for the request are as follows:
Field Name |
Value |
Constraint |
Accept |
application/json |
Optional |
Content-Type |
application/json |
Mandatory |
Accept-Charset |
utf-8 |
Optional |
6.1a.2.2. Response Headers
HTTP headers available for the response are as follows:
Field Name |
Value |
Description |
Content-Type |
application/json |
Defines the response format. |
Date |
<Date time Stamp> |
Date time stamp of receiving the response. |
6.1a.3. Method Type
Method Type |
POST |
6.1a.4. Request Payload Description
The request payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
Description |
accountID |
String |
Mandatory |
Unique ID of the account, under which the device is provisioned |
String |
Mandatory |
Email ID of the primary user of the account. However, it is not mandatory to be defined the same as in AerPort. |
|
deviceProfileID |
String |
Including one identifier is Mandatory |
Identifier of the device. Note: If you want to identify the device by staticIP address, you must also specify the apn and productName. If you do not specify all three parameters, HTTP status code 400 is returned. |
MEID |
String |
||
ESN |
String |
||
ICCID |
String |
||
MIN |
String |
||
IMSI |
String |
||
MDN |
String |
||
MSISDN |
String |
||
IMEI |
String |
||
SCLID |
String |
||
staticIP |
String |
||
apn | String | Mandatory if staticIP is specified, otherwise Optional | The APN associated with the device with a static IP address. |
productName | String | Mandatory if staticIP is specified, otherwise Optional | The product name associated with the device with a static
IP address. You can use one of following text strings, as assigned to your account:
|
6.1a.5. Response Payload Description
The response payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Description |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
transactionID |
String |
Mandatory |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
resultCode |
int |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
resultMessage |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
opCompletionTimestamp |
XMLGregorianCalendar |
Mandatory |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deviceProfileId |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deviceAttributes |
List<QueryDeviceAttributes> QueryDeviceAttributes
|
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deviceIpDetails: appears only if the device is associated with a service profile that has associated APNs. If present, deviceIpDetails displays one of: IpAddress + serviceType; apn + serviceType; or IpAddress + apn + serviceType. |
List <DeviceIpDetails> QueryDeviceIpDetails
|
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deviceName | String | Optional | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
applicationType |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
currentLocation |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
customField |
CustomFields |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reportGroup |
Long |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deviceFirmwareVersion |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deviceHardwareVersion |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
containerID |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dataModelID |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
registerOnAerCloud |
Boolean |
Optional |
6.1a.6. Sample Requests
POST /AerAdmin_WS_5_0/rest/v1/devices/details?apiKey=<apiKey>
HTTP/1.1
Host: aeradminapi.aeris.com
Content-Type: application/json
Accept-Charset: utf-8
Accept: application/json
email: "aerport@aeris.net"
Content-Length: 102
{
"accountID": 1,
"email": "aerport@aeris.net",
"ICCID": "89185001190429000293"
}
POST /AerAdmin_WS_5_0/rest/v1/devices/details?apiKey=<apiKey>
HTTP/1.1
Host: aeradminapi.aeris.com
Content-Type: application/json
Accept-Charset: utf-8
Accept: application/json
email: "aerport@aeris.net"
Content-Length: 102
{
"accountID": 11173,
"email": "aerport@aeris.net",
"staticIP": "10.188.0.182",
"apn": "iotst.aer.net",
"productName": "Dual-Mode A-LH"
}
6.1a.7. Sample Response (Structured Block)
{
"transactionID": "4f6a7290-5128-11eb-964c-fe193c05150c",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2021-01-07T20:38:39.000Z",
"deviceProfileId": "AER0000011966925",
"deviceAttributes": [
{
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"deviceID": {
"iccId": "89185001190429000293",
"msisdn": "11841161118",
"imsi": "311882995001028"
},
"technology": "LTE",
"serviceName": "TMO_FNA_SP4_Pre",
"deviceStatus": "Provision",
"activationDate": "2019-10-22T01:11:48.000Z",
"cancelCode": 0,
"ratePlan": "AER_AERI_60281",
"ratePlanLabel": "AER_TMO_74413",
"softwareVersion": "2.1.7.8",
"active": true,
"lteOnly": false
}
],
"deviceIpDetails": [
{
"ipAddress": "10.64.0.9",
"serviceType": "static",
"apn": "iotst.aer.net"
}
],
"applicationType": "M",
"customField": {},
"reportGroup": 0,
"containerId": "",
"dataModelId": "",
"registerOnAerCloud": false
}
6.1b. Single Operation - Get Device Details (Non-Structured Response)
This API is used for retrieving the device details (for example activation date, device status, and service name) for one device of one particular customer account.
6.1b.1. URI
https://<host>/AerAdmin_WS_5_0/rest/devices/details?apiKey=<apiKey>
6.1b.1.1. Variable Path Parameters
The preceding URI has the following variable path parameters:
Name |
Type |
Description |
NA |
NA |
NA |
6.1b.1.2. Query Parameters
The preceding URI has the following query parameters:
Name |
Type |
Description |
apiKey |
String |
Defines the unique API key that is assigned to the customer account for accessing the API. This API key can be retrieved from the AerPort Portal. |
6.1b.2. HTTP Headers
The following standard and custom HTTP headers are supported.
6.1b.2.1. Request Headers
HTTP headers available for the request are as follows:
Field Name |
Value |
Constraint |
Accept |
application/json |
Optional |
Content-Type |
application/json |
Mandatory |
Accept-Charset |
utf-8 |
Optional |
6.1b.2.2. Response Headers
HTTP headers available for the response are as follows:
Field Name |
Value |
Description |
Content-Type |
application/json |
Defines the response format. |
Content-Length |
<n> |
The content length value varies for each response. |
Date |
<Date time Stamp> |
Date time stamp of receiving the response. |
6.1b.3. Method Type
Method Type |
POST |
6.1b.4. Request Payload Description
The request payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
Description |
accountID |
String |
Mandatory |
Unique Id of the account, under which the device is provisioned |
String |
Mandatory |
Email Id of the primary user of the account. However, it is not mandatory to be same as defined in AerPort. |
|
deviceProfileId |
String |
Including one identifier is Mandatory |
Identifier of the device. EID is the idenfier for an eSIM. |
MEID |
String |
||
EID | String | ||
ESN |
String |
||
ICCID |
String |
||
MIN |
String |
||
IMSI |
String |
||
MDN |
String |
||
MSISDN |
String |
||
IMEI |
String |
||
SCLID |
String |
6.1b.5. Response Payload Description
The response payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Description |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
transactionID |
String |
Mandatory |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
resultCode |
int |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
resultMessage |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
opCompletionTimestamp |
XMLGregorianCalendar |
Mandatory |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deviceProfileId |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deviceAttributes |
List<QueryDeviceAttributes> QueryDeviceAttributes
|
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deviceName |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
applicationType |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
currentLocation |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
customField |
CustomFields |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reportGroup |
Long |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deviceFirmwareVersion |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deviceHardwareVersion |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
containerId |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dataModelId |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
registerOnAerCloud |
Boolean |
Optional |
6.1b.6. Sample Request.
POST /AerAdmin_WS_5_0/rest/devices/details?apiKey=<apiKey>
HTTP/1.1
Host: aeradminapi.aeris.com
Content-Type: application/json
Cache-Control: no-cache
Example completed call- https://aeradminapi.aeris.com/AerAdmin_WS_5_0/rest/devices/details?apiKey=<apiKey>
{
"accountID": "1",
"email": "aerport@aeris.net",
"ICCID": "89185000160427367979"
}
Sample for Global eSIM:
{
"accountID": "11173",
"email": "aerport@aeris.net",
"EID": "89044045817727484800000005605737"
}
6.1b.7. Sample Response
{
"transactionID": "a14d7e20-f601-11e7-83cd-020f44a6d939",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2018-01-10T12:27:32.000Z",
"deviceProfileId": "AER0000006240762",
"deviceAttributes": [
{
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"deviceID": {
"iccId": "89185000160427367979",
"msisdn": "11835425412",
"imsi": "204043396622419"
},
"technology": "GSM",
"serviceName": "Garner_GS_Profile02",
"deviceStatus": "Bill",
"activationDate": "2016-08-19T23:02:00.000Z",
"cancelCode": 0,
"ratePlan": "90DAYSTRIAL_GLOBAL",
"ratePlanLabel": "90DAYSTRIAL_GLOBAL",
"softwareVersion": "2.1.7.8",
"active": true,
"lteOnly": false
}
],
"deviceName": "Test Device Name",
"applicationType": "M",
"customField": {},
"reportGroup": 0,
"containerId": "",
"dataModelId": "",
"registerOnAerCloud": false
}
Sample for Global eSIM:
{
"transactionID": "a14d7e20-f601-11e7-83cd-020f44a6d939",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2022-02-02T08:15:41.000Z",
"deviceProfileId": "AER0000017018091",
"deviceAttributes": [
{
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"deviceID": {
"iccId": "89185003210821000069",
"msisdn": "11831444606",
"imsi": "204043898374225",
"eid": "89044045817727484800000005605737"
},
"technology": "LTE",
"serviceName": "esimprodf_0",
"deviceStatus": "Bill",
"activationDate": "2022-01-23T17:08:14.000Z",
"cancelCode": 0,
"ratePlan": "AER_GLOBSIM_83701",
"ratePlanLabel": "esimprodch-2",
"softwareVersion": "2.1.7.8",
"active": true,
"lteOnly": false,
"profileDisplayName": "Fusion Global",
"isActiveOnDevice": false,
"umbrellaRatePlan": "AER_GLOBSIM_83597",
"umbrellaServiceProfile": "esimprodf",
"esimStatus": "Bill",
"newUmbrellaRatePlan": "AER_GLOBSIM_83693",
"newUmbrellaRatePlanDate": "2022-01-23T00:00:00.000Z"
},
{
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"deviceID": {
"iccId": "89011701328863055487",
"msisdn": "882350886305548",
"imsi": "310170886305548",
"eid": "89044045817727484800000005605737"
},
"technology": "LTE",
"serviceName": "esimprodf_1",
"deviceStatus": "Suspend",
"activationDate": "2022-01-23T17:08:19.000Z",
"cancelCode": 0,
"staticIP": "10.188.3.51",
"ratePlan": "AER_GLOBSIM_83697",
"ratePlanLabel": "esimprodch-1",
"softwareVersion": "2.1.7.8",
"active": true,
"lteOnly": false,
"profileDisplayName": "Dual-Mode A-LH",
"isActiveOnDevice": true,
"umbrellaRatePlan": "AER_GLOBSIM_83597",
"umbrellaServiceProfile": "esimprodf",
"esimStatus": "Bill",
"newUmbrellaRatePlan": "AER_GLOBSIM_83693",
"newUmbrellaRatePlanDate": "2022-01-23T00:00:00.000Z"
}
],
"deviceName": "esim11173",
"applicationType": "M",
"customField": {},
"reportGroup": 0,
"containerId": "",
"dataModelId": "",
"registerOnAerCloud": false
}
6.2. Single Operation - Get Device Network Status
This API is used for retrieving the current network status of the device and last data session details, if any. It also returns the APN and IP assigned to the device.
6.2.1. URI
https://<host>/AerAdmin_WS_5_0/rest/devices/network/details?accountID=<accountID>&<deviceIdentifier>=<deviceIdentifierValue>&email=<emailaddress>&apiKey=<apiKey>
6.2.1.1. Variable Path Parameters
The preceding URI has the following variable path parameters:
Name |
Type |
Description |
NA |
NA |
NA |
6.2.1.2. Query Parameters
The preceding URI has the following query parameters:
Name |
Type |
Description |
accountID |
String |
Defines the account Id to which the device is provisioned. |
deviceIdentifier |
String |
Defines one of the following identifiers (identifier name is case-sensitive) and their corresponding value:
|
deviceIdentifierValue |
String |
Defines the value of device identifier. For example, if you are using using ICCID as <deviceIdentifier> then value can be 89185000160427367979. |
String |
Email id of the primary user of the account. However, it is not mandatory to be the same as defined in AerPort. |
|
apiKey |
String |
Defines the unique API key that is assigned to the customer account for accessing the API. This API key can be retrieved from the AerPort Portal. |
6.2.2. HTTP Headers
The following standard and custom HTTP headers are supported.
6.2.2.1. Request Headers
HTTP headers available for the request are as follows:
Field Name |
Value |
Constraint |
Accept |
application/json |
Optional |
Content-Type |
application/json |
Mandatory |
Accept-Charset |
utf-8 |
Optional |
6.2.2.2. Response Headers
HTTP headers available for the response are as follows:
Field Name |
Value |
Description |
Content-Type |
application/json |
Defines the response format. |
Content-Length |
<n> |
The content length value varies for each response. |
Date |
<Date time Stamp> |
Date time stamp of receiving the response. |
6.2.3. Method Type
Method Type |
GET |
6.2.4. Request Payload Description
The request payload is provided as JSON objects with the following attributes:
N/A
6.2.5. Response Payload Description
The response payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
|||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
transactionID |
String |
Mandatory |
|||||||||||||||||||||||||||||||||||||||
resultCode |
Int |
Optional |
|||||||||||||||||||||||||||||||||||||||
resultMessage |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||
opCompletionTimestamp |
XMLGregorianCalendar |
Mandatory |
|||||||||||||||||||||||||||||||||||||||
deviceProfileId |
String |
Optional |
|||||||||||||||||||||||||||||||||||||||
networkResponse |
List<NetworkResponse> NetworkResponse
|
Optional |
|||||||||||||||||||||||||||||||||||||||
activeProfile |
ActiveProfile |
Optional |
6.2.6. Sample Request
GET /AerAdmin_WS_5_0/rest/devices/network/details?accountID=1&ICCID=89185000170713952459&email=youremail@yourcompany.com&apiKey=<apiKey>
or in the Browser URL:
https://aeradminapi.aeris.com/AerAdmin_WS_5_0/rest/devices/network/details?accountID=1&ICCID=89185000170713952459&email=youremail@yourcompany.com&apiKey=<apiKey>
Sample for Global eSIM:
GET http://aeradminapi-fuse-provd.aeriscloud.com/AerAdmin_WS_5_0/rest/devices/network/details?accountID=11173&EID=89044045817727484800000005605737&email=aerport@aeris.net&apiKey=179492e0-5759-11ea-8bd6-bdc6970f0a68
6.2.7. Sample Response
{
"deviceProfileId": "AER0000011687483",
"transactionID": "1d3912f0-c3d9-11e9-bf88-06eaa7027dac",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2019-08-21T06:01:27.000Z",
"networkResponse": [
{
"ICCID": "89185000150911598873",
"IMSI": "204043396464508",
"IMEI":"353439061100592",
"MDN": "11838557967",
"MSISDN": "11835304613",
"dataSession": {
"ipAddress" : "10.226.6.200",
"serviceType" : "UTRAN 3G / GERAN 2G",
"lastStartTime": "2019-08-20T12:28:56.000Z"
},
"registration": {
"isRegistered": true,
"lastInactiveTime" : "2019-02-25T00:06:51.000Z",
"lastRegistrationTime": "2019-08-21T03:17:38.000Z",
"lastRegistrationLocation": "919810051028",
"lastVoiceMOTime" : "2019-01-28T14:47:24.000Z",
"lastSmsMOTime": "2019-08-19T16:29:21.000Z",
"lastSmsMTTime": "2019-08-19T12:00:34.000Z",
"lastSGSNLocation": "919810451915",
"lastAuthorizationTime": "2019-08-21T05:59:15.000Z"
}
}
],
"activeProfile": {
"ICCID": "89185000150911598873",
"IMSI": "204043396464508",
"IMEI":"353439061100592",
"MDN": "11838557967",
"MSISDN": "11835304613",
"technology": "GSM",
"ipAddress" : "10.226.6.200"
}
}
Sample for Global eSIM:
{
"deviceProfileId": "AER0000017018091",
"transactionID": "dd351500-8401-11ec-960b-ce275ee6a280",
"resultCode": 1187,
"resultMessage": "OK",
"opCompletionTimestamp": "2022-02-02T08:26:56.000Z",
"networkResponse": [
{
"ICCID": "89185003210821000069",
"EID": "89044045817727484800000005605737",
"IMSI": "204043898374225",
"MDN": "11831444606",
"MSISDN": "11831444606",
"dataSession": {
"serviceType": "EUTRAN"
},
"registration": {
"isRegistered": false
}
},
{
"ICCID": "89011701328863055487",
"EID": "89044045817727484800000005605737",
"IMSI": "310170886305548",
"MDN": "882350886305548",
"MSISDN": "882350886305548",
"dataSession": {
"ipAddress": "10.178.181.86",
"serviceType": "LTE",
"lastStartTime": "2022-02-02T05:23:56.000Z"
},
"registration": {
"isRegistered": true,
"lastRegistrationTime": "2022-02-02T06:24:56.000Z"
}
}
],
"activeProfile": {
"ICCID": "89011701328863055487",
"IMSI": "310170886305548",
"MDN": "882350886305548",
"MSISDN": "882350886305548",
"technology": "LTE",
"ipAddress": "10.178.181.86"
}
}
6.3. Single Operation - Change Service Profile
This API is used for changing or updating the service profile of the already provisioned device. However, the new service name must be of the same carrier (device technology and product) as the current service name.
6.3.1. URI
https://<host>/AerAdmin_WS_5_0/rest/devices/serviceprofile?apiKey=<apiKey>
6.3.1.1. Variable Path Parameters
The preceding URI has the following variable path parameters:
Name |
Type |
Description |
NA |
NA |
NA |
6.3.1.2. Query Parameters
The preceding URI has the following query parameters:
Name |
Type |
Constraint |
Description |
apiKey |
String |
Mandatory |
Defines the unique API key that is assigned to the customer account for accessing the API. This API key can be retrieved from the AerPort Portal. |
6.3.2. HTTP Headers
The following standard and custom HTTP headers are supported.
6.3.2.1. Request Headers
HTTP headers available for the request are as follows:
Field Name |
Value |
Constraint |
Accept |
application/json |
Optional |
Content-Type |
application/json |
Mandatory |
Accept-Charset |
utf-8 |
Optional |
6.3.2.2. Response Headers
HTTP headers available for the response are as follows:
Field Name |
Value |
Description |
Content-Type |
application/json |
Defines the response format. |
Content-Length |
<n> |
The content length value varies for each response. |
Date |
<Date time Stamp> |
Date time stamp of receiving the response. |
6.3.3. Method Type
Method Type |
POST |
6.3.4. Request Payload Description
The request payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
Description |
accountID |
String |
Mandatory |
Unique Id of the account, under which the device is provisioned |
String |
Mandatory |
Email Id of the primary user of the account. However, it is not mandatory to be same as defined in AerPort. |
|
deviceProfileId |
String |
Mandatory |
Defines the device profile Id for the intended device. |
newServiceProfile |
String |
Mandatory |
Defines the new service profile name of the device. |
The following attributes are available for Global eSIM:
Attribute Name |
Data Type |
Constraint |
Description |
|||||||||
accountID |
String |
Mandatory |
Unique Id of the account, under which the device is provisioned |
|||||||||
String |
Mandatory |
Email Id of the primary user of the account. However, it is not mandatory to be same as defined in AerPort. |
||||||||||
accessProfiles |
List<AccessProfile> |
Mandatory |
AccessProfile
|
6.3.5. Response Payload Description
The response payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
||||||||||||||||||||||||||||||||||||||||||
transactionID |
String |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
resultCode |
Int |
Optional |
||||||||||||||||||||||||||||||||||||||||||
resultMessage |
String |
Optional |
||||||||||||||||||||||||||||||||||||||||||
opCompletionTimestamp |
XMLGregorianCalendar |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
deviceProfiles |
List<DeviceProfileResponse> DeviceProfileResponse
|
Optional |
6.3.6. Sample Request
POST /AerAdmin_WS_5_0/rest/devices/serviceprofile?apiKey<apiKey>
HTTP/1.1
Host: aeradminapi.aeris.com
Content-Type: application/json
Cache-Control: no-cache
{
"accountID": 1,
"email": "aerport@aeris.net",
"newServiceProfile": "nks123",
"deviceProfileId":"AER0000008338849"
}
Sample for Global eSIM:
{
"accountID": 31758,
"email": "aerport@aeris.net",
"accessProfiles": [
{
"EID": "87878676879797878676878111133305",
"newServiceProfile": "eSIM UMB_SP"
}
]
}
6.3.7. Sample Response
{
"transactionID": "8b8fbed0-f9e5-11e7-83cd-020f44a6d939",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2018-01-15T11:16:37.000Z",
"deviceProfiles": [
{
"ICCID": "89185000160427367458",
"IMSI": "204043396622367",
"MSISDN": "11836148488",
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"newPlanEffectiveDate": null,
"staticIP": null
}
]
}
Sample for Global eSIM:
The EID will be returned in the deviceProfiles response.
The Child service profile will be assigned based on carrier. For example:
- The ATT child service profile will be assigned to an ATT device.
- The Vodafone child service profile will be assigned to a Vodafone device.
{
"transactionID": "902a5c50-0cb2-11ec-85f4-b28b9e4ee770",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2021-09-03T12:29:22.000Z",
"deviceProfiles": [
{
"EID": "87878676879797878676878111133305",
"ICCID": "8966656863127667067",
"IMSI": "204043446055416",
"MSISDN": "11831216277",
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"newPlanEffectiveDate": null,
"staticIP": null
},
{
"EID": "87878676879797878676878111133305",
"ICCID": "8966656863127667066",
"IMSI": "1630513441623",
"MSISDN": "1630513441623",
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"newPlanEffectiveDate": null,
"staticIP": null
}
]
}
6.4. Single Operation - Assign Static IP
This API is used for assigning and removing the static IP to the provisioned device. However, before assigning the static IP you must ensure that static IP is allowed by the service profile.
After assigning or Removing the static IP you can use the Network Location API call to validate the static IP assigned.
6.4.1. URI
https://<host>/AerAdmin_WS_5_0/rest/devices/staticip?apiKey=<apiKey>
6.4.1.1. Variable Path Parameters
The preceding URI has the following variable path parameters:
Name |
Type |
Description |
NA |
NA |
NA |
6.4.1.2. Query Parameters
The preceding URI has the following query parameters:
Name |
Type |
Constraint |
Description |
apiKey |
String |
Mandatory |
Defines the unique API key that is assigned to the customer account for accessing the API. This API key can be retrieved from the AerPort Portal. |
6.4.2. HTTP Headers
The following standard and custom HTTP headers are supported.
6.4.2.1. Request Headers
HTTP headers available for the request are as follows:
Field Name |
Value |
Constraint |
Accept |
application/json |
Optional |
Content-Type |
application/json |
Mandatory |
Accept-Charset |
utf-8 |
Optional |
6.4.2.2. Response Headers
HTTP headers available for the response are as follows:
Field Name |
Value |
Description |
Content-Type |
application/json |
Defines the response format. |
Content-Length |
<n> |
The content length value varies for each response. |
Date |
<Date time Stamp> |
Date time stamp of receiving the response. |
6.4.3. Method Type
Method Type |
POST |
6.4.4. Request Payload Description
The request payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
Description |
accountID |
String |
Mandatory |
Unique Id of the account, under which the device is provisioned |
String |
Mandatory |
Email Id of the primary user of the account. However, it is not mandatory to be same as defined in AerPort. |
|
deviceProfileId |
String |
Mandatory |
Defines the device profile Id for the intended device. |
ipChange |
String |
Mandatory |
Defines the one of the following values to assign or remove the static IP:
|
6.4.5. Response Payload Description
The response payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
||||||||||||||||||||||||||||||||||||||||||
transactionID |
String |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
resultCode |
Int |
Optional |
||||||||||||||||||||||||||||||||||||||||||
resultMessage |
String |
Optional |
||||||||||||||||||||||||||||||||||||||||||
opCompletionTimestamp |
XMLGregorianCalendar |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
deviceProfiles |
List<DeviceProfileResponse> DeviceProfileResponse
|
Optional |
6.4.6. Sample Request
POST /AerAdmin_WS_5_0/rest/devices/staticip?apiKey<apiKey>
HTTP/1.1
Host: aeradminapi.aeris.com
Content-Type: application/json
Cache-Control: no-cache
{
"accountID": 1,
"email": "aerport@aeris.net",
"ipChange": "ASSIGN",
"deviceProfileId":"AER0000008338849"
}
6.4.7. Sample Response
{
"transactionID": "81402f10-fb42-11e7-83cd-020f44a6d939",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2018-01-17T04:54:31.000Z",
"networkResponse": [
{
"ICCID": "89185000160427367458",
"IMSI": "204043396622367",
"EID": "89001012012341004012345678999000",
"MDN": "11836148488",
"MSISDN": "11836148488",
"dataSession": {
"ipAddress": "10.112.6.193",
"apn": "aer07.aerisapn.net"
},
"registration": {
"isRegistered": false,
"lastRegistrationTime": "2018-01-15T11:46:09.000Z",
"lastAuthorizationTime": "2018-01-15T11:46:09.000Z"
}
}
]
}
6.5. Single Operation - Change Rate Plan
This API is used for changing the rate plan of the provisioned device. While updating the rate plan you can also define POOL and Effective date values as follows:
- newPoolName: This field is optional. If this field is not provided, the device will be a part of pool, automatically, based on the rate plan specification. It is recommended not to use this field in the request payload to avoid unexpected errors. However, to use this field you must define the pool name as defined for the rate plan.
- ratePlanEffectiveDate: You can define any date, which should be greater than the current date. The activation date for the new rate plan depends on following scenarios:
Rate Plan Effective Date\ ECRP* Status of Account |
ECRP* Enabled A/C |
ECRP* Not Enabled A/C |
Effective date is within Current Bill Cycle |
New rate plan is applicable from the start date of current bill cycle. |
New rate plan is applicable from the start date of upcoming bill cycle. |
Effective date is Outside Current Bill Cycle |
New rate plan is applicable from the start date of the bill cycle in which the effective date falls. |
New rate plan is applicable from the start date of the subsequent bill cycle in which the effective date falls. |
* ECRP = End of Cycle Rate Plan adjustment
For Fusion NA devices:
- ECRP is not enabled.
- The Rate Plan should have same RAT_Type as in the Service Profile. Otherwise error code 1503 will be returned.
6.5.1. URI
https://<host>/AerAdmin_WS_5_0/rest/devices/rateplan?apiKey=<apiKey>
6.5.1.1. Variable Path Parameters
The preceding URI has the following variable path parameters:
Name |
Type |
Description |
NA |
NA |
NA |
6.5.1.2. Query Parameters
The preceding URI has the following query parameters:
Name |
Type |
Constraint |
Description |
apiKey |
String |
Mandatory |
Defines the unique API key that is assigned to the customer account for accessing the API. This API key can be retrieved from the AerPort Portal. |
6.5.2. HTTP Headers
The following standard and custom HTTP headers are supported.
6.5.2.1. Request Headers
HTTP headers available for the request are as follows:
Field Name |
Value |
Constraint |
Accept |
application/json |
Optional |
Content-Type |
application/json |
Mandatory |
Accept-Charset |
utf-8 |
Optional |
6.5.2.2. Response Headers
HTTP headers available for the response are as follows:
Field Name |
Value |
Description |
Content-Type |
application/json |
Defines the response format. |
Content-Length |
<n> |
The content length value varies for each response. |
Date |
<Date time Stamp> |
Date time stamp of receiving the response. |
6.5.3. Method Type
Method Type |
POST |
6.5.4. Request Response Classes
Request Class |
Response Class |
UpdateDeviceProfileRequest |
UpdateDeviceResponse |
6.5.5. Request Payload Description
The request payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
Description |
accountID |
String |
Mandatory |
Unique Id of the account, under which the device is provisioned |
String |
Mandatory |
Email Id of the primary user of the account. However, it is not mandatory to be same as defined in AerPort. |
|
deviceProfileId |
String |
Mandatory |
Defines the device profile Id for the intended device. |
newRatePlan |
String |
Mandatory |
Defines the new rate plan for the device. |
newPoolName |
String |
Optional |
Defines the pool name to which the rate plan belongs or specify No Pool to avoid the device be a part of pool. See API description for details. |
ratePlanEffectiveDate |
String |
Mandatory |
Defines the effective date of the new rate plan. See API description for details. |
6.5.6. Response Payload Description
The response payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
||||||||||||||||||||||||||||||||||||||||||
transactionID |
String |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
resultCode |
Int |
Optional |
||||||||||||||||||||||||||||||||||||||||||
resultMessage |
String |
Optional |
||||||||||||||||||||||||||||||||||||||||||
opCompletionTimestamp |
XMLGregorianCalendar |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
deviceProfiles |
List<DeviceProfileResponse> DeviceProfileResponse
|
Optional |
6.5.7. Sample Request
POST /AerAdmin_WS_5_0/rest/devices/rateplan?apiKey<apiKey>
HTTP/1.1
Host: aeradminapi.aeris.com
Content-Type: application/json
Cache-Control: no-cache
{
"accountID":1,
"email": "aerport@aeris.net",
"accessProfiles":[
{
"technology":"LTE",
"ICCID":"89011702272024787985",
"newRatePlan": "NA_TRIAL_90DAY_5MB_ALH",
"ratePlanEffectiveDate": "09-01-2020"
}
]
}
Sample for Global eSIM:
{
"accountID": 31758,
"email": "aerport@aeris.net",
"accessProfiles": [
{
"EID": "87878676879797878676878111133305",
"newRatePlan": "AER_GLOBESIM_UMB_99991",
"ratePlanEffectiveDate": "09-10-2021"
}
]
}
6.5.8. Sample Response
{
"transactionID": "b3cca600-dbf7-11ea-8d7e-7e9721c4ba1c",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2020-08-11T17:25:52.000Z",
"deviceProfiles": [
{
"ICCID": "89011702272024787985",
"IMSI": "310170202478798",
"MSISDN": "882350202478798",
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"newPlanEffectiveDate": "09-01-2020",
"staticIP": null
}
]
}
Sample for Global eSIM:
The EID will be returned in the deviceProfiles response.
The Child rate plan will be assigned based on carrier. For example:
- The ATT child rate plan will be assigned to an ATT device.
- The Vodafone child rate plan will be assigned to a Vodafone device.
{
"transactionID": "902a5c50-0cb2-11ec-85f4-b28b9e4ee770",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2021-09-03T12:29:22.000Z",
"deviceProfiles": [
{
"EID": "87878676879797878676878111133305",
"ICCID": "8966656863127667067",
"IMSI": "204043446055416",
"MSISDN": "11831216277",
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"newPlanEffectiveDate": "09-10-2021",
"staticIP": null
},
{
"EID": "87878676879797878676878111133305",
"ICCID": "8966656863127667066",
"IMSI": "1630513441623",
"MSISDN": "1630513441623",
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"newPlanEffectiveDate": "09-10-2021",
"staticIP": null
}
]
}
6.6. Single Operation - Update Traffic Policy
This API is used to block\unblock services which are applicable to the provisioned device as per its service profile.
6.6.1. URI
https://<host>/AerAdmin_WS_5_0/rest/devices/trafficpolicy?apiKey=<apiKey>
6.6.1.1. Variable Path Parameters
The preceding URI has the following variable path parameters:
Name |
Type |
Description |
NA |
NA |
NA |
6.6.1.2. Query Parameters
The preceding URI has the following query parameters:
Name |
Type |
Constraint |
Description |
apiKey |
String |
Mandatory |
Defines the unique API key that is assigned to the customer account for accessing the API. This API key can be retrieved from the AerPort Portal. |
6.6.2. HTTP Headers
The following standard and custom HTTP headers are supported.
6.6.2.1. Request Headers
HTTP headers available for the request are as follows:
Field Name |
Value |
Constraint |
Accept |
application/json |
Optional |
Content-Type |
application/json |
Mandatory |
Accept-Charset |
utf-8 |
Optional |
6.6.2.2. Response Headers
HTTP headers available for the response are as follows:
Field Name |
Value |
Description |
Content-Type |
application/json |
Defines the response format. |
Content-Length |
<n> |
The content length value varies for each response. |
Date |
<Date time Stamp> |
Date time stamp of receiving the response. |
6.6.3. Method Type
Method Type |
POST |
6.6.4. Request Payload Description
The request payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
Description |
accountID |
String |
Mandatory |
Unique Id of AerPort account, under which the device is provisioned |
String |
Mandatory |
Email Id of the primary user of the account. However, it is not mandatory to be same as defined in AerPort. |
|
deviceProfileId |
String |
Mandatory |
Defines the device profile Id for the intended device. |
blockTraffic |
List String |
Mandatory |
Defines the list of traffic to be blocked. You can one of following formats:
|
unblockTraffic |
List String |
Mandatory |
Defines the list of traffic to be unblocked. You can one of following formats:
|
6.6.5. Response Payload Description
The response payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
||||||||||||||||||||||||||||||||||||||||||
transactionID |
String |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
resultCode |
Int |
Optional |
||||||||||||||||||||||||||||||||||||||||||
resultMessage |
String |
Optional |
||||||||||||||||||||||||||||||||||||||||||
opCompletionTimestamp |
XMLGregorianCalendar |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
deviceProfiles |
List<DeviceProfileResponse> DeviceProfileResponse
|
Optional |
6.6.6. Sample Request
POST /AerAdmin_WS_5_0/rest/devices/trafficpolicy?apiKey<apiKey>
HTTP/1.1
Host: aeradminapi.aeris.com
Content-Type: application/json
Cache-Control: no-cache
{
"accountID": 1,
"email": "aerport@aeris.net",
"deviceProfileId":"AER0000008338833",
"blockTraffic":["Packet","SMS","Voice"],
"unblockTraffic":[]
}
Sample for Global eSIM:
{
"accountID":1,
"email":"aerport@aeris.net",
"deviceProfileId":"AER0000016778795",
"blockTraffic":[
"All"
],
"unblockTraffic":[
]
}
6.6.7. Sample Response
{
"transactionID": "77a592a0-fcfb-11e7-83cd-020f44a6d939",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2018-01-19T09:31:03.000Z",
"deviceProfiles": [
{
"ICCID": "89185013121700006671",
"IMSI": "204043396000768",
"MSISDN": "11836420325",
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"newPlanEffectiveDate": null,
"staticIP": null
}
]
}
Sample for Global eSIM:
The API looks up the EID based on the deviceProfileId and applies the same traffic policy to the devices with the same EID.
The EID will be part of the response payload in each of the deviceProfiles.
{
"transactionID": "e6933de0-fc73-11eb-ac2c-f6b06e9d8a05",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2021-08-13T20:20:29.000Z",
"deviceProfiles": [
{
"EID": "87878676879797878676878111133307",
"ICCID": "8966656863127667066",
"IMSI": "204043446055415",
"MSISDN": "11831216204",
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"newPlanEffectiveDate": null,
"staticIP": null
},
{
"EID": "87878676879797878676878111133307",
"ICCID": "8966656863127667067",
"IMSI": "1628868720974",
"MSISDN": "1628868720974",
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"newPlanEffectiveDate": null,
"staticIP": null
}
]
}
6.7. Single Operation - Update Device State
This API is used to update the device status to Cancel or Suspend. Remember, the suspended device is still active on the network but the cancelled device gets removed from the network.
6.7.1. URI
https://<host>/AerAdmin_WS_5_0/rest/devices/state?apiKey=<apiKey>
6.7.1.1. Variable Path Parameters
The preceding URI has the following variable path parameters:
Name |
Type |
Description |
NA |
NA |
NA |
6.7.1.2. Query Parameters
The preceding URI has the following query parameters:
Name |
Type |
Constraint |
Description |
apiKey |
String |
Mandatory |
Defines the unique API key that is assigned to the customer account for accessing the API. This API key can be retrieved from the AerPort Portal. |
6.7.2. HTTP Headers
The following standard and custom HTTP headers are supported.
6.7.2.1. Request Headers
HTTP headers available for the request are as follows:
Field Name |
Value |
Constraint |
Accept |
application/json |
Optional |
Content-Type |
application/json |
Mandatory |
Accept-Charset |
utf-8 |
Optional |
6.7.2.2. Response Headers
HTTP headers available for the response are as follows:
Field Name |
Value |
Description |
Content-Type |
application/json |
Defines the response format. |
Content-Length |
<n> |
The content length value varies for each response. |
Date |
<Date time Stamp> |
Date time stamp of receiving the response. |
6.7.3. Method Type
Method Type |
POST |
6.7.4. Request Payload Description
The request payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
Description |
accountID |
String |
Mandatory |
Unique Id of the account, under which the device is provisioned |
String |
Mandatory |
Email Id of the primary user of the account. However, it is not mandatory to be same as defined in AerPort. |
|
deviceProfileId |
String |
Mandatory |
Defines the device profile Id for the intended device. |
stateChange |
String |
Mandatory |
Defines the new state operation to be performed on the device. You can have one of the following values:
|
cancelCode |
Integer |
Mandatory |
Defines the cancellation code to provide reason, if you have opted to cancel the device. You can give one of the following values:
|
The following attributes are available for Global eSIM:
Attribute Name |
Data Type |
Constraint |
Description |
|||||||||
accountID |
String |
Mandatory |
Unique Id of the account, under which the device is provisioned |
|||||||||
String |
Mandatory |
Email Id of the primary user of the account. However, it is not mandatory to be same as defined in AerPort. |
||||||||||
accessProfiles |
List<AccessProfile> |
Mandatory |
AccessProfile
|
6.7.5. Response Payload Description
The response payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
||||||||||||||||||||||||||||||||||||||||||
transactionID |
String |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
resultCode |
Int |
Optional |
||||||||||||||||||||||||||||||||||||||||||
resultMessage |
String |
Optional |
||||||||||||||||||||||||||||||||||||||||||
opCompletionTimestamp |
XMLGregorianCalendar |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
deviceProfiles |
List<DeviceProfileResponse> DeviceProfileResponse
|
Optional |
6.7.6. Sample Request
POST /AerAdmin_WS_5_0/rest/devices/state?apiKey<apiKey>
HTTP/1.1
Host: aeradminapi.aeris.com
Content-Type: application/json
Cache-Control: no-cache
{
"accountID": 1,
"email": "aerport@aeris.net",
"deviceProfileId":"AER0000008338833",
"stateChange": "CANCEL",
"cancelCode":1
}
Sample for Global eSIM:
"accountID": "31758",
"email": "aerport@aeris.net",
"accessProfiles": [
{
"EID": "87878676879797878676878111133292",
"stateChange": "CANCEL"
}
]
}
6.7.7. Sample Response
{
"transactionID": "056a4f50-fd00-11e7-83cd-020f44a6d939",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2018-01-19T10:03:44.000Z",
"deviceProfiles": [
{
"ICCID": "89185013121700006671",
"IMSI": "204043396000768",
"MSISDN": "11836420325",
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"newPlanEffectiveDate": null,
"staticIP": null
}
]
}
Sample for Global eSIM:
{
"transactionID": "0523cec0-d396-11eb-af30-c2cf0cdec356",
"resultCode": 1187,
"resultMessage": "MultiMode Provision Error",
"opCompletionTimestamp": "2021-06-22T20:11:25.000Z",
"deviceProfiles": [
{
"ICCID": "8966656363127667050",
"result": {
"resultCode": 1047,
"resultMessage": "Device not Activated."
},
"newPlanEffectiveDate": null,
"staticIP": null
},
{
"ICCID": "8966656363127667049",
"result": {
"resultCode": 1047,
"resultMessage": "Device not Activated."
},
"newPlanEffectiveDate": null,
"staticIP": null
}
]
}
6.8. Single Operation - Update Device Attributes
This API is used to update the following device attributes:
- Device Name
- Current Location
- Report Group
- Application Type
- Agent Type
- Device Hardware Version
- Device Firmware Version
- Custom Field 1
- Custom Field 2
- Custom Field 3
- Custom Field 4
- Custom Field 5
6.8.1. URI
https://<host>/AerAdmin_WS_5_0/rest/devices/attributes?apiKey<apiKey>
6.8.1.1. Variable Path Parameters
The preceding URI has the following variable path parameters:
Name |
Type |
Description |
NA |
NA |
NA |
6.8.1.2. Query Parameters
The preceding URI has the following query parameters:
Name |
Type |
Constraint |
Description |
apiKey |
String |
Mandatory |
Defines the unique API key that is assigned to the customer account for accessing the API. This API key can be retrieved from the AerPort Portal. |
6.8.2. HTTP Headers
The following standard and custom HTTP headers are supported.
6.8.2.1. Request Headers
HTTP headers available for the request are as follows:
Field Name |
Value |
Constraint |
Accept |
application/json |
Optional |
Content-Type |
application/json |
Mandatory |
Accept-Charset |
utf-8 |
Optional |
6.8.2.2. Response Headers
HTTP headers available for the response are as follows:
Field Name |
Value |
Description |
Content-Type |
application/json |
Defines the response format. |
Content-Length |
<n> |
The content length value varies for each response. |
Date |
<Date Time Stamp> |
Date time stamp of receiving the response. |
6.8.3. Method Type
Method Type |
POST |
6.8.4. Request Payload Description
The request payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
Description |
|||||||||
accountID |
Integer |
Mandatory |
Unique Id of the account, under which the device is provisioned |
|||||||||
String |
Mandatory |
Email Id of the primary user of the account. However, it is not mandatory to be same as defined in AerPort. |
||||||||||
deviceProfileId |
String |
Mandatory |
Defines the device profile Id for the intended device. |
|||||||||
deviceName |
String |
Optional |
Defines any user friendly name of the device. The device name must be 24 characters or less in length. |
|||||||||
currentLocation |
String |
Optional |
Defines the current location of the device. For example Home, Office, and so on. This field has a limit of 30 characters. |
|||||||||
accessProfiles | List<AccessProfile> | Mandatory |
AccessProfile
|
|||||||||
reportGroup |
Integer |
Optional |
The report group field can be useful to classify and group devices in reports, for example in end of month billing summaries. A report group can contain up to 10,000 devices and there can be up to 256 unique report groups. The value of a report group cannot be greater than 2147483647. If a report group is not specified, your device will be assigned to group 0 by default. |
|||||||||
applicationType |
String |
Optional |
The application type is an attribute that is used to assist in troubleshooting problematic devices.
|
|||||||||
agentId |
String |
Optional |
Specifies the sales agent Id for capturing and tracking the devices belong to individual sales representative or Sales Agents. |
|||||||||
deviceHardwareVersion |
String |
Optional |
This is an optional field that allows you to track your device's hardware version. The hardware version field has a limit of 20 characters. |
|||||||||
deviceFirmwareVersion |
String |
Optional |
This is an optional field that allows you to track your device's firmware version. The firmware version field has a limit of 20 characters |
|||||||||
customField |
Data String |
Optional |
These are optional fields that allow you to track additional information of your device. Each custom attribute fields can have maximum 64 characters.
|
6.8.5. Response Payload Description
The response payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Description |
||||||||||||||||||||||||||||||||||||||||||
transactionID |
String |
Defines a unique transaction ID of the API request for logging purpose. In case, the request remains pending or unexpected error occurs then this transaction Id can be used to fetch detailed information about API request to get latest status of the API call or troubleshoot the issue. |
||||||||||||||||||||||||||||||||||||||||||
resultCode |
Int |
Defines the HTTP code to define status of the API request. |
||||||||||||||||||||||||||||||||||||||||||
resultMessage |
String |
Defines the user-friendly message as part of API response. |
||||||||||||||||||||||||||||||||||||||||||
opCompletionTimestamp |
XMLGregorianCalendar |
Defines the completion time stamp of the API request. |
||||||||||||||||||||||||||||||||||||||||||
deviceProfiles |
List<DeviceProfileResponse> DeviceProfileResponse
|
Defines the detailed provisioning information about the device. |
6.8.6. Sample Requests
POST /AerAdmin_WS_5_0/rest/devices/attributes?apiKey<apiKey>
HTTP/1.1
Host: aeradminapi.aeris.com
Content-Type: application/json
Cache-Control: no-cache
{
"customField": {
"customField1": "F1 API",
"customField2": "F2 API",
"customField3": "F3 API",
"customField4": "F4 API",
"customField5": "F5 API"
},
"deviceName": "Test Update from API",
"currentLocation": "API",
"reportGroup": 4,
"applicationType": "Mobile",
"agentId": null,
"deviceHardwareVersion": "Hw5.00",
"deviceFirmwareVersion": "Fw6.02",
"accountID": 1,
"email": "xxxx@aeris.net",
"deviceProfileId": "AER0000009951514"
}
Sample for Global eSIM:
{
"accountID": "1",
"email": "aerport@aeris.net",
"currentLocation": "12345678901234567890123456786",
"accessProfiles": [
{
"technology": "LTE",
"EID": "89001012012341004012345678999002"
}
]
}
6.8.7. Sample Responses
{
"transactionID": "941c5640-f9fc-11e8-9623-0675322570f0",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2018-12-07T08:46:24.000Z",
"deviceProfiles": [
{
"ICCID": "89185000160427367458",
"IMSI": "204043396622367",
"MSISDN": "11837072836",
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"newPlanEffectiveDate": null,
"staticIP": null
}
]
}
Sample for Global eSIM:
{
"transactionID" : "76af8500-273f-11ec-94c1-26717f40de1b",
"resultCode" : 0,
"resultMessage" : "OK",
"opCompletionTimestamp" : "2021-10-07T07:23:28.000Z",
"deviceProfiles" : [ {
"ICCID" : "89011702272024535608",
"EID" : "89001012012341004012345678999002",
"IMSI" : "310170202453560",
"MSISDN" : "1633539584383",
"result" : {
"resultCode" : 0,
"resultMessage" : "OK"
},
"newPlanEffectiveDate" : null,
"staticIP" : null
}, {
"ICCID" : "89185000190820001081",
"EID" : "89001012012341004012345678999002",
"IMSI" : "204043898000107",
"MSISDN" : "11831288036",
"result" : {
"resultCode" : 0,
"resultMessage" : "OK"
},
"newPlanEffectiveDate" : null,
"staticIP" : null
} ]
}
6.9. Single Operation - Provision Device
This API is used to a provision and re-provision a device on Aeris network. You can also defines the initial state of the device as Provision and Bill.
6.9.1. URI
https://<host>/AerAdmin_WS_5_0/rest/devices/provision?apiKey=<apiKey>
6.9.1.1. Variable Path Parameters
The preceding URI has the following variable path parameters:
Name |
Type |
Description |
NA |
NA |
NA |
6.9.1.2. Query Parameters
The preceding URI has the following query parameters:
Name |
Type |
Constraint |
Description |
apiKey |
String |
Mandatory |
Defines the unique API key that is assigned to the customer account for accessing the API. This API key can be retrieved from the AerPort Portal. |
6.9.2. HTTP Headers
The following standard and custom HTTP headers are supported.
6.9.2.1. Request Headers
HTTP headers available for the request are as follows:
Field Name |
Value |
Constraint |
Accept |
application/json |
Optional |
Content-Type |
application/json |
Mandatory |
Accept-Charset |
utf-8 |
Optional |
6.9.2.2. Response Headers
HTTP headers available for the response are as follows:
Field Name |
Value |
Description |
Content-Type |
application/json |
Defines the response format. |
Content-Length |
<n> |
The content length value varies for each response. |
Date |
<Date time Stamp> |
Date time stamp of receiving the response. |
6.9.3. Method Type
Method Type |
POST |
6.9.4. Request Payload Description
The request payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
Description |
||||||||||||||||||||||||||||||||||||
accountID |
String |
Mandatory |
Unique Id of the account, under which the device need to be provisioned. |
||||||||||||||||||||||||||||||||||||
productId |
Integer |
Optional |
Defines the product Id of SIM being provisioned. You can use one of following values, as assigned to your account:
|
||||||||||||||||||||||||||||||||||||
String |
Mandatory |
Email Id of the primary user of the account. However, it is not mandatory to be same as defined in AerPort. |
|||||||||||||||||||||||||||||||||||||
startBilling |
Boolean |
Optional |
Defines the initial state of the device being provisioned.
|
||||||||||||||||||||||||||||||||||||
deviceName |
String |
Optional |
Defines any user friendly name of the device. The device name must be 24 characters or less in length. |
||||||||||||||||||||||||||||||||||||
currentLocation |
String |
Optional |
Defines the current location of the device. For example Home, Office, and so on. This field has a limit of 30 characters. |
||||||||||||||||||||||||||||||||||||
applicationType |
String |
Mandatory |
The application type is is used to assist in troubleshooting problematic devices. Mobile suggests that your device is physically mobile and moves from location to location as part of normal operation. Fixed suggests that your device does not move from one location to another as part of normal operation, for example, if the device is fixed to a power source. If your device is mobile, enter M If your device is fixed, enter F |
||||||||||||||||||||||||||||||||||||
deviceFirmwareVersion |
String |
Optional |
Allows you to track your device's firmware version. The firmware version field has a limit of 20 characters. |
||||||||||||||||||||||||||||||||||||
deviceHardwareVersion |
String |
Optional |
Allows you to track device's hardware version. The hardware field has a limit of 20 characters. |
||||||||||||||||||||||||||||||||||||
agentId |
String |
Optional |
Allows you to define an ID if the device is related to specific sales channel. |
||||||||||||||||||||||||||||||||||||
customAttributes |
List<CustomAttribute> CustomAttibute
|
Optional |
Custom attributes allow you to track additional device information in up to 5 separate custom fields. You can define the value of attributeName field as of one or more of the follows:
The attributeValue field can have any user defined text up to 20 characters. |
||||||||||||||||||||||||||||||||||||
serialNumber |
String |
Optional |
Allows you to track your device's serial number. |
||||||||||||||||||||||||||||||||||||
imei |
String |
Optional |
Allows you to track your device's IMEI. |
||||||||||||||||||||||||||||||||||||
accessProfiles |
List<AccessProfile> AccessProfile
|
Mandatory |
6.9.5. Response Payload Description
The response payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
||||||||||||||||||||||||||||||||||||||||||
transactionID |
String |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
resultCode |
Int |
Optional |
||||||||||||||||||||||||||||||||||||||||||
resultMessage |
String |
Optional |
||||||||||||||||||||||||||||||||||||||||||
opCompletionTimestamp |
XMLGregorianCalendar |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
deviceProfiles |
List<DeviceProfileResponse> DeviceProfileResponse
|
Optional |
6.9.6. Sample Requests
POST /AerAdmin_WS_5_0/rest/devices/state?provision<apiKey>
HTTP/1.1
Host: aeradminapi.aeris.com
Content-Type: application/json
Cache-Control: no-cache
{
"accountID": 11173,
"email": "aerport@aeris.net",
"productId": 2,
"applicationType": "M",
"startBilling": true,
"customAttributes": [{
"attributeName": "customField1",
"attributeValue": "C1"
},
{
"attributeName": "customField2",
"attributeValue": "C2"
},
{
"attributeName": "customField3",
"attributeValue": "C3"
},
{
"attributeName": "customField4",
"attributeValue": "C4"
},
{
"attributeName": "customField5",
"attributeValue": "C5"
}],
"accessProfiles": [{
"technology": "GSM",
"ICCID": "89918000817970000047",
"ratePlan": "rpGSM",
"serviceProfile": "testafGSM"
}],
"provisionProfile": {
"reportGroup": 0
}
}
Sample for Global eSIM:
When you provision an eSIM using product ID 43, both profiles on the device are provisioned.
{
"accountID":"11173",
"email":"aerport@aeris.net",
"productId":43,
"applicationType":"M",
"startBilling":false,
"customAttributes":[
{
"attributeName":"customField1",
"attributeValue":""
},
{
"attributeName":"customField2",
"attributeValue":""
},
{
"attributeName":"customField3",
"attributeValue":""
},
{
"attributeName":"customField4",
"attributeValue":""
},
{
"attributeName":"customField5",
"attributeValue":""
}
],
"tags":"",
"serialNumber":"",
"accessProfiles":[
{
"technology":null,
"EID":"89044045817727484800000005605737",
"ratePlan":"AER_GLOBSIM_83693",
"serviceProfile":"esimjirae",
"assignStaticIp":true
}
],
"provisionProfile":{
"reportGroup":0
}
}
6.9.7. Sample Responses
{
"transactionID": "4dadb620-fd15-11e7-83cd-020f44a6d939",
"resultCode": 0,
"resultMessage": "OK",
"opCompletionTimestamp": "2018-01-19T12:36:01.000Z",
"deviceProfileId": "AER0000008338945",
"deviceProfiles": [
{
"result": {
"resultCode": 0,
"resultMessage": "OK"
},
"ICCID": "89918000817970000047",
"IMSI": "405800970000007",
"MSISDN": "11836420334",
"IMEI":"310170207733033",
"technology": "GSM",
"profileAttributes": [
{
"attributeName": "ALT_MSISDN"
}
]
}
]
}
Sample for Global eSIM:
{
"transactionID" : "f9dc66f0-84b9-11ec-8a55-5aef13c409fa",
"resultCode" : 0,
"resultMessage" : "OK",
"opCompletionTimestamp" : "2022-02-03T06:24:53.000Z",
"deviceProfileId" : "AER0000017034814",
"deviceProfiles" : [ {
"result" : {
"resultCode" : 0,
"resultMessage" : "OK"
},
"ICCID" : "89185003210821000069",
"EID" : "89044045817727484800000005605737",
"IMSI" : "204043898374225",
"MSISDN" : "11831446776",
"technology" : "LTE",
"staticIP" : "10.152.0.38",
"profileAttributes" : [ ]
}, {
"result" : {
"resultCode" : 0,
"resultMessage" : "OK"
},
"ICCID" : "89011701328863055487",
"EID" : "89044045817727484800000005605737",
"IMSI" : "310170886305548",
"MSISDN" : "1643869490616",
"technology" : "LTE",
"staticIP" : "10.188.0.1",
"profileAttributes" : [ ]
} ]
}
6.10. Bulk Operation - Bulk Device Provision
This API is used to a provision and re-provision more than one device (BULK Provision) at a time on Aeris network. This API allows you to attach a CSV file with all relevant information to provision the devices. Each line of the CSV contains different device details.
6.10.1. URI
https://aeradminapi.aeris.com/AerAdmin_WS_5_0/rest/<AccountID>/bulk-operation?apiKey=<apiKey>
6.10.1.1. Variable Path Parameters
The preceding URI has the following variable path parameters:
Name |
Type |
Description |
AccountID |
Int |
Defines the account Id of customer account, as visible on the AerPort portal. |
6.10.1.2. Query Parameters
The preceding URI has the following query parameters:
Name |
Type |
Constraint |
Description |
apiKey |
String |
Mandatory |
Defines the unique API key that is assigned to the customer account for accessing the API. This API key can be retrieved from the AerPort Portal. |
6.10.2. HTTP Headers
The following standard and custom HTTP headers are supported.
6.10.2.1. Request Headers
HTTP headers available for the request are as follows:
Field Name |
Value |
Constraint |
Accept |
application/json |
Optional |
Content-Type |
application/json |
Mandatory |
Accept-Charset |
utf-8 |
Optional |
Email id of the user performing the operation |
Mandatory |
|
templateType |
Specify template type as REGISTRATION only. This value is case sensitive. |
Mandatory |
6.10.2.2. Response Headers
HTTP headers available for the response are as follows:
Field Name |
Value |
Description |
Content-Type |
application/json |
Defines the response format. |
Content-Length |
<n> |
The content length value varies for each response. |
Date |
<Date time Stamp> |
Date time stamp of receiving the response. |
6.10.3. Method Type
Method Type |
POST |
6.10.4. Request Payload Description
The request payload is provided as form-data by uploading the CSV file that contain details of the devices being provisioned
Key |
Constraint |
Value |
file |
Mandatory |
Specifies the CSV file path from your local system containing the details of devices being provisioned. |
Before uploading the CSV file, ensure that all fields for the different devices are specified properly because all fields of the CSV get validated and in case of any error the entire process is rolled back by the system. Therefore, it is necessary to understand the CSV file template and provide appropriate value in each field.
Click here to download a sample CSV file.
All fields of the CSV file are explained as follows:
Fields Name |
Constraint |
Description |
---|---|---|
operation |
Mandatory |
You can specify one of the following values:
|
productId |
Optional |
You can leave this field blank. Optionally, you can specify one of the following values:
|
deviceName |
Optional |
Allows you to specify a unique name to your device's profile. The device name has a 24 character limit. |
agentId |
Optional |
Specify agentId if you have one from your sales team, else leave this field blank. |
startBilling |
Mandatory |
Specify FALSE always because the billing status is already is specified in the operation (PROVISION, ACTIVATION, or REPROVISION) field. |
provisionProfile |
Not Applicable |
Leave this field blank, since this filed is used internally by the system. |
ratePlan |
Mandatory |
Specify the rate plan Label for device billing purpose. The rate plan label must be exactly same as it is presented on your account information page (Quicklinks → View current account details). Also, ensure that the rate plan is valid for the specified Product ID. The Rate Plan Name must NOT be used in this field. Always use the Rate Plan Label in this field. |
serviceProfile |
Mandatory |
Specify the service profile Name, which identifies the network services your device can access. The service profile name must be exactly same as it is presented on your account information page (Quicklinks → View current account details). Also, eEnsure that the service is valid for the specified Product ID. |
AssignStaticIP |
Optional |
Specify TRUE to assign a static IP to the device, and FALSE otherwise. The default value is FALSE. You can only assign a Static IP if it is included in the device's service profile and can only be done by prior arrangement with the Operator. |
containerId |
Not Applicable |
Leave this field blank since this field is used internally by the system. |
dataModelId |
Not Applicable |
Leave this field blank since this field is used internally by the system. |
reportGroup |
Optional |
The report group is used to classify and group devices in reports. The value of the report group cannot be greater than 2147483647. A report group can contain up to 10,000 devices and there can be up to 256 unique report groups. If a report group is not specified, your device gets assigned to group 0, by default. |
enableOnAerisIOT |
Not Applicable |
Leave this field blank since this field is used internally by the system. |
currentLocation |
Optional |
Allows you to specify your device's current location. The current location field has a limit of 30 characters. |
applicationType |
Optional |
Specify M, If your device is mobile, this is default value if the field is left blank. Specify F, If your device is fixed. The application type is is used to assist in troubleshooting problematic devices. Mobile suggests that your device can move from one physical location to another as part of normal operation. Fixed suggests that your device does not move from one location to another as part of normal operation, for example, if the device is fixed to a power source. |
FirmwareVersion |
Optional |
Specifies the firmware version of the device. If not available, leave it blank. The firmware version field has a limit of 20 characters. |
HardwareVersion |
Optional |
Specifies the hardware version of the device. If not available, leave it blank. The hardware field has a limit of 20 characters. |
tags |
Optional |
Leave this field blank since this field is used internally by the system. |
serialNumber |
Optional |
Specifies the serial number of your device. If not available, leave it blank. |
imei |
Optional |
Specifies the IMEI number of the device. If not available, leave it blank. |
AccessProfile1Technology |
Mandatory |
Specify the technology of the device you are provisioning, which can be one of the following:
|
AccessProfile1IDType |
Mandatory |
Specifies the corresponding identifier of the device based on the technology.
|
AccessProfile1ID |
Mandatory |
Specify the actual device identifier of the device being provisioned. This is a prerequisite and you ask your operator to fulfill this. |
AccessProfile1ServiceName |
Not Applicable |
Leave this field blank because the value is already specified in the serviceProfile column. |
AccessProfile1RatePlan |
Not Applicable |
Leave this field blank because the value is already specified in the ratePlan column. |
AccessProfile2Technology |
Mandatory/Optional |
Specify the technology of the secondary device, ONLY if you are provisioning the DUAL-Mode device. In case of Single Mode device, leave this field blank. |
AccessProfile2IDType |
Mandatory/Optional |
Specifies the corresponding identifier of the secondary device based on the technology. In case of Single Mode device, leave this field blank. |
AccessProfile2ID |
Mandatory/Optional |
Specify the actual identifier of the secondary device being provisioned. In case of Single Mode device, leave this field blank. |
AccessProfile2ServiceName |
Not Applicable |
Leave this field blank because the value is already specified in the serviceProfile column. |
AccessProfile2RatePlan |
Not Applicable |
Leave this field blank because the value is already specified in the ratePlan column. |
AccessProfile3Technology |
Not Applicable |
Similar to AccessProfile1Technology, AccessProfile1IDType, and AccessProfile1ID fields but only valid for Tri-Mode devices. In case of Single and Dual Mode devices, leave this field blank. |
AccessProfile3IDType |
Not Applicable |
|
AccessProfile3ID |
Not Applicable |
|
AccessProfile3ServiceName |
Not Applicable |
Leave this field blank because the value is already specified in the serviceProfile column. |
AccessProfile3RatePlan |
Not Applicable |
Leave this field blank because the value is already specified in the ratePlan column. |
custom-attr-name1 custom-attr-value1 |
Optional |
Custom attributes allow you to track additional device information in up to 5 separate custom fields in the Name-Value pair. custom-attr-name-1: specify only customField1 in this field. custom-attr-value-1: specify the actual value of the first custom attribute. The custom attribute value is limited to 64 characters and accept any printable ASCII characters. |
custom-attr-name2 custom-attr-value-2 |
Optional |
Custom attributes allow you to track additional device information in up to 5 separate custom fields in the Name-Value pair. custom-attr-name-2: specify only customField2 in this field. custom-attr-value-2: specify the actual value of the first custom attribute. The custom attribute value is limited to 64 characters and accept any printable ASCII characters. |
custom-attr-name3 custom-attr-value-3 |
Optional |
Custom attributes allow you to track additional device information in up to 5 separate custom fields in the Name-Value pair. custom-attr-name-3: specify only customField3 in this field. custom-attr-value-3: specify the actual value of the first custom attribute. The custom attribute value is limited to 64 characters and accept any printable ASCII characters. |
custom-attr-name4 custom-attr-value-4 |
Optional |
Custom attributes allow you to track additional device information in up to 5 separate custom fields in the Name-Value pair. custom-attr-name-4: specify only customField4 in this field. custom-attr-value-4: specify the actual value of the first custom attribute. The custom attribute value is limited to 64 characters and accept any printable ASCII characters. |
custom-attr-name-5 custom-attr-value-5 |
Optional |
Custom attributes allow you to track additional device information in up to 5 separate custom fields in the Name-Value pair. custom-attr-name-5: specify only customField5 in this field. custom-attr-value-5: specify the actual value of the first custom attribute. The custom attribute value is limited to 64 characters and accept any printable ASCII characters. |
6.10.5. Response Payload Description
The response payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Description |
transactionID |
String |
Returns the unique transaction ID of the request. You can use this Id to further investigate the provision request status, if something happens unexpected. |
operationType |
String |
Always returns "UPLOAD_CSV" |
resultCode |
Int |
After successful execution it returns 0 (zero). |
errorMessage |
String |
After successful execution it returns NULL. |
6.10.6. Sample Request
POST /AerAdmin_WS_5_0/rest/1/bulk-operation?apiKey=<your Account KEY>
HTTP/1.1
Host: aeradminapi.aeris.com
email: aerport@aeris.net
templateType: REGISTRATION
Cache-Control: no-cache
Content-Type: multipart/form-data;
Content-Disposition: form-data; name="file"; filename="PROVISION_template_5Devices.csv"
Content-Type: application/vnd.ms-excel
6.10.7. Sample Response
{
"response": {
"transactionId": "f413e766-6001-4e9d-830a-867c27968cd6",
"operationType": "UPLOAD_CSV",
"resultCode": 0,
"errorMessage": ""
}
}
6.11. Bulk Operation - |Bulk Device Status| - |Bulk Traffic| - |Bulk Rate Plan| - |Bulk Change Service Name| - |Bulk Change Static IP| - |Bulk Update Custom Attribute|
This API is used to perform one single action on more than one device at a time. This API is Asynchronous in nature, which implies that you need not to wait for the operation to complete. You can just initiate a request and let the system perform necessary changes in the background.
This API allows you to perform following actions in bulk:
- Change Device Status
- Change Traffic Policy (Block/Unblock traffic)
- Change Rate Plan
- Change Service Name
- Change Static IP
- Update Custom Attribute
6.11.1. URI
https://<host>/AerAdmin_WS_5_0/rest/<accountID>/bulk-operation/devices?apiKey=<apiKey>
6.11.1.1. Variable Path Parameters
The preceding URI has the following variable path parameters:
Name |
Type |
Description |
Account ID |
String |
Defines the customer account Id for which the devices are provisioned in the AerPort portal. The account Id is the unique identifier of the customer account and Id is generated by AerPort portal. |
6.11.1.2. Query Parameters
The preceding URI has the following query parameters:
Name |
Type |
Constraint |
Description |
apiKey |
String |
Mandatory |
Defines the unique API key that is assigned to the customer account for accessing the API. This API key can be retrieved from the AerPort Portal. |
6.11.2. HTTP Headers
The following standard and custom HTTP headers are supported.
6.11.2.1. Request Headers
HTTP headers available for the request are as follows:
Field Name |
Value |
Constraint |
Accept |
application/json |
Optional |
Content-Type |
application/json |
Mandatory |
Accept-Charset |
utf-8 |
Optional |
6.11.2.2. Response Headers
HTTP headers available for the response are as follows:
Field Name |
Value |
Description |
Content-Type |
application/json |
Defines the response format. |
Content-Length |
<n> |
The content length value varies for each response. |
Date |
<Date time Stamp> |
Date time stamp of receiving the response. |
6.11.3. Method Type
Method Type |
POST |
6.11.4. Request Payload Description
The request payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
Description |
|
String |
Mandatory |
Email Id of the primary user of the account. However, it is not mandatory to be same as defined in AerPort. |
operationName |
String |
Mandatory |
Defines the bulk operation name. You can specify one of the following values:
|
technology |
String |
Mandatory |
Defines the technology used by the devices. All devices of the request must be on same technology. |
deviceProfileIds |
List<String> |
Mandatory |
Defines the list of Device Profile Ids, on which the selected operation need to be performed. The Ids must be enclosed in bracket and separated by comma as follows: [ "AER0000007743295" , "AER0000007743326" ] |
newServiceName |
String |
Optional |
Defines the new service name to be applied on the given devices if you are executing the request to change service profile. |
newRatePlan |
String |
Mandatory |
Defines the new rate plan, if you are executing the request to change rate plan. |
newEffectiveDate |
String |
Mandatory |
Defines the effective date of new rate plan. See Change Rate Plan API for more detail. |
cancelCode |
String |
Mandatory |
Defines the cancellation reason code, if you are executing the request to cancel devices. |
assignStaticIP |
String |
Mandatory |
|
block |
List<Object> |
Mandatory |
Defines the list of traffics that need to be blocked, if you are executing the request to block traffic on the devices. You can define the one of following values:
|
unblock |
List<Object> |
Defines the list of traffics that need to be unblocked, if you are executing the request to unblock traffic on the devices. You can define the one of following values:
|
|
attributes |
Attributes |
Mandatory |
Defines the custom attribute names and their corresponding values, if you are executing the request to update the custom attributes. |
6.11.5. Response Payload Description
The response payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
Constraint |
||||||||||||||||||||||||||||||||||||||||||
transactionID |
String |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
resultCode |
Int |
Optional |
||||||||||||||||||||||||||||||||||||||||||
resultMessage |
String |
Optional |
||||||||||||||||||||||||||||||||||||||||||
opCompletionTimestamp |
XMLGregorianCalendar |
Mandatory |
||||||||||||||||||||||||||||||||||||||||||
deviceProfiles |
List<DeviceProfileResponse> DeviceProfileResponse
|
Optional |
6.11.6. Sample Request
POST /AerAdmin_WS_5_0/rest/11173/bulk-operation/devices?apiKey=<apiKey> HTTP/1.1 Host: aeradminapi.aeris.com Content-Type: application/json Cache-Control: no-cache { "email": "aerport@aeris.net", "deviceProfileIds": ["AER0000008338943", "AER0000008338942"], "operationName": "CANCEL" }
6.11.7. Sample Response
{
"transactionId": "af317e50-0020-11e8-83cd-020f44a6d939",
"operationType": "CANCEL",
"resultCode": 0,
"errorMessage": ""
}
6.13. Get SIM Inventory
SIM identifiers are long and complex numbers. Misplaced numbers and typos are a common source of problems with working with all these numbers. One way to improve accuracy is to retrieve a list of available SIMs from the Aeris Connectivity Platform.
For most services, the Aeris will assign SIMs to the user's account. That guarantees that the SIMs cannot be inadvertently provisioned on another account. It also provide a convenient way to acquire available inventory details and use that information for other records for your own application needs.
This API returns a list of SIMs assigned to your account. The list includes provisioned, non-provisioned, and suspended SIMs.
6.13.1. URI
https://<host>/AerAdmin_WS_5_0/rest/accounts/{accountId}/availableDevices/details?apiKey=<apiKey>
6.13.1.1. Variable Path Parameters
The preceding URI has the following variable path parameters:
Name |
Type |
Description |
accountId |
String |
The Account ID. |
6.13.1.2. Query Parameters
The preceding URI has the following query parameters:
Name |
Type |
Constraint |
Description |
apiKey |
String |
Mandatory |
Defines the unique API key that is assigned to the customer account for accessing the API. This API key can be retrieved from the AerPort Portal. |
pageStart |
Integer |
Mandatory |
The customers with very large inventories, the amount of data returned may be very large. These values allow the users to page through the list of SIMs in manageable batches. |
pageEnd |
Integer |
Mandatory |
pageEnd must be greater than pageStart. |
productId |
Integer |
Mandatory |
You can specify one of the following values:
|
carrrierName |
String |
Optional |
This is the Aeris name for a particular carrier provider. The examples here will use "AerisVFN." |
6.13.2. HTTP Headers
The following standard and custom HTTP headers are supported.
6.13.2.1. Request Headers
HTTP headers available for the request are as follows:
Field Name |
Value |
Constraint |
Accept |
/ * |
Optional |
6.13.2.2. Response Headers
HTTP headers available for the response are as follows:
Field Name |
Value |
Description |
Content-Type |
application/json |
Defines the response format. |
Date |
<Date time Stamp> |
Date time stamp of receiving the response. |
6.13.3. Method Type
Method Type |
GET |
6.13.4. Request Payload Description
The request payload is provided as JSON objects with the following attributes: none.
6.13.5. Response Payload Description
The response payload is provided as JSON objects with the following attributes:
Attribute Name |
Data Type |
---|---|
iccid |
String |
imsi |
String |
dateAssigned |
String: YYYY-MM-DD formatted string. The date the SIM was first assigned to your account. |
name |
String. Unused at this time and will return null. |
carrier |
String |
6.13.6. Sample Request
GET http://localhost:8080/AerAdmin_WS_5_0/rest/accounts/1/availableDevices?apiKey=<apiKey>&pageStart=1&pageEnd=5&productId=2
6.13.7. Sample Response
[
{
"iccid": "89014102272234567898",
"imsi": "204043395000091",
"dateAssigned": "2013-12-23",
"name": null,
"carrier": "AerisVFN"
},
{
"iccid": "89014102273234567898",
"imsi": "204043395000092",
"dateAssigned": "2013-12-23",
"name": null,
"carrier": "AerisVFN"
},
{
"iccid": "89014102274234567898",
"imsi": "204043395000093",
"dateAssigned": "2013-12-23",
"name": null,
"carrier": "AerisVFN"
},
{
"iccid": "89014102276234567898",
"imsi": "204043396000092",
"dateAssigned": "2013-12-23",
"name": null,
"carrier": "AerisVFN"
},
{
"iccid": "89014102271234567898",
"imsi": "204043396000095",
"dateAssigned": "2013-12-20",
"name": null,
"carrier": "AerisVFN"
}
]
6.13.8. Sample of Invalid Product ID
Request
http://localhost:8080/AerAdmin_WS_5_0/rest/accounts/1/availableDevices?apiKey=<apiKey>&pageStart=1&pageEnd=5&productId=2000&carrierName=AerisVFN
Response:
Response code: 400 Bad request
Response Message: Error: Invalid product Id.
6.13.8. Sample of Invalid Product ID and Carrier Mapping
Request
http://localhost:8080/AerAdmin_WS_5_0/rest/accounts/1/availableDevices?apiKey=<apiKey>&pageStart=1&pageEnd=5&productId=2&carrierName=ABCD
Response:
Response code: 400 Bad request
Response Message: Error: Invalid carrier and product mapping.
7. Error Codes
The following table list down the error codes that are returned by the all API calls and is based on type of error occurred:
Error Code |
Error Message |
0 |
Success |
1000 |
Invalid device ID |
1001 |
Missing required field |
1002 |
Invalid service name/login/password value |
1003 |
Invalid date |
1004 |
Invalid application ID |
1005 |
Invalid application type value |
1006 |
Invalid primary MIN |
1007 |
Primary MIN does not belong to the account ID submitted |
1008 |
Primary MIN and ESN does not belong to the account ID submitted |
1009 |
Device not provisioned/cancelled |
1010 |
Device already activated |
1011 |
Primary MIN is already provisioned with another ESN |
1012 |
Incorrect ESN |
1013 |
Incorrect IMSI |
1014 |
IMSI does not belong to the account ID generated in the request. |
1015 |
Invalid radio and or firmware value |
1016 |
Radio/firmware/application type value does not match the value stored in AerAdmin db. |
1017 |
Duplicate shared secondary MIN(s) |
1018 |
Duplicate unique secondary MIN(s) |
1019 |
Invalid secondary MIN(s) |
1020 |
Secondary MIN(s) does not belong the account ID submitted |
1021 |
Mismatched shared secondary MIN(s) |
1022 |
Mismatched unique secondary MIN(s) |
1023 |
Missing shared secondary MIN(s) |
1024 |
Missing unique secondary MIN(s) |
1025 |
Secondary MIN(s) are not allowed |
1026 |
Too many secondary MIN(s). A maximum of 9 secondary MIN(s) are allowed. |
1027 |
Invalid rate plan |
1028 |
Missing rate plan |
1029 |
The request results in no change for the device. |
1030 |
Unable to generate authentication key |
1031 |
Unable to generate IMSI |
1032 |
Unable to generate primary MIN |
1033 |
The credit period for the pre-paid device has expired |
1034 |
AerAdmin internal error |
1035 |
Error while provisioning device |
# 1036 - 1039 Aeris Reserved |
|
1040 |
Database connection problem |
1041 |
Error in the carrier system |
1042 |
Invalid current location format |
1043 |
Missing current location |
1044 |
Invalid radio technology |
1045 |
Invalid ICCID |
1046 |
Device already Activated |
1047 |
Device not Activated |
1048 |
Invalid MSISDN |
1049 |
Device Not Found (Not activated/Cancelled/Not owner) |
1050 |
General device activation error |
1051 |
General Device Deactivation Error |
1052 |
General Device Rate Plan Change Error |
1053 |
General device query error |
1054 |
General device update error |
1055 |
General service name change error |
1056 |
General start billing error |
1057 |
General reprovision error |
1058 |
Start billing error - no rate plan |
1059 |
Suspend device billing error |
1060 |
Radio is not voice capable |
1061 |
Activate error - no rate plan |
1062 |
Device does not have AKEY SSD (Shared Secret Data) information |
1063 |
Retrieve device AKEY SSD (Shared Secret Data) error |
1064 |
Unable to generate SSD (Shared Secret Data) |
# 1065 - 1071 Aeris Reserved |
|
1072 |
Invalid device ID format |
1073 |
Invalid device ID type |
1074 |
Pseudo ESN is not a valid device type, please use MEID |
1075 |
Device is not authorized for packet data |
1076 |
Device AKEY and SSD (Shared Secret Data) already exist |
1077 |
Invalid MEID |
# 1078 - 1087 Aeris Reserved |
|
1088 |
MIN not available |
1089 |
Cannot change device state |
1090 |
Cannot assign static IP to device |
1091 |
Device not authorized to receive a static IP address |
1092 |
IP address already assigned |
1093 |
Private IP address not available |
1094 |
Static IP address not available |
1096 |
Invalid start date |
1097 |
Invalid end date |
1098 |
Device ID not provided |
# 1099 Aeris Reserved |
|
1100 |
Device not provisioned for 1XRTT capability |
1101 |
Invalid device ID type |
1102 |
Invalid technology type |
1103 |
NGP not available |
1104 |
Static IP request error |
1105 |
Device Reprovision Error |
1106 |
Re-Provision Carrier Error |
1107 |
Device Suspend Error |
1109 |
Invalid Report Group |
1110 |
Multiple Services Device |
1111 |
EDF not in Sprint |
1112 |
Invalid Carrier |
# 613 - 630 Aeris Reserved. |
|
1131 |
Only Cancel Code ID can be updated |
1132 |
Cannot update Cancel Code ID |
1133 |
Unknown Cancel Code ID |
1134 |
Device in Pending Mode |
1135 |
DeviceIDList too long |
1136 |
Mandatory input field missing |
1137 |
Incorrect number of Devices |
1138 |
Must have a non-null value |
1139 |
No StaticIP to be removed |
1140 |
General Remove StaticIP error |
1141 |
Error while validating xml. Please verify if the request is valid or contact the administrator. |
1142 |
XML Validation Error |
1143 |
Transformation Exceptions; Expected Request device id is not sent. Searched for ESN, ICCID, IMEI, IMSI, MDN, MEID, MIN, and MSISDN |
1144 |
Unable to fetch API key |
1145 |
Async Handling Error |
1146 |
Invalid Operation |
1147 |
Unable to service your request. Fatal error while processing your request. |
1148 |
Requested Operation Not Supported |
1149 |
AerAdmin Internal Error |
1150 |
Invalid TransactionID |
1151 |
Database connection problem! Error saving request. Try again. |
1152 |
Carrier system access error |
1153 |
Invalid current location format |
1154 |
Missing current location |
1155 |
AerTraffic report records exceed maximun size |
1156 |
Too many sessions - Try again later |
1157 |
Exceeds maximum in record count |
1158 |
Exceeds maximum out record count |
1159 |
Invalid operation - service not allowed |
1160 |
No other traffic type can be sent with All |
1161 |
For GSM devices only trafficType All is allowed |
1162 |
Not Allowed |
1163 |
Allowed max limit for bulk operations is |
1164 |
Requested traffic already blocked |
MCRP Errors |
|
1165 |
Invalid Current Effective date |
1166 |
The device must complete a full billing cycle in the current rate plan before changing to another rate plan. |
1167 |
New rate plan selected is not higher than the current rate plan |
1168 |
Request is processed too late |
1169 |
The New Effective Date should be a future date |
1170 |
Effective date should be within next 60 days |
1171 |
Invalid New Effective date format (usage: MM-dd-YYYY) |
1172 |
The user account does not have the new rate plan/pool name combination |
1173 |
Invalid Effective date format (usage: MM-dd-YYYY) |
1174 |
Device ID is required |
1175 |
New Rate Plan/Pool Name is required |
Hector Errors |
|
1176 |
Cassandra Database problem |
AerCloud Errors |
|
1177 |
Aercloud Service Down |
1178 |
General Aercloud Error |
1179 |
APN missing for a packet enabled Service |
1180 |
Bulk request is In-Progress |
1181 |
Bulk request is Complete |
1182 |
Rate plan change from monthly plan to annual plan and vice-versa is not allowed. |
1183 |
Unable to Unblock |
1184 |
Exceeded platform wide limit for the number of bulk operations. Please try again later. |
1185 |
Exceeded per account limit for the number of bulk operations. Please try again later. |
1186 |
This API is currently unavailable. Please try again later. |
1187 |
Multimode Provisioning error |
1400 |
Device has never been provisioned so it cannot be reprovisioned. |
API Parameters and Limitations |
|
1503 |
Service Profile and Rate Plan should have the same RAT_Type |
1506 | Device attribute length is invalid.
|
Partner Errors* |
|
2000 |
Device Provision Error |
2001 |
Device Reprovision Error |
2002 |
Device Cancel Error |
2003 |
Device Change Rate Plan Error |
2004 |
Device Suspend Error |
2005 |
Device Unsuspend Error |
2006 |
Device Clear Device Registration Error |
2026 | Request accepted, in-progress |
2027 | Unable to complete requested operation |
* Partner ResultMessages may contain additional details |
deviceProfiles |
List<DeviceProfileResponse> DeviceProfileResponse
|
Optional |
0 Comments