API Reference
# Download_Enable a Global eSIM Profile ### `POST /v1/devices/profile/actions/download_enable` This is a combined operation of download and enable for a Global eSIM profile based on the contracted service plan while the device, with a Verizon eSIM profile, is connected to the Verizon US network or temporarily roams outside the US. The device must be powered on and connected when performing this operation. As soon as a Global eSIM profile is downloaded successfully, ThingSpace will automatically enable the downloaded Global eSIM profile. Once the profile is enabled successfully, all other eSIM profiles will be disabled. Only one eSIM profile can be enabled at any given time for a device. Device(s) with enabled Global eSIM profiles are now connected natively to the local carrier’s network. ***Please note*** that the eSIM profile will be roaming if the global eSIM profile is activated in the US or outside of the designated home country. Roaming charges may apply. If the particular profile is enabled, all the other profiles are automatically disabled. The callback would be one for each device. **Bulk operation:** Supported (The callback would be one for each profile). Bulk operations have a limit of 10,000 requests. **eSIM profiles:** Only Global ## Header Parameters The request header must set the content-type to JSON, contain a current ThingSpace authorization token and a current VZ-M2M session token. For more details on how to get these tokens, visit [Getting Started](https://thingspace.verizon.com/documentation/api-documentation.html#/http/session-management/guides/getting-started). | Parameter Name | Data Type | Description | | ----- | ----- | ----- | | **Authorization** *(required)* | string | HTTP Authorization bearer token: `Authorization: Bearer {token}` | | **VZ-M2M-Token** *(required)* | string | A valid session token: `VZ-M2M-Token: {M2Mtoken}` | | **Content-Type** *(required)* | string | Must be application/json `Content-Type: application/json` | ## HTTP Request [POST https://thingspace.verizon.com/api/m2m/v1/devices/profile/actions/download_enable](/docs/standard-apis/global-iot-orchestration/api-endpoints/enable-a-device-profile-for-download/enableadeviceprofilefordownload) ## Request Parameters | Parameter | Data Type | Description | | ----- | ----- | ----- | | **devices** *(required)* | array | An array of `deviceIds`. Each `deviceId` will contain: `id`, `kind` | | **id** | string | The numeric value of the device ID type. | | **kind** | string | The type of device ID represented by the ID value. Only the following are supported by the request and both values must be present: **iccid** - integrated circuit card ID (SIM card), **eid** - electronic ID, a 32-digit unique ID of the device, **imei** - International Mobile Equipment Identifier | | **accountName** *(required)* | string | The name of the account. This is numeric and is in the format **0000123456-00001**. Leading zeros must be included. | | **servicePlan** | string | The name of the service plan associated with the account. | ## Request Body Example request: ```json { "devices": [ { "deviceIds": [ { "kind": "eid", "id": "32-digit EID" }, { "kind": "iccid", "id": "20-digit ICCID" }, { "kind": "imei", "id": "15-digit IMEI" } ] } ], "accountName": "0000123456-00001", "servicePlan": "service plan name", } ``` ## Success Response **Status 200** A successful response shows a system generated request ID to track the request. Example Response: ```json { "requestId": "d1f08526-5443-4054-9a29-4456490ea9f8" } ``` ## Callback Response These endpoints send responses asynchronously. In order to read the results a callback is required. To learn more about callbacks, please visit [About Callback Services](https://thingspace.verizon.com/documentation/api-documentation.html#/http/connectivity-management/guides/working-with-verizon-wireless/about-callback-services). Example callback response: ```json { "requestId": "d1f08526-5443-4054-9a29-4456490ea9f8", "deviceIds": [ { "id": "20-digit ICCID", "kind": "Iccid" }, { "id": "15-digit IMEI", "kind": "Imei" }, { "id": "32-digit EID", "kind": "Eid" }, { "id": "10-digit phone number", "kind": "mdn" } ], "deviceResponse": { "deviceProfileResponse": { "deviceIdentifierCollection": [ { "id": "20-digit ICCID", "kind": "Iccid" }, { "id": "15-digit IMEI", "kind": "Imei" }, { "id": "32-digit EID", "kind": "Eid" }, { "id": "10-digit phone number", "kind": "mdn" } ], "state": "ACTIVE", "profileStatus": "ENABLE", "profileRole": "LOCAL" } }, "status": "SUCCESS", "callbackCount": 1, "maxCallbackThreshold": 4 } ``` ## Callback Parameters | Parameter | Data Type | Description | | ----- | ----- | ----- | | **requestId** | string | The `requestId` being viewed. This is a system generated value from the request above. | | **deviceIds** | array | An array of devices being queried by the request. Each `deviceId` will contain: id, kind | | **id** | string | The numeric value of the device ID. | | **kind** | string | the type of device ID represented by the ID value. This could be: **imei**, **iccid**, **mdn** or **eid**. | | **deviceResponse** | array | Contains the `deviceProfileResponse`, `status` and number of callback records returned. | | **deviceProfileResponse** | array | Contains the details and status of the devices and the request. | | **deviceIdentifierCollection** | array | Similar to `deviceIds` above, but this lists the devices responding. | | **state** | string | The state of the device(s) responding. | | **profileStatus** | string | Indicates the profile state and will show what request was made. **Note:** The callback state can be "download failed" or "download successful" but `profileStatus` can show either "enable failed" or "enable successful". | | **profileRole** | string | This indicates if the profile is LEAD, LOCAL or FALLBACK. | | **status** | string | The status of the `deviceResponse` callback. | | **callbackCount** | string | The number of responses for `deviceResponse` found. | | **maxCallbackThreshold** | string | The maximum number of responses for `deviceResponse` allowed. | ## Failure Responses All error responses will be in the following format ```json { "errorCode": "The 3-digit HTML error code", "errorMessage": "string" } ```