Services define the procedures and consultations your clinic offers. Each service has a name, duration, price, and an optional list of assigned doctors. The service catalog drives two key workflows: when staff schedule an appointment internally they can attach a service to it, and when patients book online they first select a service before choosing a doctor and time slot. Keeping your catalog accurate and up to date ensures that appointment slots are allocated correctly and that patients see the right options during booking.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/FerchoSG/healthcare-web/llms.txt
Use this file to discover all available pages before exploring further.
Creating a new service
Open the Services tab
Go to Configuración in the sidebar and click the Servicios tab. The service catalog table lists all existing services with their duration, price, assigned doctors, and status.
Click Nuevo servicio
Click the Nuevo servicio button in the top-right corner of the catalog. A dialog opens with the service creation form.
Enter the service name
Type a clear, patient-facing name in the Nombre del servicio field (required). This name appears in the booking wizard and in the appointment scheduler. Example:
Consulta general or Limpieza dental.Add an optional description
Use the Descripción field to provide a short explanation of the service. This appears as subtitle text in the service list and can help patients choose the right option.
Set duration and price
Enter the Duración (minutos) and Precio (colones CRC). Duration must be at least 1 minute. Price is stored internally in cents (integer), so enter the full colón amount — for example, enter
15000 for ₡15,000. CitaBox divides by 100 when displaying prices using the es-CR locale format.Assign doctors
In the Doctores asignados section, check the doctors who perform this service. Leave all doctors unchecked to make the service available with any doctor. Selecting specific doctors restricts the booking wizard to show only those doctors for the service.
Field reference
| Field | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Service name shown to staff and patients. |
description | No | string | Optional short description displayed below the service name. |
duration_minutes | Yes | integer (≥ 1) | How long the service takes. Determines the end time of appointments. |
price | Yes | integer (≥ 0) | Price in cents (CRC). A value of 1500000 equals ₡15,000.00. |
is_active | — | boolean | When false, the service is hidden from booking but preserved in historical records. Set via the edit form. |
doctor_ids | No | string[] | IDs of doctors assigned to this service. Empty array means all doctors can offer it. |
Prices are stored in the database as integer cents. The UI formats them using
Intl.NumberFormat with the es-CR locale and CRC currency, so ₡15,000 is stored as 1500000. When integrating via the API, always send and read price as an integer number of cents.Editing a service
Click the pencil icon on any row in the service catalog to open the edit dialog. All fields includingis_active and doctor_ids can be updated. Changes are submitted via PATCH /services/{id}.
Deactivating a service
To hide a service from the booking wizard without deleting it, edit the service and uncheck the Activo toggle (settingis_active to false). Inactive services remain attached to past appointments and invoices — historical data is preserved. To reactivate a service, edit it again and re-enable the toggle.
Deleting a service
Click the trash icon on a service row and confirm the dialog. This callsDELETE /services/{id}. Use deactivation instead of deletion when you may need to reactivate the service in the future or when it is referenced by existing appointment records.
How services appear in the app
New appointment dialog: When staff create an appointment from the calendar or front desk, they can optionally select a service. Selecting a service automatically sets the appointment’s end time based onduration_minutes.
Patient booking wizard: The public booking flow at citabox.app/book starts with service selection. Only active services with is_active: true appear. After selecting a service, the patient is shown only the doctors assigned to that service (or all doctors if none are assigned), then available time slots.