Developer
Test ModeTest Mode Sign In Get started
DeveloperDeveloper / AuthentifizierungAuthentication

AuthentifizierungAuthentication

Jeder API-Call muss mit einem gültigen API-Key authentifiziert werden. BEEP! nutzt ein Publishable/Secret-Key-Paar, ähnlich wie Stripe.

Every API call must be authenticated with a valid API key. BEEP! uses a Publishable/Secret key pair, similar to Stripe.

SchlüsseltypenKey Types

Dein Dashboard enthält zwei Schlüssel pro Modus (Test & Live):

Your dashboard contains two keys per mode (Test & Live):

TypTypePrefixVerwendungUsage
Publishable Key (pk)bk_{mode}_pk_…Client-seitig erlaubt, identifiziert deinen AccountAllowed client-side, identifies your account
Secret Key (sk)bk_{mode}_sk_…Nur serverseitig! Voller API-Zugang, nie committenServer-side only! Full API access, never commit
⚠️
Secret Keys niemals im Client-Code, in Git oder in Logs verwenden. Sollte ein SK kompromittiert sein, rotiere ihn sofort im Dashboard unter „Schlüssel verwalten".

Test Mode vs. Live ModeTest Mode vs. Live Mode

Jeder Account hat zwei isolierte Umgebungen:

Every account has two isolated environments:

EigenschaftPropertyTest ModeTest ModeLive Mode
Key-Prefixbk_test_bk_live_
DatenDataSandbox-Mock-DatenSandbox mock dataEchte Store-DatenReal store data
ZahlungenPaymentsStripe Test ModeEchte TransaktionenReal transactions
Rate LimitsUnbegrenztUnlimitedPaketabhängigPackage-dependent
VoraussetzungRequirementKostenloser AccountFree accountAktives Abo + manueller ReviewActive subscription + manual review

Authorization Header

Sende den Key als Bearer-Token im Authorization-Header:

Send the key as a Bearer token in the Authorization header:

HTTP Header
Authorization: Bearer bk_test_sk_A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
💡
Optionaler Header: X-Beep-Store-Id: {storeId}, damit kannst du Store-spezifische Calls machen, ohne die storeId im Body zu übergeben.
Optional header: X-Beep-Store-Id: {storeId} lets you make store-specific calls without passing storeId in the body.

Key-Format (Anatomie)Key Format (Anatomy)

Jeder Key folgt diesem Muster:

Every key follows this pattern:

Format
bk_{mode}_{variant}_{keyId}_{secret} Beispiel: bk_test_sk_A1B2C3D4_E5F6G7H8I9J0K1L2M3N4O5P6 bk → BEEP Key Prefix (immer "bk") test → Modus: "test" oder "live" sk → Variante: "pk" (publishable) oder "sk" (secret) A1B2C3D4 → Key-ID (8 Zeichen, identifiziert den Schlüssel) E5F6… → Secret-Segment (kryptographisch sicher, SHA-256 gehasht gespeichert)

SicherheitshinweiseSecurity Notes

  • Secret Keys werden nie im Klartext in Firestore gespeichert, nur als SHA-256 Hash.Secret Keys are never stored in plain text in Firestore, only as SHA-256 hash.
  • Validierung erfolgt über crypto.timingSafeEqual (verhindert Timing-Attacks).
  • Rotiere Keys regelmäßig über das Dashboard → „Schlüssel rotieren".
  • Bei Kompromittierung: Key im Dashboard sofort widerrufen. Der alte Key wird instant ungültig.If compromised: revoke the key immediately in the Dashboard. The old key becomes invalid instantly.
  • Live-Keys benötigen einen manuellen Review durch das BEEP!-Team (Aktivierungsantrag).Live keys require a manual review by the BEEP! team (activation request).

Paket-BerechtigungenPackage Permissions

Welche Endpoints dein Key aufrufen darf, hängt vom Paket ab:

Which endpoints your key may call depends on your package:

PaketPackageEndpoints
DISCOVERStores, Produkte, Katalog (fetchStores, fetchProducts, insertProduct, bulkImportProducts …)Stores, products, catalog (fetchStores, fetchProducts, insertProduct, bulkImportProducts …)
ASSIST= DISCOVER + In-Store-Chat (Chat läuft über Firestore)In-Store Chat (Chat runs via Firestore)
GO= ASSIST + AngeboteOffers (createOffer, updateOffer …) + Click & Collect
GROW= GO + Scan & Go (checkIn, startCheckout …) + POS/ERP/PSP-Sync
PRIMEAlle Endpoints + Analytics-Export + Premium SupportAll endpoints + Analytics export + Premium support