P Programa Taller
▶ Demo 3 meses por 1 €
API

Integrar la cita online en la web del taller con la agenda real

Una cita online que no conoce tu agenda es una segunda agenda que alguien tiene que cuadrar. Así se conecta la web del taller a los huecos reales del programa, con la cita como propuesta o en firme.

Por el equipo de Programa Taller · 20 oct 2026 · Lectura: 11 min
Ilustración de una ventana de navegador con un calendario de huecos, uno marcado en verde, unida por una línea a una agenda con una llave inglesa sobre fondo azul oscuro y violeta
En pocas palabras
  • La web pide los huecos con GET /appointments/availability, que ya descuenta horarios, boxes, comida, festivos y citas puestas.
  • La cita se guarda con POST /appointments como propuesta que confirma el taller o como reserva en firme, según el modo del taller.
  • Si el hueco se ocupa entretanto, la API devuelve hasta tres alternativas para ofrecer al cliente.
  • La clave va en el servidor de la web, nunca en el navegador, y cada POST lleva Idempotency-Key para no duplicar.
  • Escribir datos y recibir webhooks exige el plan de API Developer; avisar al cliente desde el programa, el Business.

Para integrar la cita online en la web del taller sin duplicar agendas, tu web tiene que preguntar los huecos libres a la agenda real del programa y, cuando el cliente elige uno, crear la cita allí mismo. Con la API de Programa Taller eso son dos llamadas: GET /appointments/availability devuelve los huecos teniendo en cuenta el horario, los boxes, la hora de comer, los festivos y las citas ya puestas, y POST /appointments guarda la cita como propuesta que confirmas tú o como reserva en firme, según cómo trabaje tu taller.

La diferencia con un formulario de contacto o con un calendario de reservas genérico es que no hay una segunda agenda que mantener. Si el martes a las 10:00 ya está ocupado en el programa, la web no lo ofrece. Lo que sigue sirve para dos personas: el gerente, que decide cómo quiere recibir las citas, y quien le hace la web, que encontrará las peticiones y los errores que tiene que controlar.

¿Qué formas hay de poner cita online en la web de un taller?

Antes de hablar de API conviene ver las alternativas, porque no todos los talleres la necesitan.

Formulario que manda un emailCalendario de reservas aparteWeb conectada a la agenda por API
Qué ve el clienteCampos y un «te llamamos»Huecos de un calendario propioHuecos reales de tu agenda
Riesgo de solaparseNo hay cita hasta que alguien llamaAlto: dos agendas que se desincronizanNinguno: la agenda es una
Trabajo para el equipoLlamar, cuadrar hueco, apuntarCopiar cada reserva al programaConfirmar con un clic o nada
Coste de puesta en marchaBajoBajo o medioHoras de desarrollo de tu web
Cuándo encajaPocas citas al mesTaller sin programa de gestiónWeb propia con tráfico y un informático o agencia

Si no tienes web propia o no quieres pagar desarrollo, el propio programa ya ofrece al cliente cita con huecos reales desde la página de seguimiento de su presupuesto. Lo cuenta el artículo sobre cita previa online con los huecos reales del taller. La API tiene sentido cuando quieres que la reserva empiece en tu web, con tu diseño, antes de que exista ningún presupuesto.

¿La cita entra en firme o la tengo que confirmar yo?

Es la primera decisión, y es del gerente. El programa guarda un modo de reserva por taller (booking_mode), que tu web puede leer con GET /workshop o en la propia respuesta de huecos libres.

¿Cuál elegir? Depende de lo que te cueste equivocarte. Si una cita mal puesta te descuadra el día (un cambio de embrague en un hueco de una hora, un coche que no cabe en el elevador libre), empieza en modo propuesta: revisas, confirmas y la web se entera. Si casi todo lo que entra por la web son revisiones y cambios de aceite de duración conocida, el modo reserva quita una tarea al equipo y el cliente sale con la cita cerrada.

Regla práctica para decidir

Mira las últimas veinte citas que te pidieron por teléfono. Si en más de la mitad tuviste que preguntar algo antes de dar hora («¿qué ruido hace?», «¿es automático?»), trabaja en modo propuesta. Si casi nunca preguntaste, prueba el modo reserva un mes.

Cómo lo vive el cliente: una reserva un domingo por la noche

Domingo, 22:40. Nerea Vidal ha visto el testigo del aceite encendido al volver de un viaje y no quiere esperar al lunes para llamar. Entra en la web del taller desde el móvil.

  1. Elige el servicio «Cambio de aceite y filtro» en una lista. La web ha leído esa lista y su precio de la tarifa del taller, así que lo que ve es lo mismo que le diría el mostrador.
  2. Ve los huecos de los próximos días: martes 9:00, martes 9:30, miércoles 16:00… Ninguno a menos de una hora vista y ninguno en festivo.
  3. Escribe su nombre, su móvil y la matrícula, 7391 LMR. El email es opcional.
  4. Pulsa «Pedir cita» para el martes a las 9:00.
  5. La web le contesta: «Hemos recibido tu cita para el martes a las 9:00. El taller la confirmará a primera hora del lunes». El taller trabaja en modo propuesta.

El lunes a las 8:05, la persona del mostrador ve la propuesta en la agenda, comprueba que el box está libre y la confirma. La web recibe el aviso y manda a Nerea su confirmación. Nadie ha tenido que llamar a nadie, y el hueco de las 9:00 del martes estuvo bloqueado desde el domingo, así que no se lo dieron a otro por teléfono.

Para el taller el cambio es de escala. Atender por teléfono veinte peticiones de cita a la semana son veinte conversaciones; recibirlas por la web son veinte clics de confirmación, a cualquier hora y sin que el teléfono suene mientras estás con un cliente delante.

Cómo se hace, paso a paso (para quien programa la web)

Esta parte es para tu informático o tu agencia. Todo está en la referencia de la API; aquí va el recorrido mínimo. La URL base es la del dominio del taller, con la forma https://<su-dominio>/api/v1; en los ejemplos usamos tu-taller.example.

1. Una clave con los permisos justos

La gerencia crea la clave en «Desarrolladores / API», con un nombre («Web de citas»), la finalidad y estos permisos: clients:write, vehicles:write, budgets:write, appointments:read y appointments:write. Si quieres mostrar el catálogo con precios, añade catalog:read. Escribir datos exige el plan de API Developer o superior; los planes están en la portada de la API.

La clave vive en el servidor de tu web, nunca en el JavaScript que se descarga el navegador. Si la pones en la página, cualquiera puede copiarla. El formulario habla con tu servidor y tu servidor habla con la API.

2. Pedir los huecos libres

Petición

curl "https://tu-taller.example/api/v1/appointments/availability?from=2026-10-20&to=2026-10-24&duration_minutes=60" \
  -H "Authorization: Bearer pt_live_4b7e…"

Respuesta (resumida)

{ "data": [ { "start": "2026-10-21T07:00:00.000Z", "end": "2026-10-21T08:00:00.000Z", "box": { "id": 2, "name": "Elevador 2" } } ], "duration_minutes": 60, "booking_mode": "propose" }

Detalles que conviene saber: los inicios van cada 30 minutos y siempre al menos una hora desde ahora; por defecto devuelve 7 días y como máximo 31; la duración admite de 15 a 720 minutos. Las horas vienen en UTC: la web tiene que pasarlas a hora peninsular antes de enseñarlas (la zona horaria del taller está en GET /workshop). Las propuestas pendientes también bloquean su hueco, así que no se ofrecen.

3. Cliente, vehículo y presupuesto

En el programa una cita cuelga siempre de un presupuesto (budget_id). Por eso, antes de la cita, la web crea o recupera tres cosas:

Cada POST lleva la cabecera Idempotency-Key con un identificador nuevo por operación. Si el móvil del cliente pierde la cobertura justo al pulsar y tu servidor reintenta, el programa reconoce la operación y no crea un segundo cliente ni un segundo presupuesto.

4. Crear la cita

Petición

curl -X POST "https://tu-taller.example/api/v1/appointments" \
  -H "Authorization: Bearer pt_live_4b7e…" \
  -H "Idempotency-Key: 3f9a61c2-0d4e-4b1f" \
  -H "Content-Type: application/json" \
  -d '{"budget_id": 6034, "start": "2026-10-21T09:00:00+02:00", "box_id": 2, "duration_minutes": 60, "mode": "propose"}'

La respuesta trae la cita con su status (proposed o confirmed), el cliente, el vehículo y el box. Con eso tu web ya puede pintar la pantalla de «cita recibida».

5. Enterarte de la confirmación

Si trabajas en modo propuesta, suscribe un webhook a appointment.confirmed: cuando el taller confirma, tu servidor recibe el aviso y manda el email o el mensaje de confirmación al cliente. Si el taller la anula, llega appointment.cancelled; si la mueve, appointment.updated. Los webhooks van firmados con HMAC-SHA256 y forman parte del plan Developer.

¿Qué pasa si dos clientes quieren el mismo hueco?

Pasa más de lo que parece: dos personas miran la web a la vez, o alguien coge por teléfono el hueco que un cliente tiene abierto en el móvil desde hace diez minutos. La API valida el hueco en el momento de crear la cita con la misma lógica que la consulta de disponibilidad. Si ya no está libre, responde 409 slot_unavailable y en error.alternatives trae hasta tres huecos alternativos.

Una web bien hecha no enseña un error: enseña esas alternativas. «Las 9:00 se acaban de ocupar. ¿Te va bien a las 9:30, a las 10:00 o el miércoles a las 16:00?» El cliente elige y sigue. Tu informático solo tiene que tratar ese código de respuesta como un caso normal, no como un fallo.

¿Quién avisa al cliente: la web o el programa?

Por defecto, crear una cita por API no avisa al cliente: lo hace tu web, con su propio email o mensaje. Si prefieres que lo mande el programa, la cita y el presupuesto admiten notify_client=true, que exige el permiso communications:send. El envío de email y SMS por API forma parte del plan Business.

Ten en cuenta una cosa: el enlace de seguimiento del presupuesto, el que el cliente usa para ver fases, fotos y aceptar, no sale por la API. Lo envía el taller desde el programa. Si quieres que el cliente lo reciba nada más reservar, crea el presupuesto con notify_client=true (también con communications:send): el programa le manda el acuse con su enlace de seguimiento.

Y el idioma: si tu web está en varios idiomas, guarda el que elija el cliente en su ficha (preferred_language). Así los avisos posteriores del taller le llegan en su idioma sin que nadie lo deduzca por el apellido.

Prueba la API sin tocar tu agenda

Con el programa a prueba puedes crear una clave, consultar tus huecos reales y ver cómo responde.

3 meses por 1 €

Errores que vemos al conectar una web de citas

Lo que la integración no resuelve

La API pone los huecos y guarda la cita; no diseña tu web. Alguien tiene que hacer el formulario, la pantalla de alternativas y los avisos, y eso son horas de desarrollo que conviene presupuestar antes. Si tu web es una plantilla que nadie toca desde hace años, quizá te compense más mandar al cliente a la cita de la página de seguimiento que ya tiene el programa.

Tampoco sustituye el criterio del taller. La agenda sabe qué huecos hay libres, pero no sabe si ese coche en concreto necesita dos horas en vez de una, ni si la pieza llegará a tiempo. Por eso el modo propuesta existe. Y una cita online no diagnostica: si el cliente escribe «hace un ruido raro», lo honesto es una propuesta que alguien revisa y una llamada, no una hora cerrada.

Lo que sí cambia es dónde pasa tu tiempo. En lugar de cuadrar horas por teléfono, el equipo confirma o ajusta, y el gerente puede mirar la agenda de la semana y decidir cuántos boxes abre, en vez de pelearse con ella. Si quieres ver cómo reparte el programa el trabajo entre boxes una vez el coche entra, tienes la guía sobre organizar boxes y mecánicos. Y para todas las integraciones posibles, la página de la API para talleres.

Preguntas frecuentes

¿Puedo poner la cita online en mi web sin un programador?

Para conectar tu web a la agenda por API hace falta alguien que programe el formulario y la parte de servidor. Si no lo tienes, la alternativa es la cita con huecos reales que el propio programa ofrece al cliente desde la página de seguimiento de su presupuesto, que no requiere desarrollo.

¿La web puede ofrecer huecos en festivos o fuera de horario?

No. La consulta de huecos libres usa la misma lógica que la agenda: horario del taller y de cada box, hora de comer y festivos nacionales, autonómicos y locales. Tampoco ofrece huecos a menos de una hora vista.

¿Qué diferencia hay entre proponer y reservar una cita por API?

Una propuesta bloquea el hueco pero queda pendiente hasta que el taller la confirma; una reserva entra en firme en la agenda. Qué se permite depende del modo de reserva que tenga configurado el taller.

¿Qué pasa si dos clientes reservan el mismo hueco a la vez?

La API valida el hueco al crear la cita. El segundo recibe un error 409 slot_unavailable con hasta tres alternativas, que la web puede ofrecer directamente al cliente.

¿La API envía al cliente el enlace de seguimiento del presupuesto?

No, la API nunca da ese enlace. Lo envía el taller desde el programa, o el propio programa si la petición se hace con notify_client=true y el permiso communications:send.

¿Qué plan de API necesito para una web de citas?

Consultar huecos es lectura y entra en el plan Incluido, pero crear clientes, presupuestos y citas es escritura y requiere el plan Developer. Si también quieres que el programa avise al cliente por email o SMS, necesitas el Business.

Sigue leyendo

API
API para taller mecánico: qué es y seis usos reales en tu negocio
17 oct 2026 · 13 min
Clientes
Seguimiento de la reparación online: lo que ve tu cliente en el móvil
19 oct 2026 · 10 min
Costes
¿Cuánto cuesta una recepcionista en un taller? La cuenta frente a la IA
18 oct 2026 · 11 min
3 meses por 1 € →