api:externallicense:update
Table of Contents
API : External Licenses Update
Introduction
This request will update a license on a specific customer
Request
| URL | https://api.telecomx.dk/externalLicense/LICENSE_ID | |
|---|---|---|
| Method | POST | |
| Access level | RESELLER if customer belongs to the reseller or a sub reseller. RESELLER_ADMIN ADMIN. |
|
| Params | LICENSE_ID | ID of the license to update |
Query examples
https://api.telecomx.dk/externalLicense/1234567890ABCD1234567890
| Body | ||
|---|---|---|
| Property | Type | Description |
| product | Id | ID of product to assign to this license |
| invoiceStart | Date | Date for when invoicing of this license should start. |
| name | String | Name of the license, max 64 characters. |
| billingCustomer | Id | Customer to bill; null clears the override. |
Sending null on product or billingCustomer clears that link. Sending null on name or invoiceStart, or omitting any field entirely, leaves it unchanged.
Body example
{ "product": "1234567890ABCD1234567890", "invoiceStart": "2023-01-05T22:00:00.000Z", "name": "MS365 license", "billingCustomer": "1234567890ABCD1234567890" }
Response
| JSON object | ||
|---|---|---|
| Property | Type | Description |
| _id | ObjectId | Unique ID |
| name | String | Name of the license in the external system, if any. |
| platformId | Enum | Platform enum of system this is synchronized from. Allowed value is ALSO. |
| platformLicenseId | String | The license's ID in the external system - can be a number, string, objectId, etc., depending on the system. |
| customer | ObjectId | ID of the Telecom X customer, that this license belongs to. |
| billingCustomer | ObjectId | Override billing customer; defaults to the license owner. |
| product | ObjectId | ID of the Telecom X product, that this license uses. |
| units | number | Amount of licenses. |
| invoiceStart | Date | Date that Telecom X will start to bill this license from. If null, license will not be billed. |
| invoicedUntil | Date | When this license is billed until in Telecom X |
| created | Date | Timestamp of when the license was fetched from the external system, and saved to Telecom X |
| lastSeen | Date | Timestamp of when the license was last seen in the external system |
| start | Date | Billing start date of the license. |
| end | Date | Billing end date/expiration date, null if not given |
| also | Object | Contains properties only related to ALSO. |
| also.billingType | String | Billing type from ALSO. |
| also.wholesalePrice | Number | Wholesale price of the license, fetched from ALSO. Used as a guideline for the product's wholesale price. |
| also.price | Number | Customer price of the license, fetched from ALSO. Used as a guideline for the product's price. |
| also.renew | Boolean | Whether the license will be renewed, when license passes the end date |
| also.bindingPeriod | String | Defines for how long the license is bound. Allowed values are MONTHLY, QUARTERLY, YEARLY |
| also.lockedWholesalePrice | Number | Wholesale price of the license, which will be used until the binding period is over. |
| also.lockedPrice | Number | Customer price of the license, which will be used until the binding period is over. |
Note that properties holding no value may be omitted from the object.
Example
{ "_id": "650000000000000000000001", "name": "MS365 license", "platformId": "ALSO", "platformLicenseId": "571481273", "customer": "650000000000000000000002", "billingCustomer": "650000000000000000000006", "product": "650000000000000000000003", "units": 15, "invoiceStart": "2026-01-31T23:00:00.000Z", "invoicedUntil": "2026-06-30T22:00:00.000Z", "created": "2026-01-25T12:35:00.000Z", "lastSeen": "2026-07-30T12:35:00.000Z", "start": "2026-01-05T00:00:00.000Z", "end": "2027-01-05T00:00:00.000Z", "also": { "billingType": "Monthly (with 1-year commitment) - P1Y", "wholesalePrice": 51.32, "price": 182.12, "renew": false, "bindingPeriod": "YEARLY", "lockedWholesalePrice": 75, "lockedPrice": 125 } }
Errors
| Error code | Message | Description |
|---|---|---|
| 403 | access_denied | Insufficient access level |
| 404 | billingCustomer | Billing customer not found |
| 404 | id | External license not found |
| 404 | product | Product not found |
| 422 | product | Product id is not valid |
| 422 | billingCustomer | Billing customer id is not valid |
| 422 | invoiceStart | Date is invalid |
| 500 | internal_error | <Unspecified> |
api/externallicense/update.txt · Last modified: by Mikkel Meerwaldt Jørgensen