Entwicklerdokumentation

Fehler

Jeder Problem-Type, den die API bei einem abgelehnten Schlüssel sendet, seine Ursache, die Abhilfe – und die Probleme ohne Reason-Code.

Lehnt die API eine Anfrage wegen des Schlüssels ab, ist der type im Problem-Body https://bookdineplay.com/docs/api/errors/<reason>, und <reason> ist einer der sechs Abschnitte auf dieser Seite. Folgen Sie der URL, landen Sie hier. Jede andere Ablehnung – Validierung, eine fehlende Location, ein vergebener Slot – steht am Ende.

Reason Status In einem Satz
missing-api-key 401 Kein Schlüssel bei einer Anfrage unter /api/venues/**
invalid-api-key 401 Der Schlüssel ist unbekannt oder wurde widerrufen
venue-mismatch 403 Der Schlüssel gehört zu einer anderen Location
origin-not-allowed 403 Veröffentlichbarer Schlüssel, Origin nicht auf seiner Liste
secret-key-from-browser 403 Geheimer Schlüssel mit Origin-Header gesendet
publishable-key-without-origin 403 Veröffentlichbarer Schlüssel ohne Origin-Header gesendet

missing-api-key

401. Die Anfrage erreichte einen Endpunkt unter /api/venues/** ohne X-BookDinePlay-Key- und ohne Authorization: Bearer-Header. Meist wurde der Header auf der falschen Client-Instanz gesetzt oder ein Proxy hat ihn entfernt. Abhilfe: Senden Sie den Schlüssel bei jeder Anfrage – siehe Einen Schlüssel senden.

{
  "type": "https://bookdineplay.com/docs/api/errors/missing-api-key",
  "title": "Unauthorized",
  "status": 401,
  "detail": "An API key is required. Send it in the 'X-BookDinePlay-Key' header or an 'Authorization: Bearer' header.",
  "traceId": "0HNOJ52B2L9BB"
}

invalid-api-key

401. Ein Schlüssel wurde gesendet, aber kein aktiver Schlüssel passt dazu: Er wurde falsch abgetippt, in der Konsole unter Location → API-Schlüssel widerrufen oder rotiert, und der alte Wert ist noch im Einsatz. Abhilfe: Kopieren Sie den aktuellen Schlüssel aus der Konsole; beim Rotieren zuerst den neuen Schlüssel ausrollen, dann den alten widerrufen.

venue-mismatch

403. Der Schlüssel ist gültig, aber an eine andere Location gebunden als der {venueSlug} in der URL. Schlüssel gelten pro Location; eine Website, die mehrere Locations einbettet, braucht je einen Schlüssel (genau dafür gibt es das Attribut key des WordPress-Plugins). Abhilfe: Verwenden Sie den Schlüssel, der unter der aufgerufenen Location erstellt wurde.

origin-not-allowed

403. Ein veröffentlichbarer Schlüssel wurde von einem Origin gesendet, der nicht auf seiner Liste steht. Typische Ursachen: Die Website ist auf eine neue Domain umgezogen, www gegenüber der nackten Domain, http gegenüber https oder ein Staging-Host. Abhilfe: Tragen Sie den exakten Origin (Schema, Host und ggf. Port) unter Location → API-Schlüssel ein oder ergänzen Sie für die lokale Entwicklung ein Port-Wildcard :* – siehe Origins.

{
  "type": "https://bookdineplay.com/docs/api/errors/origin-not-allowed",
  "title": "Forbidden",
  "status": 403,
  "detail": "This origin is not on the API key's list of allowed origins.",
  "traceId": "0HNOJ52B2L9BD"
}

secret-key-from-browser

403. Ein geheimer Schlüssel (bdp_sk_…) kam zusammen mit einem Origin-Header an, den nur Browser senden. Ein geheimer Schlüssel im Browser ist ein veröffentlichtes Geheimnis, daher wird die Anfrage sofort abgelehnt statt bedient. Abhilfe: Widerrufen Sie diesen Schlüssel jetzt, erstellen Sie einen veröffentlichbaren Schlüssel für den Browser und behalten Sie geheime Schlüssel auf dem Server.

publishable-key-without-origin

403. Ein veröffentlichbarer Schlüssel (bdp_pk_…) kam ohne Origin-Header an. Veröffentlichbare Schlüssel sind durch ihre Origin-Liste geschützt, und ohne Origin gibt es nichts zu prüfen. So sieht ein serverseitiger Aufruf mit einem veröffentlichbaren Schlüssel aus. Abhilfe: Verwenden Sie auf dem Server einen geheimen Schlüssel; kommt der Aufruf wirklich aus einem Browser, wird der Origin-Header automatisch ergänzt – fehlt er, kam die Anfrage nicht von einem Browser.

Probleme ohne Reason-Code

Diese tragen den allgemeinen RFC-9110-type; detail sagt, was passiert ist.

Status Wann Was tun
400 Ein Feld ist an der Validierung gescheitert; errors listet die Felder Eingabe korrigieren; die Feldnamen sind die Eigenschaftsnamen der Anfrage
400 date ist nicht yyyy-MM-dd, oder Uhrzeit bzw. Dauer einer Reservierung sind keine, die die Location anbietet Die Werte aus der Verfügbarkeitsantwort unverändert senden
404 Keine Location mit diesem Slug; keine Reservierung mit dieser Referenz; das QR-Token oder die Tischsitzung ist nicht aktiv Slug prüfen; ein widerrufener QR-Code bleibt 404 – den neuen drucken
409 Der Slot wurde zwischen Verfügbarkeit und Reservierung vergeben; die Rechnung wurde gerade geschlossen; die Location hat Online-Zahlungen nicht aktiviert Verfügbarkeit neu abfragen und den nächsten Slot anbieten; neue Sitzung starten; den Anzahlungsschritt überspringen
5xx Unser Fehler Mit exponentiellem Backoff wiederholen; bleibt es, die traceId an den Support senden

Nächste Schritte