Skip to content

Create a DMS service booking

POST
/api/v1/dealerships/{dealership_id}/service_booking/bookings
curl --request POST \
--url https://dashboard.dealerstudio.com.au/api/v1/dealerships/1/service_booking/bookings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "workshop_id": 7, "odometer": 42000, "booking_date": "2026-10-01", "starts_at": "2026-10-01T09:00:00", "ends_at": "2026-10-01T10:00:00", "customer_comment": "example", "advisor_id": 1, "booking_source_code": "DealerStudio", "third_party_id": "example", "notes": [ "example" ], "customer": { "first_name": "Jane", "last_name": "Citizen", "email": "jane@example.com", "mobile": "0412345678", "phone": "example" }, "vehicle": { "vin": "JTDBR32E720012345", "registration_number": "TESTED", "make_id": 1, "make": "Toyota", "model": "Camry", "year": 2020, "provider_vehicle_key": "example" }, "services": [ { "code": "SERV15", "name": "15,000km Service", "duration_hours": 1, "price": 1, "codebook_source_code": "example", "operation_type": "schedule" } ] }'

Creates a booking in the dealership DMS and persists a Dealer Studio dms_service_bookings record with the provider reference. For Titan, pass advisor_id from the selected availability slot (Titan requires ServiceAdvisorId). When omitted, Dealer Studio re-resolves the matching slot; if none is found the API returns validation_error. Requires dms_service_booking:dealership.

dealership_id
required
integer

Dealership ID

Media typeapplication/json
object
workshop_id
required
integer

Example

7
odometer
integer

Example

42000
booking_date
required
string

Example

2026-10-01
starts_at
required
string

Example

2026-10-01T09:00:00
ends_at
required
string

Example

2026-10-01T10:00:00
customer_comment
string
nullable
advisor_id

Required for Titan. Copy from the selected /availability slot. Ignored by TUNE.

integer
nullable
booking_source_code
string
nullable

Example

DealerStudio
third_party_id
string
nullable
notes
Array<string>
nullable
customer
required
object
first_name
required
string

Example

Jane
last_name
required
string

Example

Citizen
email
string

Example

jane@example.com
mobile
required
string

Example

0412345678
phone
string
nullable
vehicle
required
object
vin
string
nullable

Example

JTDBR32E720012345
registration_number
required
string

Example

TESTED
make_id
integer
nullable
make
string
nullable

Example

Toyota
model
string
nullable

Example

Camry
year
integer
nullable

Example

2020
provider_vehicle_key
string
nullable
services
required
Array<object>
object
code
required
string

Example

SERV15
name
string

Example

15,000km Service
duration_hours
number
nullable
price
number
nullable
codebook_source_code
string
nullable
operation_type
string
nullable

Example

schedule

Booking created

Media typeapplication/json
object
id
required
integer
provider
required
string
provider_reference
required
string
status
required
string
appointment_starts_at
string format: date-time
nullable
appointment_ends_at
string format: date-time
nullable
capabilities
object
provider
required
string
service_options
required
boolean
live_availability
required
boolean
direct_confirmation
required
boolean
rescheduling
required
boolean
cancellation
required
boolean
separate_collection_times
required
boolean

Example

{
"id": 1,
"provider": "titan",
"provider_reference": "RO-999",
"status": "confirmed",
"capabilities": {
"provider": "titan",
"service_options": true,
"live_availability": true,
"direct_confirmation": true,
"rescheduling": false,
"cancellation": false,
"separate_collection_times": false
}
}