Documentación de la API REST de Booknetic
Documentación de la API REST de Booknetic basada en la especificación OpenAPI: endpoints, parámetros y ejemplos de solicitudes y respuestas en JSON.
Documentación de la API REST de Booknetic basada en la especificación OpenAPI: endpoints, parámetros y ejemplos de solicitudes y respuestas en JSON.
Este documento describe los endpoints de la API REST de Booknetic incluidos en la especificación OpenAPI proporcionada.
Versión: 1.0.0
Ruta base: /wp-json/booknetic/v1
Formato: JSON (application/json)
Todos los endpoints de esta documentación son relativos a:
/wp-json/booknetic/v1
En una instalación típica de WordPress, la URL completa es:
https://tu-dominio.com/wp-json/booknetic/v1
Enviar y recibir JSON:
GET /appointments
Devuelve una lista de citas.
Respuesta
200 OK — Lista de citas
Cuerpo de la respuesta (esquema)
Arreglo de Appointment
Ejemplo de respuesta
[
{
"id": 101,
"customer_id": 55,
"service_id": 9,
"staff_id": 3,
"date": "2026-01-10T14:30:00Z",
"status": "approved"
}
]POST /appointments
Crea una nueva cita.
Cuerpo de la solicitud
Obligatorio — AppointmentCreate
Ejemplo de solicitud
{
"customer_id": 55,
"service_id": 9,
"staff_id": 3,
"date": "2026-01-10T14:30:00Z"
}Respuestas
201 Created — Cita creada
Cuerpo de la respuesta: Appointment
Ejemplo de respuesta
{
"id": 102,
"customer_id": 55,
"service_id": 9,
"staff_id": 3,
"date": "2026-01-10T14:30:00Z",
"status": "pending"
}GET /appointments/{id}
Devuelve una única cita por su ID.
Parámetros de ruta
Nombre | Tipo | Obligatorio | Descripción |
| id | integer | Sí | ID de la cita |
Respuestas
200 OK — Cita
Cuerpo de la respuesta: Appointment
Ejemplo de respuesta
{
"id": 102,
"customer_id": 55,
"service_id": 9,
"staff_id": 3,
"date": "2026-01-10T14:30:00Z",
"status": "pending"
}PUT /appointments/{id}
Actualiza una cita por su ID.
Parámetros de ruta
Nombre | Tipo | Obligatorio | Descripción |
| id | integer | Sí | ID de la cita |
Cuerpo de la solicitud
Obligatorio — AppointmentUpdate
Ejemplo de solicitud
{
"staff_id": 4,
"date": "2026-01-10T15:00:00Z",
"status": "approved"
}Respuestas
200 OK — Cita actualizada
El archivo OpenAPI no define un esquema de respuesta para este endpoint.
En tu implementación, puedes devolver el objeto Appointment actualizado para mantener la consistencia.
DELETE /appointments/{id}
Elimina una cita por su ID.
Parámetros de ruta
Nombre | Tipo | Obligatorio | Descripción |
| id | integer | Sí | ID de la cita |
Respuestas
204 No Content — Cita eliminada
PUT /appointments/{id}/change-status
Actualiza el estado de una cita.
Parámetros de ruta
Campo | Tipo | Obligatorio | Descripción |
| id | integer | Sí | ID de la cita |
Cuerpo de la solicitud
Obligatorio
Campo | Tipo | Obligatorio | Descripción |
| status | string | Sí | Nuevo valor del estado |
Ejemplo de solicitud
{
"status": "approved"
}Respuestas
200 OK — Estado actualizado
El archivo OpenAPI no define un esquema de respuesta.
Recomendado: devolver el Appointment actualizado o una carga útil estándar de éxito.
GET /appointments/statuses
Devuelve una lista de estados de cita disponibles.
Respuestas
200 OK — Estados disponibles
Cuerpo de la respuesta: arreglo de cadenas
Ejemplo de respuesta
["pending", "approved", "canceled"]GET /appointments/available-times
Devuelve una lista de franjas horarias disponibles para citas.
Respuestas
200 OK — Horarios disponibles
Cuerpo de la respuesta: arreglo de cadenas
Ejemplo de respuesta
[
"2026-01-10 14:30",
"2026-01-10 15:00",
"2026-01-10 15:30"
]Nota: El esquema OpenAPI usa "example": "2026-01-10 14:30" y define una cadena simple.
Si tu sistema espera zona horaria o ISO8601, documéntalo explícitamente.
GET /customers
Devuelve una lista de clientes.
Respuestas
200 OK — Lista de clientes
Cuerpo de la respuesta: arreglo de Customer
Ejemplo de respuesta
[
{
"id": 55,
"name": "Jane Doe",
"email": "[email protected]",
"phone": "+1 555 123 4567"
}
]GET /customer/info/{id}
Devuelve un cliente por ID.
Campo | Tipo | Obligatorio | Descripción |
| id | integer | Sí | ID del cliente |
Respuestas
200 OK — Información del cliente
Cuerpo de la respuesta: Customer
Ejemplo de respuesta
{
"id": 55,
"name": "Jane Doe",
"email": "[email protected]",
"phone": "+1 555 123 4567"
}POST /customer/create
Crea un nuevo cliente.
Cuerpo de la solicitud
Obligatorio — CustomerCreate
Ejemplo de solicitud
{
"name": "Jane Doe",
"email": "[email protected]",
"phone": "+1 555 123 4567"
}Respuestas
201 Created — Cliente creado
Cuerpo de la respuesta: Customer
POST /customer/edit
Edita un cliente existente.
Cuerpo de la solicitud
Obligatorio — CustomerUpdate
Ejemplo de solicitud
{
"id": 55,
"name": "Jane A. Doe",
"email": "[email protected]",
"phone": "+1 555 123 4567"
}Respuestas
200 OK — Cliente actualizado
El archivo OpenAPI no define un esquema de respuesta.
Recomendado: devolver el objeto Customer actualizado.
POST /customer/delete
Elimina un cliente por ID.
Cuerpo de la solicitud
Obligatorio
Campo | Tipo | Obligatorio | Descripción |
| id | integer | Sí | ID del cliente |
Ejemplo de solicitud
{
"id": 55
}Respuestas
200 OK — Cliente eliminado
Este endpoint usa POST en lugar de DELETE. Si es intencional (p. ej., patrones de WP, permisos o restricciones de nonce), documenta el motivo.
Campo | Tipo | Notas |
| id | integer | ID de la cita |
| customer_id | integer | ID del cliente relacionado |
| service_id | integer | ID del servicio relacionado |
| staff_id | integer | ID del personal relacionado |
| date | string (date-time) | Fecha y hora ISO 8601 |
| status | string | Estado de la cita |
Campos obligatorios: customer_id, service_id, date
Campo | Tipo | Obligatorio | Notas |
| customer_id | integer | Sí | ID del cliente |
| service_id | integer | Sí | ID del servicio |
| staff_id | integer | No | ID del personal |
| date | string (date-time) | Sí | Fecha y hora ISO 8601 |
Campo | Tipo | Obligatorio | Notas |
| staff_id | integer | No | ID del personal |
| date | string (date-time) | No | Fecha y hora ISO 8601 |
| status | string | No | Estado de la cita |
Campo | Tipo | Notas |
| id | integer | ID del cliente |
| name | string | Nombre del cliente |
| string (email) | Correo electrónico del cliente | |
| phone | string | Teléfono del cliente |
Campos obligatorios: name
Campo | Tipo | Obligatorio | Notas |
| name | string | Sí | Nombre del cliente |
| string (email) | No | Correo electrónico del cliente | |
| phone | string | No | Teléfono del cliente |
Campos obligatorios: id
Campo | Tipo | Obligatorio | Notas |
| id | integer | Sí | ID del cliente |
| name | string | No | Nombre del cliente |
| string (email) | No | Correo electrónico del cliente | |
| phone | string | No | Teléfono del cliente |