For the complete documentation index, see llms.txt. This page is also available as Markdown.

RMS MQTT Configuration API Reference

This is the provisioning flow for QwantiFi: how RMS retrieves the latest QwantiFi configuration from the Magensa Gateway, generates the device command list, and hands it back so a client can apply it to a reader and report the result. For the architecture and server configuration behind this API, see the Web RMS Service.

The Flow at a Glance

Client POST Request: Request a Ronfiguration

The client requests one of three configuration names — DynaFlexMqtt (MQTT only), DynaFlexTrust (Trust/TLS only), or DynaFlexMqttAll (both).

Request

ResellerID, CustomerID, and the Location fields are passed through in AdditionalParameters.

Gateway Returns the Device's MQTT Hash and Status

RMS checks the device's current provisioning state against the Magensa Gateway.

Response

MQTT Configuration Version Control

  • If request.Version is 0, perform a forced update and return all configuration commands.

  • Otherwise, compare the version-store hash with the database hash.

  • If the hashes are identical, return a status of Up To Date.

  • If the hashes differ, return the commands required to update the device.

Gateway Returns Credentials

Request

Response

Device credentials vs. integrated application credentials. The credential above is a device credential — a per-device username and a plain password, with single subscribe/publish topics. This is different by design from anintegrated application credential (a short-lived JWT + refresh token, scope-wide wildcard topics). See the QwantiFi Credential Model for how the two differ.

RMS Response to Client: The Commands

When the MQTT configuration differs from the device's configuration, the API returns the commands required to update the device. The Commands array contains the device commands (DISPLAYMESSAGE, SENDCOMMAND, WAIT, and optionally SENDFILE, RESETDEVICE) needed to apply the update.

NOTE: Command bytes abbreviated. The live Commands array is long: it repeats one SENDCOMMAND per setting and includes a full TLS certificate payload in the Trust command. It has been abbreviated here with … and inline comments. The commands are generated by RMS; integrators execute them as-is and do not author them by hand. Note also that the generated command list encodes the device password.

Do not log or publish the raw command list!

The settable configuration properties (Broker, Port, QoS, topics, Trust, etc.) are documented in QwantiFi Device Configuration Commands.

The Trust-only response (ConfigurationName: DynaFlexTrust) has the same shape but a much shorter Commands array — the Trust/TLS command(s) only.

Client Confirms Device Update Status

After applying the commands, the client reports success or failure back to RMS.

Request

On success, RMS updates the version store with the latest configuration version and MQTT hash, and records the update status in the log.

Trust Version control

For Trust configuration:

  • If request.Version is 0, perform a forced update and return all configuration commands.

  • Otherwise, compare the device version with the configuration file version.

  • If request.Version is null, use the stored version as the device version for comparison.

  • If the device version matches the configuration version, return a status of Up To Date.

  • If the device version is lower, return the commands required to update to the latest configuration.

Gateway Confirms Device Status

RMS marks the device's status in the Gateway database.

Request

Last updated