Skip to content
  • There are no suggestions because the search field is empty.

LCM Schema Reference

Complete field reference for LCM contracts and licenses. Required and optional fields, value constraints, custom fields, and how the schema underpins the bulk upload template.

This is the complete field reference for LCM contracts and licenses, as used in the bulk upload template, the manual entry forms, and the underlying data model. Field names shown here are the canonical names. They match the column headers in the Excel template and the keys used by the API and integrations.

The schema is extensible at the project level via Settings templates, see Custom Fields and Templates. Constrained-value fields (like contract_type and status) accept a defined set of values which can be checked in the app on the manual creation form. Common values are listed below, but the canonical list is in the application itself and may grow over time.

Contract schema

A contract represents a single software agreement and contains all metadata about commercial terms, dates, vendor, and renewal information.

Required fields

Field Type Description
contract_number string Unique identifier for the contract (e.g. AGR-12345). Used as the business key linking contracts to their licenses.
contract_name string A clear name (e.g. Adobe Creative Cloud 2025).
contract_type string (constrained) The kind of contract. See common values below.
legal_entity string The company within your organisation signing the contract (e.g. Acme Inc.).
vendor_name string The company providing the product or service (e.g. Microsoft).
start_date string (YYYY-MM-DD) The date the contract begins.
end_date string (YYYY-MM-DD) The date the contract ends.

Optional fields

Field Type Description
status string (constrained) Current state. Defaults to Automatic (derived from dates).
business_owner string Person responsible for the contract (name or email).
po_number string Purchase order number (e.g. PO-12345).
invoice_number string Invoice reference (e.g. INV-12345).
total_value number Total cost of the contract.
currency string Three-letter ISO currency code (e.g. USD, EUR, GBP).
purchase_date string (YYYY-MM-DD) The date the contract was bought.
renewal_date string (YYYY-MM-DD) The date to review for renewal.
renewal_notice_days number Days before renewal to be reminded.
sla_terms string Service level details (e.g. uptime guarantees).
reseller_name string The company that sold the product (if applicable).
reseller_type string The kind of reseller (e.g. distributor).
notes string Free-text internal notes.
description string Full explanation of contract coverage.

Common values for contract_type

License Agreement, Enterprise Agreement, Support Agreement, Subscription Agreement, Reseller Agreement, Audit Agreement, Evaluation Agreement, Custom Agreement, Service Agreement.

The canonical list is available in the contract creation form in the app. New types may be added over time, when in doubt, check the app.

Common values for status

Automatic, Active, Expired, Future, Renewed, Terminated.

Automatic (the default) means LCM derives the status from the contract's start and end dates. Set this manually only when you need to override the derived value.

License schema

A license represents a specific entitlement granted under a contract. Each license is linked to a contract via contract_number.

Required fields

Field Type Description
contract_number string The parent contract's contract_number. Required to link the license to its contract.
license_name string A clear name describing what the entitlement is. Used together with contract_number as the business key for matching during additive uploads.
license_type string (constrained) The kind of license. See common values below.
quantity number The number of units included. Set to 1 (or any value) when unlimited_quantity is True, quantity is ignored in that case.
unlimited_quantity boolean Whether the license allows unlimited use. Set to True for unlimited (e.g. site licenses); otherwise False.

Optional fields

Field Type Description
status string (constrained) Whether the license is active. Defaults to Automatic.
use_contract_dates boolean Whether the license inherits its validity dates from the contract. Defaults to True. Set False to use the license's own start_date / end_date.
start_date string (YYYY-MM-DD) License-specific start date. Only used when use_contract_dates is False.
end_date string (YYYY-MM-DD) License-specific end date. Only used when use_contract_dates is False.
license_metric string How the license is measured (e.g. per user, per device, per core).
license_key string The activation key or license code.
sku string A code identifying the specific product version.
price number Cost per unit.
currency string Three-letter ISO currency code for the price.
has_maintenance boolean Whether the license includes support or updates.
downgrade_rights boolean Whether the license allows using older versions.
description string Extra details about what the entitlement covers.
website string Link to the product or vendor site.
product_publisher string The company that makes the product.
product_name string The name of the product. Optional because some licenses (e.g. bundles or pooled entitlements) don't map to a single product.
product_edition string Specific edition (e.g. E3, Enterprise, Standard).
product_version string Version number or year.
notes string Free-text internal notes.

Common values for license_type

Perpetual, Subscription, Open-Source.

Check the license creation form in the app for the canonical list.

Common values for status

Automatic, Active, Inactive.

Notes on schema behaviour

unlimited_quantity and quantity together. When unlimited_quantity is True, the value in quantity is ignored for entitlement calculations. Set it to any number (typically 1). Allocations against an unlimited license still consume from the license, but the Available count is meaningless because there's no fixed cap.

use_contract_dates defaults to True. Most licenses inherit their effective period from the parent contract, which is the right behaviour for the typical case of a contract granting one or more licenses for the same term. Use the license-level start_date / end_date only when the license has a different validity period (for example, a license that begins partway through a multi-year contract).

Constrained-value fields. For contract_type, status, and license_type, the bulk upload validates against the current allowed values. If your upload is rejected for one of these fields, check the app's manual creation form for the current canonical list.

Custom fields. The schema is extensible at the project level. See Custom Fields and Templates for the full mechanics. Per-record custom fields stay on individual records and aren't part of the bulk schema; Settings template fields become first-class fields at the project level and appear as columns in the upload template.

How the schema is used

This schema underpins:

  • The bulk upload template (column headers map directly to these field names)
  • The manual UI forms (labels are friendlier, but the underlying fields are these)
  • The reports (field names appear as chart dimensions and column headers)
  • Reporting and exports (use these field names as column headers)
  • Integrations and the API (the data model exposed follows this schema)