Skip to content

Cancel an appointment

Request

Cancels the appointment matching id for the practice identified by X-Practice-Id. The appointment state is set to Cancelled and cancelled_at is recorded.

Cancellation is only permitted when the appointment is not in a final state. The following states are final and cannot be cancelled: Completed, Cancelled, Did not attend, Arrived, and In surgery. Only Appointments in Pending and Confirmed may be cancelled.

If the appointment is already Cancelled, the API responds with 422. If no appointment exists for that practice and id, the API responds with 404. An unknown or inactive cancellation_reason_id results in 422.

Security
oauth2(Required scopes: appointment:write)
Path
idstring, (uuid)required

Resource identifier to filter/find.

Headers
X-Practice-Idstring, (uuid)required

UUID of the practice in whose context the request is executed. The API uses this to resolve data the caller is permitted to access for that practice.

Bodyapplication/jsonrequired
cancellation_reason_idstring, (uuid)required

The UUID of the cancellation reason. This should correspond to a cancellation reason configured for the practice.

curl -i -X POST \
  'https://docs.api.dentally.com/_mock/docs/versions/2026-01-01/nexgen/appointments/{id}/cancel' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Practice-Id: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -d '{
    "cancellation_reason_id": "3fab8e39-823f-40f5-b697-7b46a607dd81"
  }'

Responses

Appointment successfully cancelled.

Response
No content