Checkout API

Mit der Checkout API lösen Sie einen vollständigen CheckYout-Check-out aus Ihrem eigenen System aus — genau so, als hätte der Gast den QR-Code an der Tür gescannt. Der Aufruf startet die WhatsApp-Benachrichtigung an die Reinigungskraft, sendet E-Mail- und Webhook-Benachrichtigungen, fährt die Heizung in den Sparmodus (tado°, Netatmo, Vaillant, Nest), schaltet Lichter aus (Hue) und steuert Shelly-Geräte.

Wann nutzen?

Verwenden Sie diesen Endpoint, wenn Ihr System (z. B. Resavio, Smoobu Check-out, ein eigenes PMS) bereits erkennt, wann ein Gast die Unterkunft verlässt — etwa durch einen Online-Check-out, eine bezahlte Schlussrechnung oder einen manuellen Trigger durch den Gastgeber. Anstatt zusätzlich den QR-Code scannen zu lassen, übernimmt CheckYout direkt alle nachgelagerten Aktionen.

Unterschied zur Notify API

/api/v1/notify sendet nur eine WhatsApp-Nachricht an eine angegebene Telefonnummer. /api/v1/checkout startet den vollständigen Check-out-Workflow mit allen konfigurierten Benachrichtigungen und Smart-Home-Aktionen.

Endpoint

POST/api/v1/checkout

Request

HeaderWertPflicht
Content-Typeapplication/jsonJa
X-API-KeyIhr API-KeyJa

Request-Body

FeldTypPflichtBeschreibung
resavio_property_idstringEines davonProperty-ID aus Resavio. Muss zuvor im CheckYout-Dashboard pro Unterkunft hinterlegt werden.
external_property_idstringEines davonAlias für resavio_property_id — für andere Partner-Integrationen.
device_idstringEines davonDirekte Geräte-ID, falls bekannt. Schneller, aber weniger flexibel.
sourcestringNeinQuelle des Signals: resavio oder partner. Default: resavio, wenn resavio_property_id gesetzt — sonst partner.

Property-Mapping

Damit CheckYout weiß, welches Gerät zu welcher Resavio-Property gehört, muss der Gastgeber im CheckYout-Dashboard pro Unterkunft die Resavio-Property-ID unter Einstellungen → Resavio Property-ID hinterlegen. Anschließend genügt der Aufruf mit resavio_property_id.

Response

Erfolgsantwort (200)

{
  "success": true,
  "eventId": "8a4b1c2d-3e4f-5a6b-7c8d-9e0f1a2b3c4d",
  "notified": true,
  "device_id": "ZNKKPJZV",
  "property_name": "Chalet Rösi"
}

Falls innerhalb der letzten 60 Sekunden bereits ein Check-out für dasselbe Gerät ausgelöst wurde, antwortet die API mit "eventId": "rate-limited" und "reason": "rate_limited" — das ist kein Fehler, nur ein Schutz vor Doppelauslösung.

Fehlerantworten

StatusUrsacheBeispiel
400Kein Identifier angegeben{"error": "Provide one of: device_id, resavio_property_id, external_property_id"}
401Ungültiger oder fehlender API-Key{"error": "Invalid or missing API key"}
404Gerät nicht gefunden oder gehört nicht zum Account{"error": "Device not found or does not belong to your account"}
429Zu viele Requests pro Minute (30/min/IP){"error": "Too many requests"}

Code-Beispiele

curl -X POST https://checkyout.app/api/v1/checkout \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cyo_IhrApiKey" \
  -d '{
    "resavio_property_id": "abc-123"
  }'

Verhalten

Idempotenz und Rate-Limiting

Pro Gerät wird maximal ein Check-out-Event pro Minute akzeptiert. Mehrfach-Aufrufe innerhalb dieser Zeit liefern die gleiche Antwortstruktur, lösen aber keine doppelten Benachrichtigungen aus.

Smart Home und PMS

Wenn ein PMS verbunden ist, wird vor dem Heizungs-Setback geprüft, ob am selben Tag eine neue Anreise geplant ist. Falls ja, bleibt die Heizung an.

Webhook-Quellen

Wenn Sie ausgehende Partner-Webhooks abonniert haben, enthält das Payload-Feld source den Wert "resavio" oder "partner" — so können Sie unterscheiden, ob der Check-out per QR-Scan oder über Ihre Integration ausgelöst wurde.

Verwandt: Notify API · Webhooks · Events