El módulo de autocheckout no depende de un PMS concreto. Habla con una interfaz mínima (“adaptador”) que cada PMS implementa. En esta demo el adaptador activo es native (nuestro propio PMS). Índice en JSON: /api/v1.
Móvil del huésped ──► /api/v1/checkout/{token} ──► Adaptador PMS ──► PMS del hotel (Mews, Cloudbeds… o el nuestro)
│
├─► TPV virtual del hotel (Redsys · Bizum) ← en la demo: simulado
└─► Motor VERI*FACTU (factura + registro encadenado + QR) ← o la factura la emite el PMS
getFolioByToken(token) → { stayRef, status, room, guest, checkIn, checkOut, lines[], desglose[], total }
settleAndCheckout(stayRef, {billing, payment})
→ registra el pago en el PMS, cierra la estancia y marca la habitación como sucia
Código: lib/adapters/native.js (funcional), mews.js y cloudbeds.js (esqueletos documentados con las llamadas previstas).
| Método y ruta | Uso |
|---|---|
GET /api/v1/checkout/{token} | Folio normalizado de la estancia (líneas, IVA, total, estado). El token es aleatorio (≥128 bits) y único por estancia. |
POST /api/v1/checkout/{token}/pay/start | Body {billing}. Valida datos fiscales, decide F1/F2 y crea la petición Redsys (Ds_MerchantParameters + Ds_Signature HMAC_SHA256_V1, Ds_Merchant_PayMethods=z). |
POST /api/v1/checkout/{token}/pay/phone | Body {paymentId, phone}. Paso Bizum “introduce tu móvil” (simulado). |
POST /api/v1/checkout/{token}/pay/confirm | Body {paymentId, accept}. Simula la confirmación en la app del banco y la notificación firmada de Redsys; si es OK emite la factura y hace el check-out. |
GET /api/v1/invoices/{id}?t={accessToken} | Factura con QR, huella y registros. |
POST /api/v1/redsys/notificacion | En producción: URL de notificación (Ds_MerchantURL) que recibe el resultado firmado de Redsys. En la demo es informativa. |
Las rutas de recepción (/api/state, /api/stays…, /api/invoices…, /api/verifactu) requieren sesión.
Investigación de septiembre de 2026 a partir de documentación pública. “Coste” se refiere al acceso a la API; las condiciones pueden cambiar y deben confirmarse con cada proveedor.
| PMS | API | Coste / condiciones conocidas | Mapeo previsto |
|---|---|---|---|
| Mews | Connector API abierta + sandbox público | Gratis para partners y clientes; requiere certificación y piloto para producción. Los add-ons del Marketplace pueden tener cuota para el hotel. docs.mews.com · help.mews.com | reservations/getAll, orderItems/getAll → folio · payments/addExternal → pago · reservations/process → check-out |
| Cloudbeds | API REST + webhooks | Para el alojamiento: incluida o como add-on de pago según el plan. Para empresas tecnológicas: programa de partners con solicitud y certificación (sin tarifa publicada). developers.cloudbeds.com | getReservation + transacciones → folio · postPayment · putReservation(checked_out) · housekeeping dirty |
| Ulyses Cloud (Septeo) | UlysesCloud Open API + Marketplace | Acceso vía equipo de integraciones; condiciones no publicadas. Open API · Marketplace | Reservas, huéspedes, cargos y pagos (casos de uso “guest onboarding”) |
| Avirato | “Usuario API” para terceros + webhooks | Sus planes indican “Integraciones y API”; no hay documentación técnica pública de endpoints. kb.avirato.com · precios | Webhooks de check-out/ocupación; lectura de cuenta a confirmar con Avirato |
| Hotelgest | Unified API pública + webhooks | API key desde la cuenta; los webhooks requieren “suscripción API activa” (coste no publicado). public-api.hotelgest.com | Reservas y webhooks; cargos/pagos a confirmar |
| Hotelinking | No es un PMS | Plataforma de datos de huésped/WiFi/CRM que se integra con PMS. No sirve como fuente del folio. hotelinking.com | — |
| Protel (Planet) | Open API / protel I/O para partners registrados | Sin tarifa pública general; hay integraciones listadas con cuota por habitación. weareplanet.com | Reservas, folios, pagos (vía partner) |
| Oracle OPERA Cloud | OHIP (Oracle Hospitality Integration Platform) | Pago por uso para el partner: desde ~10 $/mes por 10.000 llamadas REST, según el datasheet de Oracle. datasheet OHIP | Reservation, Cashiering (folios, pagos), Housekeeping |
Si el PMS del hotel ya factura y está adaptado a VERI*FACTU, lo correcto es que la factura la siga emitiendo el PMS y el módulo solo cobre y registre el pago: así no hay dos sistemas de facturación con series distintas. Si el PMS no factura (o el hotel usa nuestro PMS), la emite el motor VERI*FACTU del módulo.