Table of Contents

API : External Licenses List

Introduction

This request will return the list of all external licenses for a specific customer.

Request

URL https://api.telecomx.dk/externalLicense
Method GET
Access level RESELLER if customer belongs to the reseller or a sub reseller.
RESELLER_ADMIN
ADMIN.
Requires that the External Licenses service is enabled on the customer/reseller account.
Query offset Number [optional] Index of the first license to return, default 0.
limit Number [optional] The number of licenses to return, default 100, min 1, max 500.
customer String [optional] Id of the customer to list licenses for, defaults to user's own customer if not set.
reseller String [optional] Id of the reseller to list licenses for. If this value is given, it will fetch all licenses of this reseller's customers.
withoutProduct Boolean [optional] When true, only returns licenses that do not have a Telecom X product assigned yet.
format String [optional] Format to get the data in. Allowed values are csv and json. Defaults to json.
sort String [optional] Sort field. Allowed values are PLATFORM_ID, NAME, UNITS, START, END, INVOICE_START, PLATFORM_CUSTOMER_ID, PRODUCT_CODE, PRODUCT_NAME, CUSTOMER_NAME, WHOLESALE and PRICE.

Query examples

https://api.telecomx.dk/externalLicense
https://api.telecomx.dk/externalLicense?customer=1234567890ABCDEF12345678
https://api.telecomx.dk/externalLicense?customer=1234567890ABCDEF12345678&withoutProduct=true
https://api.telecomx.dk/externalLicense?reseller=1234567890ABCDEF12345678&withoutProduct=true

Response

JSON object
Property Type Description
offset Number Index of the first license returned.
limit Number Number of licenses to return. Note that the actual number of items returned may be lower.
total Number Number of licenses that can be returned when offset and limit is not considered. This is to be used for paging through the data.
externalLicenses Array List of licenses, see definition below.
External license
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 Id or Object The Telecom X customer this license belongs to. Plain customer id in the per-customer listing; the resolved customer document (see API : Customer Get) when listing by reseller.
product Object The Telecom X product this license is sold as — the resolved product document with all fields except cost (see API : Product Get). Null if no product is assigned; the raw product id if the referenced product no longer exists.
billingCustomer ObjectId [optional] Override billing customer; defaults to the license owner. 
units number Amount of licenses.
invoicedUntil Date When this license is billed until in Telecom X
invoiceStart Date Date that Telecom X will start to bill this license from. If null, license will not be billed.
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.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.
also.billingType String Billing type from ALSO.

When format=csv is set, the response is a downloadable CSV file (semicolon-separated, Danish locale, Content-Disposition: attachment;filename=external-licenses.csv) rather than JSON. Columns correspond to the JSON response fields above; when listing by reseller a customer name column is prepended. The CSV always contains the full result set (offset and limit are ignored).

Note that properties holding no value may be omitted from the object.

Example

{
  "offset": 0,
  "limit": 100,
  "total": 2,
  "externalLicenses": [
    {
      "_id": "650000000000000000000001",
      "name": "Office E3 2026",
      "platformId": "ALSO",
      "platformLicenseId": "571481273",
      "customer": "650000000000000000000002",
      "product": {
        "_id": "650000000000000000000003",
        "type": "EXTERNAL_LICENSE",
        "productCode": "M365-E3",
        "name": "Microsoft 365 E3",
        "unitType": "UNITS",
        "recurrence": "MONTHLY",
        "wholesale": 75,
        "price": 125,
        "customer": "650000000000000000000002",
        "inheritFromReseller": "650000000000000000000004"
      },
      "units": 15,
      "invoicedUntil": "2026-06-30T22:00:00.000Z",
      "invoiceStart": "2026-01-31T23: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
      }
    },
    {
      "_id": "650000000000000000000005",
      "name": "Office Business Premium",
      "platformId": "ALSO",
      "platformLicenseId": "571481274",
      "customer": "650000000000000000000002",
      "product": null,
      "units": 5,
      "created": "2026-02-25T09:00:00.000Z",
      "lastSeen": "2026-07-30T12:35:00.000Z",
      "start": "2026-02-05T00:00:00.000Z",
      "end": null,
      "also": {
        "billingType": "Monthly - P1M",
        "wholesalePrice": 110,
        "price": 180,
        "renew": true,
        "bindingPeriod": "MONTHLY",
        "lockedWholesalePrice": null,
        "lockedPrice": null
      }
    }
  ]
}

Errors

Error code Message Description
403 access_denied Required feature not enabled
403 access_denied Insufficient access level
404 customer Customer not found
409 parentReseller Customer has no parent reseller
422 customer Customer id is not valid
422 reseller Reseller id is not valid
422 withoutProduct Value is not a valid boolean
500 internal_error <Unspecified>