Send a structured vehicle tracking event tied to a specific booking.
Used to report important status updates like:
DRIVER_DEPARTED_TO_PICKUP
DRIVER_ARRIVED_AT_PICKUP
DRIVER_SUBMITTED_CUSTOMER_NO_SHOW
DRIVER_DEPARTED_TO_DROPOFF
DRIVER_ARRIVED_AT_DROPOFF
DRIVER_LIVE_LOCATION
You can see an detailed explanation here: Event types 📘
🧾 cURL Example
curl --location 'https://supplierhub-api.suntransfers.biz/api/v1/suppliers/STTEST/bookings/SUNTR_TEST1234/events' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic base64(username:password)}' \
--data '{
"eventType": "DRIVER_ARRIVED_AT_PICKUP",
"occurredAt": "2025-11-18T15:00:00+01:00",
"latitude": 3.232312211,
"longitude": -3.31231
}'
📌 URL Parameters
Parameter | Type | Required | Description |
---|---|---|---|
supplierCode | string | ✅ | (1-10 chars): Your unique supplier code provided by Suntransfers |
bookingRef | string | ✅ | (1-32 chars) Booking reference number you received via availability/booking integration. (e.g., SUNTR_AB1234) |
📦 Request Body
Parameter | Type | Required | Description |
---|---|---|---|
eventType | string | ✅ | Type of event, must be one of the predefined types explained 📘 Event types |
occurredAt | string | ✅ | Timestamp of hen the event occurred in ISO 8601 format (e.g., 2025-12-24T14:30:00Z or 2025-12-24T16:30:00+02:00). |
latitude | number | ❌ | Range: -90 to 90 Driver's current latitude as a decimal (e.g., 41.3851). Optional but highly recommended. |
longitude | number | ❌ | Range: -180 to 180 Driver's current longitude as a decimal (e.g., 2.1734). Optional but highly recommended. |
✅ TipBoth latitude and longitude must be provided together or both omitted. We strongly encourage you to always include them, as they add visibility and value to the tracking journey. They are mandatory for the DRIVER_LIVE_LOCATION event.
✅ Successful Response
{
"eventType": "DRIVER_ARRIVED_AT_DROPOFF",
"occurredAt": "2025-07-25T14:27:00+03:00",
"latitude":36.3152596,
"longitude": 30.4580575
}
Status 201 created
(empty response body)
❌ Validation Errors & Responses (returns JSON Problem Details - RFC 7807 with trace ID)
- Missing fields / Invalid values
{ "eventType": "DRIVER_ARRIVED_AT_DROPOFF", "latitude":36.3152596, "longitude": 30.4580575 }
Status: 400 Bad Request { "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1", "title": "One or more validation errors occurred.", "status": 400, "errors": { "$": [ "JSON deserialization for type 'SupplierHub.ExternalApi.v1.BookingEvents.CreateBookingEventRequest' was missing required properties including: 'occurredAt'." ], "create": [ "The create field is required." ] }, "traceId": "**********" }
- Invalid occurredAt date format
{ "eventType": "DRIVER_ARRIVED_AT_DROPOFF", "occurredAt": "205-07-25T14:27:00+03:00", "latitude":36.3152596, "longitude": 30.4580575 }
Status: 400 Bad Request { "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1", "title": "One or more validation errors occurred.", "status": 400, "errors": { "create": [ "The create field is required." ], "$.occurredAt": [ "The JSON value could not be converted to System.DateTimeOffset. Path: $.occurredAt | LineNumber: 2 | BytePositionInLine: 44." ] }, "traceId": "**********" }
- Only latitude or longitude its provided:
{ "eventType": "DRIVER_ARRIVED_AT_DROPOFF", "occurredAt": "2025-07-25T14:27:00+03:00", "latitude":36.3152596 }
Status: 400 Bad Request { "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1", "title": "One or more validation errors occurred.", "status": 400, "errors": { "Latitude": [ "Both Latitude and Longitude must be provided together." ], "Longitude": [ "Both Latitude and Longitude must be provided together." ] }, "traceId": "**********" }
- Invalid latitude or longitude:
If a non-numeric or malformed coordinate is provided:{ "eventType": "DRIVER_ARRIVED_AT_DROPOFF", "occurredAt": "2025-07-25T14:27:00+03:00", "latitude": "test", "longitude": 30.4580575 }
Status: 400 Bad Request "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1", "title": "One or more validation errors occurred.", "status": 400, "errors": { "create": [ "The create field is required." ], "$.latitude": [ "The JSON value could not be converted to System.Nullable`1[System.Double]. Path: $.latitude | LineNumber: 3 | BytePositionInLine: 22." ] }, "traceId": "**********" }