---
title: "Tracking Update"
method: POST
path: "/v1/webhook/tracking-update"
tags: ["Use case / Tracking", "Webhooks / Inbound"]
---

# Tracking Update

`POST /v1/webhook/tracking-update`

Webhook for tracking updates.

Push to the endpoint to update tracking information for a resource.

## Request body

- TrackingUpdatePayload
  - `updates` TrackingUpdateItem[] — List of tracking updates to process
    - `tracking_match` TrackingMatchTarget, required
      - `matches_any` TrackingMatchInput[]
        - `resource` TrackingResourceMatchInput
          - `driver` DriverMatchInput
            - `name` FieldMatchInput
              - …
            - `generic_id` FieldMatchInput
              - …
            - `integration_object_id` FieldMatchInput
              - …
          - `vehicle` VehicleMatchInput
            - `name` FieldMatchInput
              - …
            - `generic_id` FieldMatchInput
              - …
            - `integration_object_id` FieldMatchInput
              - …
          - `subcontractor` SubcontractorMatchInput
            - `name` FieldMatchInput
              - …
            - `generic_id` FieldMatchInput
              - …
            - `integration_object_id` FieldMatchInput
              - …
          - `container` ContainerMatchInput
            - `name` FieldMatchInput
              - …
            - `generic_id` FieldMatchInput
              - …
            - `integration_object_id` FieldMatchInput
              - …
    - `tracking_update_data` TrackingUpdateData[]
      - `position` TrackingUpdatePositionData
        - `timestamp` string, date-time, required — Timestamp at which tracking event occured
        - `latitude` number, required
        - `longitude` number, required
      - `temperature` TrackingUpdateTemperatureData
        - `timestamp` string, date-time, required — Timestamp at which tracking event occured
        - `temperatures` TrackingUpdateTemperatureMeasurement[]
          - `sensor` string, required — The sensor from which the temperature was measured
          - `temperature` number, required — The measured temperature value in degrees Celsius
        - `temperature_setpoints` TrackingUpdateTemperatureMeasurement[]
          - `sensor` string, required — The sensor from which the temperature was measured
          - `temperature` number, required — The measured temperature value in degrees Celsius
      - `tachograph` TrackingUpdateTachographData
        - `timestamp` string, date-time, required — Timestamp at which tracking event occured
        - `activity` 'DRIVING' | 'WORKING' | 'BREAK' | 'REST' | 'WAITING' | 'UNKNOWN'
        - `driving_since` string, date-time, nullable
        - `resting_since` string, date-time, nullable
        - `on_break_since` string, date-time, nullable
        - `waiting_since` string, date-time, nullable
        - `next_break_at` string, date-time, nullable
        - `next_rest_at` string, date-time, nullable
      - `fuel` TrackingUpdateFuelData
        - `timestamp` string, date-time, required — Timestamp at which tracking event occured
        - `fuel_level_percentage` number, nullable
      - `mileage` TrackingUpdateMileageData
        - `timestamp` string, date-time, required — Timestamp at which tracking event occured
        - `mileage_meter` number, nullable
      - `weight` TrackingUpdateWeightData
        - `timestamp` string, date-time, required — Timestamp at which tracking event occured
        - `axle_weight` number, nullable
      - `voltage` TrackingUpdateVoltageData
        - `timestamp` string, date-time, required — Timestamp at which tracking event occured
        - `external_power_supply_voltage_mv` number, nullable — External supply voltage in millivolts. Report the voltage of the external power line, not the internal battery: a unit running on its own battery should report a value at or near zero.

## Response `200`

Successful Response

- TrackingUpdateResponse — Response schema for the tracking update webhook. This schema is used to return errors or success messages.
  - `errors` ErrorStatus[], nullable — List of errors that occurred during the webhook processing. If empty/omitted, the webhook was processed successfully.
    - `error_type` 'USER_INPUT_ERROR' | 'INTERNAL_ERROR' | 'NOT_SUPPORTED', required
    - `error_message` string, nullable — (User visible) error message

## Other responses

- `400` — Bad Request — invalid input or malformed request
- `401` — Unauthorized — missing or invalid authentication credentials
- `403` — Forbidden — insufficient permissions for this operation
- `422` — Validation Error
- `429` — Too Many Requests — rate limit exceeded. See the `Retry-After` header
- `500` — Internal Server Error
- `503` — Service Unavailable — temporarily unable to handle the request

---

[API](https://skmtc.dev/qargo/apis/qargo-tms-api.md) · [All operations](https://skmtc.dev/qargo/apis/qargo-tms-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/qargo/qargo-tms-api/revisions/17297902e7ce/schema)
