Activating/Requesting Devices
Devices are activated/requested, as well as listed, read, and deactivated, through HTTP requests to the following endpoint:
/hwi/hwi-devices/Workflow for New HWI Devices
To Activate a new HWI Device, you must make a POST request to this endpoint using the appropriate JSON data in the payload (see our API Reference for specific details).
If successful, the HWI Device Activation Request will return a HWI Device object with an id parameter in the root object. This id must be saved and used as a unique identifier for this specific device.
This id is included in the hwi_device_id field in the Webhook callbacks to allow data from a specific HWI Device to be associated with a particular patient in the Client’s software.
This id is also required to delete this specific HWI Device to remove it from your account, or Unlink the associated Gateway if the HWI Device cannot be deleted (HWI Devices cannot be deleted if they are attached to a Fulfillment Request that has been fulfilled).
Charges may occur for devices that are not deleted/unlinked from a Gateway when no longer in use. If you forget to save the HWI Device id, you can retrieve it using the GET method on the hwi-devices endpoint.
How the Patient Receives a Device
HWI Device Activation Requests must reflect one of three possible real-world Use Cases:
- Devices are given to patients on-site (so the Gateway ID or IMEI is known)
- Devices need to be shipped to the patient by a client’s internal staff
- Devices need to be shipped to the patient from Tenovi (additional charges may apply for this service).
Devices Given to Patient On-Site
For Use Case #1: The nested Device object in the Activation Request must include the Gateway ID (for Gateway-Connected devices) or the IMEI (for Direct-Cellular devices) in the hardware_uuid field.
In this case, the status field of the returned HWI Device object will either be set to Delivered or Unknown Gateway ID if an invalid Gateway ID is used.
Devices Shipped to Patient
For Use Cases #2 and #3: The hardware_uuid field must be set to null, and the shipping information must be included in the nested fulfillment_request object. The notify_emails field of the fulfillment_request object is optional, but it can be used to pass in a list of comma-separated email addresses, which will be sent shipping update emails as updates occur for the newly requested Device.
The require_signature field of the fulfillment_request object can be used to request signature confirmation of delivery; additional charges may apply.
For Use Case #2: The client_will_fulfill field of the fulfillment_request object must be set to true. In this case, the status field will be set to Pending Shipment.
For Use Case #3: The client_will_fulfill field should be set to false. In this case, the status field will be set to Dropship Requested. If only the Tenovi Gateway needs to be shipped to the patient (for example, because they already have a Gateway-compatible device on hand), the ship_gateway_only flag of the fulfillment_request object should be set to true.
Multiple Devices for a Single Patient
If you are requesting shipment of an additional device for a patient that already has a gateway at home (e.g. the prior device was ordered one month before), include both a fulfillment_request object and the Gateway Id for the existing Gateway in the hardware_uuid field.
This will let our fulfillment team know they should NOT send another gateway with the second device shipment.
Device Names & Sensor Codes
For all requests, the Device Name must exactly match the name of a Device Type associated with your account. You can get a list of valid Device Names from the hwi-device-types endpoint (see our API Reference for specific details).
For reference, our standard list of Devices are shown here, though not all may be associated with a given account:
| Device Name | Sensor Code | Hardware UUID (if included) |
|---|---|---|
| Tenovi BPM – S | 10 | Gateway ID |
| Tenovi BPM – L | 10 | Gateway ID |
| Omron BPM | 10 | Gateway ID |
| Omron Wrist BPM | 10 | Gateway ID |
| Tenovi Pulse Ox | 11 | Gateway ID |
| Tenovi Glucometer | 12 | Gateway ID |
| Trividia Glucometer | 12 | Gateway ID |
| Tenovi Scale | 13 | Gateway ID |
| Tenovi Thermometer | 14 | Gateway ID |
| Tenovi Peak Flow Meter | 17 | Gateway ID |
| Tenovi Pillbox | 21 | Gateway ID |
| Tenovi Cellular BPM – S | IMEI | |
| Tenovi Cellular BPM – L | IMEI | |
| Tenovi Cellular Glucometer | IMEI | |
| Tenovi Cellular Scale | IMEI | |
| TeleRPM BPM | IMEI | |
| TeleRPM Scale | IMEI |
The Patient Object
The patient object in the Activation Request is optional, but if it is included, a patient-specific external_id field is required and will be included in all Webhook callbacks associated with the newly created HWI Device (see above).
We highly recommend Clients use a unique identifier related to the Patient object in their own systems for the external_id value to easily link future data to specific Patients in their systems.
The other patient fields (for example, name and phone_number) are optional, but can useful for Tenovi Customer Service to use in the event they need to troubleshoot any device issues with a patient directly.
Any value entered in the physician field of the patient object will be forwarded to our fulfillment team (if a fulfillment_request is included with the Device Activation request) to allow for any per-provider shipping customization.
Example JSON Payloads
Without a Fulfillment Request
{ "device": { "name": "Tenovi BPM", "hardware_uuid": "123456789100" }, "patient": { "external_id": "12345678-1234-12345678", "phone_number": "123-456-7890", "physician": "Dr. Russell" }}With a Fulfillment Request
{ "device": { "fulfillment_request": { "shipping_name": "Patient One", "shipping_address": "123 Street", "shipping_city": "Townsville", "shipping_state": "CA", "shipping_zip_code": "12345", "client_will_fulfill": false, "notify_emails": "test@email.com", "require_signature": false, }, "name": "Tenovi BPM", "hardware_uuid": null }, "patient": { "external_id": "12345678-1234-12345678", "phone_number": "123-456-7890", "physician": "Dr. Russell" }}Example Response for a Device Request
[ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "Connected", "connected_on": "2024-08-24T14:15:22Z", "unlinked_on": "", "last_measurement": "2024-12-24T14:15:22Z", "device": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "fulfillment_request": { "created": "2024-08-24T14:15:22Z", "shipping_status": "DE", "shipping_name": "Patient One", "shipping_address": "123 Street", "shipping_city": "Townsville", "shipping_state": "CA", "shipping_zip_code": "12345", "shipped_on_behalf_of": "", "shipping_tracking_link": "http://example.com/tracking_url/", "ship_gateway_only": false, "require_signature": true, "shipped_on": "2024-08-24T14:15:22Z", "delivered_on": "2025-08-24T14:15:22Z", "requested_by": "", "client_notes": "", "notify_emails": "", "fulfilled": true, "client_will_fulfill": false, "flagged_by_client": false }, "created": "2024-08-24T14:15:22Z", "name": "Tenovi BPM - L", "hardware_uuid": "123412341234", "sensor_code": "10", "sensor_id": "", "shared_hardware_uuid": false }, "patient_id": "12345678-1234-12345678", "patient_phone_number": "123-456-7890", "patient": { "external_id": "12345678-1234-12345678", "name": "Patient One", "phone_number": "123-456-7890", "email": "user@example.com", "physician": "Dr. Russell" "clinic_name": "", "care_manager": "", "sms_opt_in": true } }]