appointments

Create appointment

Create a new appointment.

post/api/appointments/

Request body

patient_idstring uuid required

Patient UUID

operator_idstring uuid required

Operator UUID

appointment_type_codestring required

Appointment type code

appointment_datetimestring date-time required

Appointment datetime (ISO)

statusstring nullable

Appointment status

locationstring nullable

Location type (online/in_person)

expert_in_personboolean nullable

Whether the expert must be physically in person

availability_idstring uuid nullable

Availability UUID

clinic_location_idstring uuid nullable

Clinic location UUID (in-person)

room_idstring uuid nullable

Room UUID (in-person)

room_availability_idstring uuid nullable

Room availability UUID for in-person appointments

meeting_linkstring nullable

Meeting link

payment_statusstring nullable

Payment status

payment_datetimestring date-time nullable

Payment completion datetime (admin-only)

patient_costnumber nullable

Patient cost (EUR)

operator_costnumber nullable

Operator cost (EUR)

is_tax_deductibleboolean nullable

Tax deductible flag

payment_methodstring nullable

Payment method

notesstring nullable

Notes

is_free_appointmentboolean nullable

Admin-only flag to create a free PSI/NUTRI appointment

Response

Successful Response

idstring required

Appointment UUID

appointment_datetimestring date-time required

Appointment date and time

duration_secondsinteger required

Duration in seconds

statusstring required

Appointment status

appointment_type_codestring required

Appointment type code

operator_idstring required

Operator UUID

operator_first_namestring required

Operator first name

operator_last_namestring required

Operator last name

operator_emailstring nullable

Operator email

operator_professionstring nullable

Operator profession

joint_operator_first_namestring nullable

First name of the other expert, set only on a joint appointment merged into a single item

joint_operator_last_namestring nullable

Last name of the other expert, set only on a joint appointment merged into a single item

joint_partially_paidboolean

True when a joint appointment has one side paid and the other still to pay

locationstring required

Appointment location (online/in_person)

clinic_location_idstring nullable

Clinic location UUID (null for online appointments)

meeting_linkstring nullable

Meeting link if available

meeting_link_statusstring required

Meeting link status: available, pending_consent, not_created, pending_consent_and_not_created, phone_call

patient_costnumber required

Patient cost in EUR

payment_statusstring nullable

Payment status

payment_completed_atstring date-time nullable

Payment completion timestamp

payment_methodstring nullable

Payment method

paid_with_couponboolean

True when payment succeeded using a coupon

receipt_file_pathstring nullable

Receipt file path in storage, if available

created_atstring date-time required

Appointment creation timestamp

Example response

{
  "appointment_datetime": "2025-11-20T10:00:00+00:00",
  "appointment_type_code": "CALL_CONOSCITIVA",
  "created_at": "2025-11-15T10:00:00+00:00",
  "duration_seconds": 3600,
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "location": "online",
  "meeting_link": "https://meet.example.com/room123",
  "meeting_link_status": "available",
  "operator_email": "mario.rossi@example.com",
  "operator_first_name": "Mario",
  "operator_id": "123e4567-e89b-12d3-a456-426614174001",
  "operator_last_name": "Rossi",
  "operator_profession": "PSICOLOGO",
  "paid_with_coupon": false,
  "patient_cost": 49,
  "payment_completed_at": "2025-11-15T10:30:00+00:00",
  "payment_method": "stripe",
  "payment_status": "succeeded",
  "status": "DA_FARE"
}

Changes