Saltar al contenido
Changelog
Contrato OpenAPI 3.1: openapi.yaml
Cambios

Cambios de la API (changelog)

Cada cambio del contrato público, con fecha. Los cambios compatibles no exigen nada; los de ruptura llegan como versión nueva.

23 de septiembre de 2026 · el contrato dice lo que hace el servidor

Revisión del contrato contra el código. Nada de lo que ya devolvía la API cambia de forma; se documenta lo que faltaba y se corrigen cuatro comportamientos de entrada que no cumplían lo escrito.

ÁreaQué cambia
Reservaspricing tiene dos formas según role: la completa cuando eres originadora y solo { currency, net_executor } cuando ejecutas una reserva de otra empresa (bolsa). Ya era así; ahora está en openapi.yaml (PricingOriginator · PricingExecutor) y en Bookings.
WebhooksSe documenta la cabecera X-WAT-Attempt (número de intento, desde 1), que ya se enviaba. X-WAT-Delivery es el mismo en todos los reintentos de una entrega (antes se decía lo contrario). El patrón de X-WAT-Signature admite las dos firmas de una rotación con solape.
WebhooksGET /webhooks/{id}/deliveries: limit se valida como en el resto de listas (400 si no es un entero ≥ 1; más de 100 se recorta). Antes un valor inválido se convertía en 25 sin avisar.
Catálogo?active= en clientes, conductores y vehículos solo admite true o false; otro valor es 400 validation_error (antes se ignoraba y devolvía todos).
ConvencionesUn cuerpo sin Content-Type también es 415. Una petición rechazada por scope (403 insufficient_scope) cuenta contra el límite y lleva X-RateLimit-*, como cualquier otra respuesta con clave válida.
Erroresforbidden, method_not_allowed y not_implemented siguen en la enumeración pero quedan marcados como reservados: hoy ningún endpoint los devuelve con el sobre JSON. Ver Errores.

21 de septiembre de 2026 · rotación del secreto con solape

ÁreaQué hay
WebhooksNuevo POST /webhooks/{id}/rotate-secret con overlap_minutes (obligatorio, 0–1440). Devuelve el secreto nuevo una sola vez y, durante la ventana, cada entrega lleva dos firmas en X-WAT-Signature (v1=nueva,v1=anterior). Ver Firmas.
WebhooksUna entrega que se queda a medias (el proceso muere antes de escribir el resultado) vuelve sola a la cola pasado el plazo; puede llegarte duplicada con el mismo X-WAT-Event-Id. Ver Reintentos.

v1.0 · 18 de septiembre de 2026

Primera versión pública de la WAT API.

ÁreaQué hay
AutenticaciónClaves wat_live_ en Authorization: Bearer. Scopes por clave ⊆ integración. GET /integrations/me. El prefijo wat_test_ está previsto en el formato, pero no hay servidor de pruebas: ver Entornos.
ReservasGET /bookings con filtros de estado, cliente, fechas y external_id; GET /bookings/{id} por UUID o número de reserva. passenger y pricing por scope.
CatálogoGET /customers, /drivers, /vehicles (lista y detalle).
EventosGET /events con filtro por tipo y recurso.
WebhooksCRUD, prueba y entregas. Ocho eventos de reserva. Firma HMAC-SHA256 v1=. Reintentos 30 s → 32 min, 8 intentos; desactivación a los 100 fallos.
Identificadores externosGET/PUT/DELETE /bookings/{id}/external-id.
ConvencionesErrores { error: { code, message, request_id } }, cursor firmado, X-WAT-Request-Id, Idempotency-Key, límites 600/1200/300 por minuto.
Contratoopenapi.yaml (OpenAPI 3.1) con x-scopes por operación.

Previsto (sin fecha)

  • Escritura de reservas (bookings:create, bookings:write, bookings:cancel).
  • Facturas y cobros (invoices:read, payments:read, billing:read).
  • Posición del vehículo en un servicio (tracking:read).
  • Identificadores externos para clientes, conductores y vehículos.
  • Reenvío manual de una entrega de webhook.
Cambios de la API (changelog) · API de WAT