On this page Before issuanceIssue a batch in the consoleObtain the trusted public keyProduction-system APIsLost downloads and provisioning failures
CONSOLE / OPERATIONS

Production licensing

Model preparation, batch issuance, trusted public keys and license downloads for administrators and production stations.

For platform/manufacturer administrators and production stations. Firmware developers obtain the device license, trusted public key and matching SDK; see platform and licensing for device integration. The team supplies the console URL and account for the agreed environment.

Before issuance

Open Device Management → Devices. Reading requires device:read. Issuance requires all four permissions: device:create, device:update, device:install and vehicle:create, plus a platform or matching manufacturer account. Dealers cannot issue licenses.

Select an active instrument model supporting APP connectivity. Complete its factory configuration: default vehicle model, compatible models, installation slot and the product’s actual features/wireless capabilities. Resolve disabled models or missing factory configuration before retrying issuance.

Issue a batch in the console

  1. Select Create instruments in bulk, choose the model and a count of 1–100.
  2. For one device, SDK integration accepts its optional hardware identity, obtained from that device. A multi-device batch cannot share one hardware identity. For per-device hardware binding, issue separate single-device requests with the corresponding identities.
  3. Retain the batch identifier and returned serial-number/device-ID list, then download the batch ZIP. Each .motolic belongs to one device; never flash one file across a batch.
  4. Split more than 100 devices into separate batches. The 100-device limit is per request, not the contract’s total license allowance; confirm commercial quotas separately.
  5. Match licenses to physical devices, write them and reboot to verify signatures. Record issuance success separately from confirmed device provisioning; a download is not a successful flash.

License files contain per-device secrets and belong only on controlled stations. The console does not automatically track production write results. Stations retain nonsecret serial numbers, hardware identities, package versions and verification results.

Obtain the trusted public key

In the device list, select Download public key certificate while signed in with device:read. Deliver it to the firmware owner through the agreed controlled channel and confirm the environment matches the APP and device registration. The public key establishes firmware trust; the private signing key remains on the server.

P4 uses a header declaring the complete P-256 moto_license_trust_key[65]. Follow device provisioning to build and install it. Do not establish trust from the license being verified or an unverified attachment.

Production-system APIs

These authenticated management paths are relative to the service base supplied by the team. Obtain sessions/permissions through the agreed console authentication flow; do not embed management credentials in device firmware. Lists use the standard response envelope; download endpoints return files directly.

Operation Method and path Permission
Issue POST /api/v1/admin/device-licenses All four issuance permissions above
Download batch POST /api/v1/admin/device-licenses/{operationId}/download device:update
Download device POST /api/v1/admin/devices/{deviceId}/license/download device:update
Public key GET /api/v1/admin/device-licenses/trust-key device:read
License status GET /api/v1/admin/devices/{deviceId}/license device:read

Example request: replace deviceModelId with the actual model ID and generate a fresh UUID for this operation:

{
  "operationId": "2c743957-d676-4c47-8b89-e4c6862a1ed7",
  "deviceModelId": 123,
  "count": 10,
  "hardwareId": null
}

hardwareId allows up to 64 letters, digits, dots, underscores, colons or hyphens. Hardware-bound issuance requires count=1. The response lists deviceId, serialNumber, licenseId, issuedAt and activatedAt, without keys.

After timeout or a lost response, retry with the original operationId and complete unchanged request. Generate a new ID only for a new batch. The same organization/request returns the original result; changing model, count or hardware identity with that ID is rejected. Persist the request and ID before sending, rather than issuing another batch after timeout.

Batch downloads check every device and reject the entire ZIP if any device is ineligible. Individual downloads require an active, non-revoked device with an unactivated license and no owner.

Lost downloads and provisioning failures

  • Unactivated and still eligible: download the original device/batch again. This exports the existing license, not a new identity or keys.
  • Activated or owner-bound: downloads are rejected. Resetting binding does not reopen downloads for an activated license.
  • License written to the wrong device: stop delivery and check hardware identity, serial number and public-key environment. A different license cannot overwrite an installed one.
  • Lost activated license, board replacement or repair: use service recovery; do not erase NVS to masquerade as a new device.