Remove FOTA Licenses
# Remove FOTA Licenses ### `POST /licenses/{accountName}/remove` Removes unused FOTA licenses from a specified list of devices. A license is unused if the device has not had a firmware upgrade since the license was assigned, and if no firmware upgrade is in progress for the device. When licenses are removed, the ThingSpace Software Management ends monitoring the devices for reachability. **Note:** This request is only needed for accounts that have a monthly recurring charge (MRC) subscription. Accounts with event-based billing do not need to assign or remove licenses. ## HTTP Request [POST https://thingspace.verizon.com/api/fota/v3/licenses/{accountName}/remove](/docs/premium-apis/software-management/software-management-v1/api-endpoints/software-management-licenses-v1/removelicensesfromdevices) ## Header Parameters The request header must contain a current ThingSpace authorization token, set the content to "JSON" and a current VZ-M2M-session token. |Parameter Name|Data Type|Description| |-----|-----|-----| | **Authorization** *(required)* | string | HTTP Authorization request header containing a valid Bearer token: `Authorization: Bearer {token}` | | **VZ-M2M-Token** *(required)* | string | A valid session token returned by a Connectivity Management `POST /session/login` request. | | **Content-Type** *(required)* | string | Must be `application/json`. | ## Request Parameters You must include the `accountName` in the path. |Parameter Name|Data Type|Description| |-----|-----|-----| | **accountName** *(required)* | string | The name of the account for which you want to remove licenses. An account name is numeric, and must include any leading zeros. | ## Request Body The request body provides the device list. |Parameter Name|Data Type|Description| |-----|-----|-----| | **deviceList** *(required)* | array | The IMEIs of the devices to remove licenses from. | Example Request: Remove FOTA licenses from three devices - ```json { "deviceList": [ "15-digit IMEI", "15-digit IMEI", "15-digit IMEI" ] } ``` ## Success Responses **Status 200** Example Success Response ```json { "accountName": "0000123456-00001", "licCount": 9000, "licUsedCount": 998, "deviceList": [ { "deviceId": "15-digit IMEI", "status": "Success", "resultReason": "Success", "updatedTime": "2021-06-10T15:13:30.941Z", "recentAttemptTime": "2021-06-10T15:13:30.941Z", "nextAttemptTime": "2021-06-10T15:13:30.941Z" }, { "deviceId": "15-digit IMEI", "status": "Success", "resultReason": "Success" "updatedTime": "2021-06-10T15:13:30.941Z", "recentAttemptTime": "2021-06-10T15:13:30.941Z", "nextAttemptTime": "2021-06-10T15:13:30.941Z" }, { "deviceId": "15-digit IMEI", "status": "Failure", "resultReason": "No license attached to device" "updatedTime": "2021-06-10T15:13:30.941Z", "recentAttemptTime": "2021-06-10T15:23:30.941Z", "nextAttemptTime": "2021-06-11T15:13:30.941Z" } ] } ``` ## Success Parameters |Parameter Name|Data Type|Description| |-----|-----|-----| | **accountName** | string | Account identifier. | | **licTotalCount** | integer | Total FOTA license count. | | **licUsedCount** | integer | Assigned FOTA license count. | | **deviceList** | array | | | **deviceId** | string | the device IMEI. | | **status** | string | Status of the license removal. Valid values include: **Success** or **Failure**. | | **resultReason** | string | More information about the status, such as **"Success"** or a reason for a failure, such as **"Device Not Found"**> | | **updatedTime** | string ($date-time) | Time of the most recent status. | | **recentAttemptTime** |string ($date-time) | The time of the most recent attempt to remove a FOTA license. | | **nextAttemptTime** | string ($date-time) | The next time the license will attempt to be removed. | ## Failure Responses All error messages are returned in this format: ```json { "errorCode": "error code string", "errorMessage": "error message string" } ``` Error codes and messages are listed on the [Error Messages page](https://thingspace.verizon.com/documentation/api-documentation.html#/http/software-management/guides/error-messages), along with explanations and suggestions for corrective actions.