Skip to content

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:

  1. Devices are given to patients on-site (so the Gateway ID or IMEI is known)
  2. Devices need to be shipped to the patient by a client’s internal staff
  3. 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 NameSensor CodeHardware UUID (if included)
Tenovi BPM – S10Gateway ID
Tenovi BPM – L10Gateway ID
Tenovi BPM – XL10Gateway ID
Omron BPM10Gateway ID
Omron Wrist BPM10Gateway ID
Tenovi Pulse Ox11Gateway ID
Tenovi Glucometer12Gateway ID
Trividia Glucometer12Gateway ID
Tenovi Scale13Gateway ID
Tenovi Bariatric Scale13Gateway ID
Tenovi Thermometer14Gateway ID
Tenovi Watch15Gateway ID
Tenovi Peak Flow Meter17Gateway ID
Tenovi Pillbox21Gateway ID
Nonin Pulse Ox24Gateway ID
Hailie Sensor25Gateway ID
PatchRx PatchCap27Gateway ID
Welch Allyn 1500 Series BPM29Gateway ID
Welch Allyn 1700 Series BPM29Gateway ID
Welch Allyn Scale30Gateway ID
A&D XL Scale33Gateway ID
A&D Scale34Gateway ID
A&D BPM35Gateway ID
A&D Pulse Ox36Gateway ID
Tenovi Fetal Doppler37Gateway ID
XK Essence39Gateway ID
Tenovi ID Band44Gateway ID
Tenovi Cellular BPM – SN/AIMEI
Tenovi Cellular BPM – LN/AIMEI
Tenovi Cellular GlucometerN/AIMEI
Tenovi Cellular ScaleN/AIMEI
Tenovi Cellular Pulse OxN/AIMEI

The Patient Object

The patient object in the Activation Request is optional. If included, the external_id field is required and will be present in all webhook callbacks associated with this HWI Device.

Use a unique identifier from your own system for external_id — this is the stable key that links measurement and fulfillment webhook data back to a specific patient in your records.

For full details on patient fields, address verification, and managing patient records independently of device activation, see the Patients reference page.

Example JSON Payloads

Without a Fulfillment Request with Linked Patient Object

{
"device": {
"name": "Tenovi BPM",
"hardware_uuid": "123456789100"
},
"patient": {
"external_id": "12345678-1234-12345678"
}
}

With a Fulfillment Request with Inline Patient Object

{
"device": {
"fulfillment_request": {
"client_will_fulfill": false,
"notify_emails": "test@email.com",
"require_signature": false
},
"name": "Tenovi BPM",
"hardware_uuid": null
},
"patient": {
"external_id": "12345678-1234-12345678"
}
}

Without a Fulfillment Request with Inline Patient Object

{
"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 with Inline Patient Object

{
"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
}
}
]