Skip to content

Finalise Appointment

Request

Used to complete a booking after a time has been identified via Available Appointment or temporarily held using Reserve Appointment.

Unless explicitly overridden in the request body, the API will apply the default Appointment Type configuration for:

  • Item or Item Group

  • Duration

  • Width

  • Profession

  • Resource

Security
x-api-key and a-api-key
Path
appointment_idintegerrequired
Bodyapplication/json
client_idintegerrequired
appointment_type_idintegerrequired
appointment_status_idinteger

If omitted, the appointment is created with the system default status of Booked.

account_idinteger

If omitted, the patient's default account is applied.

profession_idinteger

If omitted, the practitioner's default profession is applied.

item_idinteger

If item_id is not null, then item_group_id must be null

If omitted, the default item configured on the selected appointment type is applied.

item_group_idinteger

If item_group_id is not null, then item_id must be null

If omitted, the default item group configured on the selected appointment type is applied.

notesstring
column_numberinteger
Default:1
resource_idsArray of integers

If omitted, the default resources configured on the selected appointment type are applied.

Example:
[ 1, 2 ]
sms_reminderboolean

If omitted, patient default preferences are applied

email_reminderboolean

If omitted, patient default preferences are applied

sms_confirmationboolean

If omitted, patient default preferences are applied

email_confirmationboolean

If omitted, patient default preferences are applied

sms_follow_upboolean

If omitted, patient default preferences are applied

email_follow_upboolean

If omitted, patient default preferences are applied

curl -i -X POST \
  'https://api.pracsuite.com/v1/appointment/{appointment_id}' \
  -H 'Content-Type: application/json' \
  -H 'a-api-key: YOUR_API_KEY_HERE' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -d '{
    "client_id": 0,
    "appointment_type_id": 0,
    "appointment_status_id": 0,
    "account_id": 0,
    "profession_id": 0,
    "item_id": 0,
    "item_group_id": 0,
    "notes": "string",
    "column_number": 1,
    "resource_ids": [
      1,
      2
    ],
    "sms_reminder": true,
    "email_reminder": true,
    "sms_confirmation": true,
    "email_confirmation": true,
    "sms_follow_up": true,
    "email_follow_up": true
  }'

Responses

Successful

Bodyapplication/json
row_numintegerread-only
total_rowsintegerread-only
tenant_idinteger
appointment_idinteger
client_idinteger
app_timestring^\d{4}-\d{2}-\d{2}[Tt]\d{2}:\d{2}:\d{2}$

ISO 8601 local datetime in the tenant's timezone.

Example:"2026-01-01T12:05:30"
descriptionstring
appointment_type_idinteger
appointment_status_idinteger
categorystring
durationinteger
notesstring
practitioner_idinteger
business_idinteger
profession_idinteger
item_idinteger
account_idinteger
createdstring, (date-time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,6...

RFC 3339 UTC date-time (Z) with microsecond precision.

Example:"2020-09-12T11:09:42.687393Z"
modifiedstring, (date-time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,6...

RFC 3339 UTC date-time (Z) with microsecond precision.

Example:"2020-09-12T11:09:42.687393Z"
item_group_idinteger
resource_idsArray of integers
Response
{ "row_num": 0, "total_rows": 0, "links": { "self": "https://api.pracsuite.com/v1/appointment/1", "resources": "https://api.pracsuite.com/v1/appointment/1/resource" }, "tenant_id": 0, "appointment_id": 0, "client_id": 0, "app_time": "2026-01-01T12:05:30", "description": "string", "appointment_type_id": 0, "appointment_status_id": 0, "category": "string", "duration": 0, "notes": "string", "practitioner_id": 0, "business_id": 0, "profession_id": 0, "item_id": 0, "account_id": 0, "created": "2020-09-12T11:09:42.687393Z", "modified": "2020-09-12T11:09:42.687393Z", "item_group_id": 0, "telehealth_patient_link": "string", "telehealth_practitioner_link": "string", "resource_ids": [ 0 ] }