Buchungen

Buchung stornieren

posthttps://open-api.mynextdays.com/v1/reservations/{reservation_id}/cancel

Beauftragt den Storno und antwortet mit 202.

Warum nicht sofort erledigt: ein Storno ist keine Statusänderung, sondern eine Kette — belegte Nächte freigeben, die Portale informieren, stornierende Partei und Grund festhalten, Stornogebühren und die Auszahlungs-Karenz rechnen, Protokollzeile schreiben. Diese Kette hat im Betriebssystem EINE Stelle mit sechs Aufrufern. Sie hier ein zweites Mal zu schreiben hiesse, sie zweimal richtig halten zu müssen — und der erste vergessene Schritt ist eine freigegebene Nacht, die kein Portal erfährt (Wurzel 1). Deshalb stellt dieser Endpunkt einen Auftrag, den diese eine Stelle abarbeitet.

Doppelte Aufrufe: der Auftrag wird über einen festen Schlüssel je Buchung eingereiht. Zwei Aufrufe für dieselbe Buchung ergeben EINEN Storno-Vorgang, nicht zwei (Wurzel 2). Ein Idempotency-Key ist erlaubt, aber nicht nötig; er wird für die Wiedererkennung nicht gebraucht, weil die Buchungs-ID den Vorgang schon eindeutig macht.

War sie schon storniert, antwortet der Aufruf mit already_cancelled und ändert nichts.

Pfad-Parameter

reservation_idstringpflicht

Header

Idempotency-Keystring

Anfrage-Körperpflicht

partystringpflicht

Wessen Sphäre storniert: gast (der Gast hat abgesagt), eigentuemer, agentur, betrieb (der Betrieb selbst), portal (die Absage kam über ein Portal zu uns), system.

Erlaubt:gasteigentuemeragenturbetriebportalsystem
reasonstringpflicht

Der Grund im Klartext. Wird im Storno-Protokoll festgehalten.

reason_codestring

Kategorie ZUSÄTZLICH zum Freitext. Optional — nicht jeder Grund passt in eine Kategorie, und dann wird keine erfunden.

Erlaubt:gast_wunschzahlung_ausgebliebenobjekt_nicht_verfuegbarschaden_instandsetzungeigennutzungeigennutzung_aufgeloestdoppelbuchungverdacht_betrug

Antworten

202Der Storno ist beauftragt. Er ist in diesem Moment noch nicht vollzogen — das Ereignis `reservation.cancelled` meldet den Abschluss.
cancelled_atdate-time

Nur bei already_cancelled gesetzt: wann sie storniert wurde.

reservation_idstringpflicht
statusstringpflicht

accepted — der Auftrag ist eingereiht. already_cancelled — die Buchung war schon storniert; es passiert nichts weiter.

Erlaubt:acceptedalready_cancelled
422Grund oder Partei fehlen, oder die Partei ist unbekannt.

Sprache

Nur in diesem Browser, nur für „Ausprobieren“ — der Wert wird nicht gespeichert und nicht an uns geschickt.

Anfrage
curl -X POST 'https://open-api.mynextdays.com/v1/reservations/%3Creservation_id%3E/cancel' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 8f9a1c30-6b1e-4d2a-9f77-4e0c1b2d3a55' \
  -d '{
  "reason": "…",
  "party": "gast"
}'

Ohne Token antwortet der Aufruf mit 401 — das ist der erwartete Weg.

Beispiel
{
  "reservation_id": "…",
  "status": "accepted"
}