Dokumentation
GET/api/v1/bookings/{id}/cancel

Buchung stornieren

Storniert eine Buchung der Stadt per ID. Idempotent: eine bereits stornierte Buchung antwortet 200 mit unverändertem Zustand; abgeschlossene Fahrten sind endgültig (409).

Wofür

Gegenstück zum Anlegen: wenn der Fahrgast über Ihren Kanal absagt. Der Fahrdienst wird über die üblichen Wege (Fahrer-Benachrichtigung, Webhook booking.canceled) informiert.

Anfrage

Erfordert das Recht write:bookings.
AnfrageShell
curl -sS \
  -H "Authorization: Bearer rb_live_…" \
  "https://rufbusle.de/api/v1/bookings/{id}/cancel"

Antwort

BeispielantwortJSON
{
  "id": "bkg_5Rt8wY",
  "tripId": "trp_9Vc4mQ",
  "rideDate": "2026-08-12",
  "boardingStopId": "stp_7Kq2vX",
  "alightingStopId": "stp_1Ax9bN",
  "seats": 2,
  "wheelchairUsers": 0,
  "status": "SCHEDULED",
  "canceled": false,
  "transportMode": "BUS",
  "source": "WEB",
  "sourcePluginSlug": "phone-agent",
  "pickupWindowStart": "08:15",
  "pickupWindowEnd": "08:15",
  "createdAt": "2026-08-10T14:32:05.000Z",
  "phone": "+4915112345678"
}

Beispielwerte, keine echten Daten. Unbekannte Felder bitte ignorieren — es können jederzeit welche hinzukommen.

Felder

FeldTypBeschreibung
idstringInterne ID der Buchung.
tripIdstringFahrt, auf die gebucht wurde.
rideDatestring | nullServicedatum der Fahrt (YYYY-MM-DD).
boardingStopIdstringEinstieg — Verweis auf einen Halt.
alightingStopIdstringAusstieg — Verweis auf einen Halt.
seatsintegerGebuchte Sitzplätze.
wheelchairUsersintegerDavon Rollstuhlplätze.
statusstringStand der Durchführung: SCHEDULED | PICKED_UP | COMPLETED | NOSHOW.
canceledbooleanStorniert. Stornos verschwinden nicht, sie werden markiert.
transportModestringDurchführung als BUS oder TAXI.
sourcestringHerkunft der Buchung: WEB | RECURRING | PLUGIN | API.
sourcePluginSlugstring | nullSlug des erzeugenden Plugins (bei source PLUGIN oder plugin-gebundenen API-Schlüsseln); sonst null. Erlaubt Integrationen, eigene Buchungen zu erkennen.
pickupWindowStartstring | nullBeginn des zugesagten Abholfensters; sonst null.
pickupWindowEndstring | nullEnde des zugesagten Abholfensters; sonst null.
createdAtstringZeitpunkt der Buchung, ISO 8601 (UTC).
phoneoptionalstring | nullNur mit Scope read:bookings:pii; sonst nicht enthalten.

Worauf zu achten ist

Die Punkte, an denen Integrationen erfahrungsgemäß hängen bleiben.
  • POST statt DELETE: Stornos verschwinden nicht, sie werden markiert (canceled: true).
  • Der Scope erlaubt das Stornieren JEDER Buchung der Stadt — die Stadt vergibt ihn bewusst (gleiches Vertrauensmodell wie read:bookings:pii).