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

This is your first endpoint! Edit this page to start documenting your API.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

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

ParameterTypeRequiredDescription
eventTypestringType of event, must be one of the predefined types explained 📘 Event types
occurredAtstringTimestamp of hen the event occurred in ISO 8601 format (e.g., 2025-12-24T14:30:00Z or
2025-12-24T16:30:00+02:00).
latitudenumberRange: -90 to 90
Driver's current latitude as a decimal (e.g., 41.3851). Optional but highly recommended.
longitudenumberRange: -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": "**********"
    }
Path Params
string
required

(1-10 chars): Your unique supplier code provided by Suntransfers

string
required

(1-32 chars): The Suntransfers booking reference (e.g., SUNTR_AB1234)

Responses
200

Successful response

Language
Credentials
Basic
base64
:
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json