Recursos
Cambios y versiones
Cómo versionamos la API, qué consideramos un cambio compatible, cómo avisamos de los cambios y el registro de cambios desde la v1.
Última revisión: 1 de octubre de 2026
Cómo versionamos
La versión mayor va en la ruta: /api/integrations/v1. Dentro de una versión mayor solo hacemos cambios compatibles, que no deberían romper una integración bien hecha:
- Añadir endpoints nuevos.
- Añadir campos opcionales a las peticiones.
- Añadir campos a las respuestas y a las cargas de los webhooks.
- Añadir valores nuevos a un enumerado de respuesta (un
outcomeo unstatusnuevo). - Añadir tipos de evento de webhook (solo los recibirás si te suscribes a ellos).
- Añadir tipos de error (
type) nuevos o cambiar la redacción detitleydetail.
Para que esto no te afecte:
- Ignora los campos que no conozcas en las respuestas y en los webhooks; no falles si aparece uno nuevo.
- Trata con un caso por defecto los valores de enumerado desconocidos.
- Decide por
statusytype, nunca por el texto de los mensajes.
Un cambio incompatible (quitar o renombrar un campo, hacer obligatorio uno opcional, cambiar el significado de un valor) solo llegaría con una nueva versión mayor (/v2). En ese caso mantendríamos la v1 funcionando en paralelo durante un periodo de transición y te avisaríamos por correo con antelación suficiente para adaptarte.
Los avisos de cambios (y de mantenimientos programados) se envían por correo al contacto técnico que nos diste. Si cambia, dínoslo.
Registro de cambios
v1.0 — octubre de 2026
Primera versión pública de la API de integración.
Avisos y catálogo
GET /catalog,POST /visits(conIdempotency-Key),GET /visits,GET /visits/{id},POST /visits/{id}/cancelyGET /visits/{id}/report.serviceTypeCodeen el alta (oserviceTypeId): el código es el mismo en los dos entornos; si llegan los dos, mandaserviceTypeCode.- Tiempo estimado por bloques (
estimatedMinutes). GET /visits/{id}/eta: hora estimada de llegada con la unidad en camino.
Autenticación y entornos
X-Api-Keycon ámbitosvisits:write,visits:readyreports:read, y límite de peticiones por clave.- Claves con prefijo de entorno:
srd_live_…(producción) ysrd_test_…(pruebas). Una clave en el entorno equivocado responde401/errors/provider-api/wrong-environment. Las claves emitidas antes con el formatosrd_<prefijo>_<secreto>siguen funcionando en producción. - Cabecera
X-Serad-Environment(productionosandbox) en todas las respuestas. - Entorno de pruebas (sandbox) en
https://sandbox-api.saludenruta.es/api/integrations/v1, con su propia base de datos y un simulador que hace avanzar los avisos y envía los webhooks como en producción. Endpoints solo de sandbox:POST /sandbox/visits/{id}/advanceyPOST /sandbox/reset, y la cabeceraX-Sandbox-Simulation: manualen el alta.
Webhooks
- Firmados con HMAC-SHA256:
visit.created,visit.assigned,visit.en_route,visit.on_site,visit.finished,visit.cancelled,visit.invoicedyreport.shared. - 12 intentos con espera exponencial (de 30 s a 1 h, unas 5 horas en total) y reenvío manual.
Referencia
- Errores en formato RFC 9457.
GET /openapi.json: especificación OpenAPI 3.1 pública, con los webhooks.- Esta documentación para desarrolladores.
¿Falta algo o algo no cuadra con lo que ves? Escribe al equipo técnico: info@saludenruta.es.
