/api/v1/suppliers/{supplierCode}/bookings/{bookingReference}/events

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

ParameterTypeRequiredDescription
supplierCodestring(1-10 chars): Your unique supplier code provided by Suntransfers
bookingRefstring(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.

👍

✅ Tip

Both 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)

  1. 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": "**********"
    }
  2. 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": "**********"
    }
  3. 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": "**********"
    }
  4. 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": "**********"
    }
Language
Credentials
Basic
base64
:
Click Try It! to start a request and see the response here!