GET
/api/v1/bookings/{id}/cancelBuchung 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.curl -sS \
-H "Authorization: Bearer rb_live_…" \
"https://rufbusle.de/api/v1/bookings/{id}/cancel"Antwort
{
"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
| Feld | Typ | Beschreibung |
|---|---|---|
id | string | Interne ID der Buchung. |
tripId | string | Fahrt, auf die gebucht wurde. |
rideDate | string | null | Servicedatum der Fahrt (YYYY-MM-DD). |
boardingStopId | string | Einstieg — Verweis auf einen Halt. |
alightingStopId | string | Ausstieg — Verweis auf einen Halt. |
seats | integer | Gebuchte Sitzplätze. |
wheelchairUsers | integer | Davon Rollstuhlplätze. |
status | string | Stand der Durchführung: SCHEDULED | PICKED_UP | COMPLETED | NOSHOW. |
canceled | boolean | Storniert. Stornos verschwinden nicht, sie werden markiert. |
transportMode | string | Durchführung als BUS oder TAXI. |
source | string | Herkunft der Buchung: WEB | RECURRING | PLUGIN | API. |
sourcePluginSlug | string | null | Slug des erzeugenden Plugins (bei source PLUGIN oder plugin-gebundenen API-Schlüsseln); sonst null. Erlaubt Integrationen, eigene Buchungen zu erkennen. |
pickupWindowStart | string | null | Beginn des zugesagten Abholfensters; sonst null. |
pickupWindowEnd | string | null | Ende des zugesagten Abholfensters; sonst null. |
createdAt | string | Zeitpunkt der Buchung, ISO 8601 (UTC). |
phoneoptional | string | null | Nur 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).