Skip to main content

PATCH /appointments/:id

Partially update an existing appointment. Only the fields included in the request body are modified — all other fields remain unchanged.

Cannot be called on appointments in a terminal state (canceled, refunded, failed) or with a past appointment_time.

State-Dependent Field Access

Which fields can be patched depends on the appointment's current status:

Fieldnew / pendingready / paying / paid
consumer_nameYesYes
consumer_phoneYesYes
driver_notesYesYes
configYesYes
appointment_timeYesNo
consumer_at_pickupYesNo
pickup_location_idYesNo
delivery_location_idYesNo
vehicle_vinYesNo
vehicle_makeYesNo
vehicle_modelYesNo
vehicle_yearYesNo
vehicle_colorYesNo
vehicle_manualYesNo

Once an appointment reaches ready status, move staging has begun. Location, vehicle, and scheduling fields are frozen to prevent inconsistencies with the move being created.

System-managed fields (id, status, customer_id, move_id, workflow_set_id, payment fields, and timestamps) are never patchable.

Example Request

PATCH /v1/appointments/:id
{
"consumer_phone": "+15555550199",
"driver_notes": "Updated gate code: 5678"
}

Body Params

FieldTypeRequired?Description
consumer_nameStringOptionalConsumer full name.
consumer_phoneStringOptionalConsumer mobile phone number.
driver_notesStringOptionalGate codes, special pickup instructions, or other notes for the driver.
configObjectOptionalFlexible JSONB metadata object for integration-specific keys.
appointment_timeStringOptionalISO 8601 timestamp. Only modifiable in new or pending status.
consumer_at_pickupBooleanOptionalWhether the vehicle is at the consumer's location. Only modifiable in new or pending status.
pickup_location_idNumberOptionalHopDrive location ID for the consumer's pickup address. Only modifiable in new or pending status.
delivery_location_idNumberOptionalHopDrive location ID for the dealership address. Only modifiable in new or pending status.
vehicle_vinStringOptionalVehicle Identification Number. Only modifiable in new or pending status.
vehicle_makeStringOptionalVehicle make. Only modifiable in new or pending status.
vehicle_modelStringOptionalVehicle model. Only modifiable in new or pending status.
vehicle_yearNumberOptionalVehicle model year. Only modifiable in new or pending status.
vehicle_colorStringOptionalVehicle color. Only modifiable in new or pending status.
vehicle_manualBooleanOptionalManual transmission flag. Only modifiable in new or pending status.

Example Response

200 /v1/appointments/:id
{
"id": 88001234,
"status": "ready",
"customer_id": 1234,
"appointment_time": "2026-03-10T14:00:00+00:00",
"consumer_name": "Jane Smith",
"consumer_phone": "+15555550199",
"consumer_at_pickup": true,
"pickup_location_id": 9012,
"delivery_location_id": 5678,
"vehicle_vin": "1HGBH41JXMN109186",
"vehicle_make": "Honda",
"vehicle_model": "Accord",
"vehicle_year": 2022,
"vehicle_color": "Silver",
"vehicle_manual": false,
"driver_notes": "Updated gate code: 5678",
"move_id": null,
"config": { "transportation_type": "valet" },
"updatedat": "2026-03-05T19:15:00.000000+00:00"
}