API Reference
# Change the eSIM Profile Service Plan #### `POST /v1/devices/profile/actions/serviceplan` This API allows customers to change the service plan on either Verizon US or global eSIM profiles. **Bulk operation**: Supported (The callback would be one for each profile). Bulk operations have a limit of 10,000 requests. **eSIM profiles**: Both Verizon US and Global. **Note:** When using SKU based activations, SIM OTA (Over-The-Air) must be performed prior to performing maintenance transactions (Service Plan change, feature change, ICCID change.) ## 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/serviceplan` ## Request Parameters | Parameter Name | 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 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. | | **accountName** *(required)* | string | The name of the account. | | **servicePlan** | string | The name of the service plan the request is changing to. Use the Verizon `servicePlan` when performing an action on the Verizon network and use the Global `servicePlan` when performing action for Global. | ## Request Body Example request: ```json { "devices": [ { "deviceIds": [ { "kind": "eid", "id": "32-digit EID" }, { "kind": "iccid", "id": "20-digit ICCID" } ] } ], "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":"32-digit EID", "kind":"Eid" }, { "id":"15-digit IMEI", "kind":"Imei" }, { "id":"1+ 10-digit phone number", "kind":"msisdn" }, { "id":"20-digit ICCID", "kind":"Iccid" } ], "deviceResponse":{ "deviceProfileResponse":{ "deviceIdentifierCollection":[ { "id":"32-digit EID", "kind":"Eid" }, { "id":"15-digit IMEI", "kind":"Imei" }, { "id":"1+ 10-digit phone number", "kind":"msisdn" }, { "id":"20-digit ICCID", "kind":"Iccid" } ], "state":"ACTIVE", "profileStatus":"ENABLE", "profileRole":"LOCAL" } }, "status":"SUCCESS", "callbackCount":1, "maxCallbackThreshold":4 } ``` ## Callback Parameters | Parameter Name | Data Type | Description | |-----|-----|-----| | **requestId** | string | The `requestId` being viewed. This is a system generated value from the request above. | | **deviceIds** | array | An array of device IDs associated with the request. Each deviceId will contain: `id`, `kind`. | | ***id*** | string | The numeric value of the device ID. | | ***kind*** | string | The the type of device ID represented by the ID value. This could be: **imei**, **iccid**, **mdn**, **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. | | ***state*** | string | The state of the device(s) responding. | | ***profileStatus*** | string | Indicates the profile state. A successful request will show **ENABLE**. | | ***profileRole*** | string | This indicates if the profile is **LEAD**, **LOCAL** or **DEFAULT**. | | **status** | string | The status of the `deviceResponse`. | | **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" } ```