Chain of Custody Timeline

Fetch the custody timeline for a device by IMEI and/or serial.

GET
/api/v1/chain-of-custody/timeline

Description

Returns merged custody timelines for the device across repair, ITAD, remote recovery, and deployment orders (same information as the platform Chain of Custody sidebar). Provide at least one of imei or serial. Requires permission chain-of-custody.read. Order types: repair, itad, recovery, deployment. On recovery timelines, order_number is the linked remote recovery order number and recovery_number is the campaign employee recovery number. itad timelines are ITAD orders not linked to a recovery. On ITAD/recovery timelines, the "Assessment in Progress" event may include a sub_events array with a "DLR SENT" entry when a Device Locked Report was sent for that order.

Request

Headers

HeaderValueRequired
AuthorizationBearer <access_token>Yes
Content-Typeapplication/jsonYes

Query Parameters

ParameterTypeRequiredDescription
imeistringConditionalDevice IMEI. Provide imei and/or serial (at least one required).
serialstringConditionalDevice serial number. Provide imei and/or serial (at least one required).

Response

FieldTypeDescription
serialstringResolved serial number.
imeistringResolved IMEI.
timelinesarrayCustody timelines across related orders.
timelines[].order_typestringOrder type string enum: repair, itad, recovery, deployment.
timelines[].recovery_numberstringPresent on recovery timelines: campaign employee recovery number. Omitted for repair, ITAD, and deployment. Distinct from order_number (the linked remote recovery order).
timelines[].order_numberstringOrder number for this timeline. For recovery, the linked remote recovery order number; for itad, the ITAD order number; for repair / deployment, the repair or deployment order number.
timelines[].eventsarrayChronological custody events.
timelines[].events[].occurred_atstringEvent timestamp (ISO-8601 UTC).
timelines[].events[].statusstringEvent status label.
timelines[].events[].order_numberstringOrder number for this event when applicable.
timelines[].events[].performed_bystringWho performed the action (order placer, warehouse, QA user, etc.). Omitted when not applicable.
timelines[].events[].received_fromstringWho the device was received from (e.g. employee or order contact).
timelines[].events[].delivered_tostringDeployment: recipient name when the device was delivered.
timelines[].events[].recovery_numberstringRecovery Initiated: campaign employee recovery number.
timelines[].events[].servicesarrayRepair: service names performed on the device.
timelines[].events[].approved_pricenumberAssessment Completed: approved device value.
timelines[].events[].asset_dispositionstringAssessment Completed: disposition / device status label.
timelines[].events[].erasure_started_atstringData Erasure: erase start time (ISO-8601 UTC).
timelines[].events[].erasure_ended_atstringData Erasure: erase end time (ISO-8601 UTC).
timelines[].events[].erasure_typestringData Erasure: erase method label (e.g. Secure Erase (NIST)).
timelines[].events[].erasure_total_timestringData Erasure: total erase duration (e.g. 00:30:00).
timelines[].events[].sub_eventsarrayNested sub-events under a parent status. Today only on ITAD/recovery "Assessment in Progress": when a Device Locked Report (DLR) was sent, contains one event with status "DLR SENT". Otherwise omitted or an empty array.
timelines[].events[].sub_events[].occurred_atstringSub-event timestamp (ISO-8601 UTC). For DLR SENT, when the DLR was recorded.
timelines[].events[].sub_events[].statusstringSub-event status label (currently "DLR SENT").

Related Endpoints

Did this page help you?