HyperTrackDocs
WebhooksOrdersTimesheets & Billing

Timesheet Updated

Webhook payload sent when the timesheets of an order change.

Timesheet Updated Webhook Payload

{
   "created_at": "2026-04-10T22:11:32.111Z",
   "recorded_at": "2026-04-10T22:11:32.111Z",
   "worker_handle": "Worker-1",
   "driver_handle": "Worker-1",
   "account_id": "6784e919-7168-4f61-b686-2020f547637f",
   "type": "order",
   "data": {
      "value": "timesheet_updated",
      "order_handle": "DGC127092",
      "status": "ongoing",
      "share_url": "https://trck.at/vr1RNLq",
      "timesheets": [
         {
            "type": "system",
            "source": "api",
            "start_time": "2026-04-10T08:00:00Z",
            "end_time": "2026-04-10T17:30:00Z",
            "total_duration_worked": 34200,
            "total_break_duration": 1800,
            "breaks": [
               {
                  "start_time": "2026-04-10T12:00:00Z",
                  "end_time": "2026-04-10T12:30:00Z",
                  "duration": 1800,
                  "type": "meal"
               }
            ]
         }
      ],
      "agent": {
         "timesheets": [
            {
               "type": "reconciled",
               "source": "agent",
               "start_time": "2026-04-10T08:00:00Z",
               "end_time": "2026-04-10T17:30:00Z",
               "total_duration_worked": 34200,
               "total_break_duration": 1800
            }
         ]
      },
      "metadata": {
         "storeId": "123490809808",
         "customerName": "Andrew"
      }
   },
   "version": "3.0.0"
}
NameTypeMandatoryDescription
data.valuestringYestimesheet_updated
data.order_handlestringYesUnique handle for the Order
data.statusstringYesCurrent status of the order
data.share_urlstringYesTracking URL for the order
data.metadataobjectNoMetadata that you have assigned to this order
data.timesheetsarrayNoCustomer-provided timesheets for this order
data.timesheets[].typestringYesOrigin of the entry: system, worker, or requester
data.timesheets[].sourcestringNoChannel: api, sms, email, phone, agent
data.timesheets[].start_timestringNoISO-8601 timestamp when the shift started
data.timesheets[].end_timestringNoISO-8601 timestamp when the shift ended
data.timesheets[].total_duration_workedintegerNoTotal worked duration in seconds
data.timesheets[].total_break_durationintegerNoTotal break duration in seconds
data.timesheets[].breaksarrayNoList of breaks within this entry
data.timesheets[].breaks[].start_timestringYesISO-8601 timestamp when the break started
data.timesheets[].breaks[].end_timestringYesISO-8601 timestamp when the break ended
data.timesheets[].breaks[].durationintegerNoBreak duration in seconds
data.timesheets[].breaks[].typestringNoBreak type: meal, rest, other
data.agentobjectNoAgent-produced timesheet data, present when the reconciliation agent has collected or reconciled hours
data.agent.timesheetsarrayNoAgent-collected timesheet entries
data.agent.timesheets[].typestringYesworker, facility, or reconciled (final determination)
data.agent.timesheets[].sourcestringNoChannel: sms, email, phone, in_app, agent, ops
data.agent.timesheets[].start_timestringNoISO-8601 timestamp when the shift started
data.agent.timesheets[].end_timestringNoISO-8601 timestamp when the shift ended
data.agent.timesheets[].total_duration_workedintegerNoTotal worked duration in seconds
data.agent.timesheets[].total_break_durationintegerNoTotal break duration in seconds
data.agent.timesheets[].breaksarrayNoList of breaks (same shape as data.timesheets[].breaks)
data.agent.timesheets[].notesstringNoFree-form notes recorded by the agent