Zum Inhalt

API-Schlüssel und Authentifizierung ​

Jeder Aufruf der Connect API braucht einen API-Schlüssel im Header X-Api-Key. Die öffentliche Reservierungs-API (/public/v1) braucht keinen Schlüssel.

Publishable Keys und geheime Schlüssel ​

Jeder API-Schlüssel, den Sie erstellen, ist ein Paar:

TeilPräfixVerwenden inZugriff
Publishable Keypk_Ihrer Kunden-App oder WebsiteNur, was ein Kunde tun kann: Standorte, Anmeldung, die Speisekarte, Restaurantbestellungen, der Produktkatalog, Zahlungsstatus und das eigene Konto des Kunden.
Geheimer Schlüsselcnct_Ihrem eigenen ServerJeder Endpunkt, einschließlich Warenkorb, Webshop-Bestellungen und Versandabfragen.

Behandeln Sie den geheimen Schlüssel wie ein Passwort. Setzen Sie ihn nie in eine App oder eine Webseite.

Diese Endpunkte brauchen den geheimen Schlüssel. Ein Publishable Key erhält 403 PUBLISHABLE_KEY_NOT_ALLOWED:

  • GET /store/shipping/locations
  • GET /store/shipping/delivery-options
  • POST /store/orders
  • alles unter /store/cart/…

Schlüssel gehören zu Ihrer Organisation und funktionieren mit jedem ihrer aktiven Verkaufskanäle. Es gibt keine getrennten Test- und Live-Schlüssel.

Schlüssel erstellen ​

  1. Melden Sie sich bei my.conciar.com als Admin oder Manager an. Employees können keine Schlüssel verwalten.
  2. Öffnen Sie Management → API Keys und klicken Sie auf New API Key (oder auf Create first key, wenn die Liste leer ist).
  3. Geben Sie einen Key Name mit bis zu 100 Zeichen ein und klicken Sie auf Create Key.
  4. Kopieren Sie in API Key Created den Publishable Key und den geheimen Schlüssel mit den jeweiligen Copy-Schaltflächen und klicken Sie dann auf Done.

Schlüssel werden nur einmal angezeigt

Conciar speichert nur einen Hash jedes Schlüssels. Wenn Sie einen Schlüssel verlieren, erstellen Sie einen neuen.

Die Liste zeigt für jeden Schlüssel die ersten Zeichen, das Erstellungsdatum und wann er zuletzt verwendet wurde.

Schlüssel ersetzen oder widerrufen ​

Conciar hat keine Schaltfläche zum Rotieren. So ersetzen Sie einen Schlüssel:

  1. Erstellen Sie einen neuen Schlüssel.
  2. Stellen Sie Ihre App oder Ihren Server auf den neuen Schlüssel um.
  3. Widerrufen oder löschen Sie den alten Schlüssel.

Revoke stoppt den Schlüssel sofort; er bleibt als „Revoked“ in der Liste und kann nicht wieder eingeschaltet werden. Delete entfernt ihn aus der Liste. Beide wirken auf das ganze Paar: Wenn Sie den Publishable Key widerrufen, wird auch sein geheimer Schlüssel widerrufen.

Aufrufe aus dem Browser ​

Die Connect API sendet keine CORS-Header. Ein Browser blockiert daher Aufrufe, die per JavaScript von einer anderen Domain kommen. Rufen Sie sie von Ihrem Server oder aus einer nativen App auf. Ein Webshop kann seine Aufrufe über sein eigenes Backend leiten; so bleibt auch der geheime Schlüssel aus der Seite heraus.

Fehler ​

Fehler kommen als JSON zurück. Prüfen Sie zuerst den HTTP-Status.

StatusBodyUrsache
401{"message": "API key required."}Kein Header X-Api-Key.
401{"message": "Invalid or expired API key."}Der Schlüssel ist falsch, widerrufen oder gelöscht.
401{"message": "Unauthenticated."}Ein Kunden-Endpunkt ohne gültiges Bearer-Token.
403{"status": false, "message": "PUBLISHABLE_KEY_NOT_ALLOWED"}Dieser Endpunkt braucht den geheimen Schlüssel.
404{"message": "X-Sales-Channel header is required."}Kein Header X-Sales-Channel bei einem /store/…-Aufruf.
404{"message": "…"}Das Kanal-Token ist unbekannt, inaktiv oder gehört zu einer anderen Organisation.
409{"status": false, "message": "IDEMPOTENCY_KEY_REUSED"}Ein Idempotency-Key wurde für eine andere Bestellung wiederverwendet, oder die erste Bestellung wird noch aufgegeben (IDEMPOTENCY_KEY_IN_PROGRESS).
422{"message": "…", "errors": {…}}Die Validierung ist fehlgeschlagen. Andere Fehler in der Anfrage geben {"status": false, "message": "CODE"} zurück.
429{"message": "Too Many Attempts."}Ein Rate Limit ist überschritten. Warten Sie die Anzahl Sekunden aus Retry-After ab.
503{"maintenance": true, "message": "…"}Der Verkaufskanal ist im Wartungsmodus.

Die öffentliche Reservierungs-API gibt {"status": false, "code": "…"} zurück, zum Beispiel NOT_FOUND, UNAVAILABLE oder INVALID.

Rate Limits ​

Antworten enthalten X-RateLimit-Limit und X-RateLimit-Remaining.

Connect API

LimitGezählt pro
300 Anfragen pro Minute, gesamte APIIP-Adresse
POST /app/init: 30 pro MinuteSchlüssel
POST /store/cart/init: 30 pro MinuteSchlüssel
Andere Änderungen am Warenkorb: 120 pro MinuteSchlüssel
Zahlungsstatus: 60 pro MinuteSchlüssel
Restaurantbestellung aufgeben, bezahlen oder stornieren: 10 pro MinuteSchlüssel
Status einer Restaurantbestellung: 30 pro MinuteSchlüssel
Alle Restaurantbestellungen für einen Store: 60 neue Bestellungen und 120 Zahlungs- oder Stornoaufrufe pro MinuteStore
register, otp/request und otp/resend: 5 pro MinuteIP-Adresse
otp/verify: 20 pro MinuteIP-Adresse
Anmeldecodes: 1 pro Minute und 5 pro StundeE-Mail-Adresse

Bei einem Publishable Key bedeutet „pro Schlüssel“ pro Schlüssel und IP-Adresse. So verbraucht ein einzelner aktiver App-Nutzer nicht das Limit für alle anderen.

Wer zu früh einen neuen Anmeldecode anfordert, erhält 429 {"status": false, "message": "OTP_COOLDOWN", "retry_after": 42}.

Öffentliche Reservierungs-API

LimitGezählt pro
120 Lesezugriffe und 10 Buchungen oder Änderungen pro MinuteRestaurant und IP-Adresse
Gutscheine: 60 Lesezugriffe und 6 Käufe pro MinuteRestaurant und IP-Adresse