API ReferenceAPI Reference
Alle BEEP! Cloud Functions, Endpunkte, Parameter, Request/Response-Schemas. Alle Functions laufen in europe-west1.
All BEEP! Cloud Functions, endpoints, parameters, request/response schemas. All functions run in europe-west1.
Base URLBase URL
AuthentifizierungAuthentication
Alle API-Calls erfordern einen Bearer Token im Authorization-Header. Nutze den Secret Key für serverseitige Calls.
All API calls require a Bearer token in the Authorization header. Use the Secret Key for server-side calls.
Fehler-CodesError Codes
| HTTP Code | FunctionsError | Beschreibung |
|---|---|---|
| 400 | invalid-argument | Fehlende oder ungültige Parameter |
| 401 | unauthenticated | Kein gültiger API-Key |
| 403 | permission-denied | Paket-Feature nicht freigeschaltet |
| 404 | not-found | Ressource nicht gefunden |
| 409 | already-exists | Ressource existiert bereits |
| 500 | internal | Interner Fehler |
Pagination
Listen-Endpunkte unterstützen cursor-basierte Pagination via limit und cursor. Der cursor ist das Dokument-ID des letzten Elements der vorherigen Seite.
List endpoints support cursor-based pagination via limit and cursor. The cursor is the document ID of the last item on the previous page.
GET /fetchStores
Gibt alle Stores zurück, auf die der API-Key Zugriff hat. Im Sandbox-Modus werden 3 Test-Stores zurückgegeben.
Returns all stores the API key has access to. In sandbox mode 3 test stores are returned.
GET /fetchStore
Gibt einen einzelnen Store zurück, inkl. Produktkatalog. Der API-Key darf nur den eigenen Store abrufen.
Returns a single store including the product catalog. The API key may only fetch its own store.
Query Parameters
| Parameter | Typ | Beschreibung |
|---|---|---|
| storeIdrequired | string | ID des Stores |
Response
Gibt das Store-Objekt zurück (wie in fetchStores), ergänzt um ein products[]-Array mit allen Produkten des Stores.
Returns the store object (as in fetchStores), augmented with a products[] array containing all products of the store.
POST /insertStore
Registriert einen neuen Store. Im Produktionsmodus wird eine Admin-Prüfung ausgelöst. Nutze alternativ submitStoreRegistration für die vollständige Registrierung mit Manager-Daten.
Registers a new store. In production mode an admin review is triggered. Alternatively use submitStoreRegistration for full registration with manager data.
Request Body
| Parameter | Typ | Beschreibung |
|---|---|---|
| namerequired | object | { legal, trading } |
| addressrequired | object | { street, city, postalCode, countryCode } |
| phonerequired | string | Telefonnummer im E.164-Format |
POST /checkIn
Startet eine neue Scan & Go Session für einen Kunden. Gibt eine sessionId zurück, die für den anschließenden Checkout benötigt wird.
Starts a new Scan & Go session for a customer. Returns a sessionId required for the subsequent checkout.
POST /startCheckout
Initiiert den Stripe-Checkout für eine Scan & Go Session. Gibt eine Stripe-Checkout-URL zurück, zu der die BEEP-App weiterleitet.
Initiates the Stripe checkout for a Scan & Go session. Returns a Stripe checkout URL to which the BEEP app redirects.
GET /fetchPurchase
Query Parameters
| Parameter | Typ | Beschreibung |
|---|---|---|
| idrequired | string | Firestore-Dokument-ID der Transaktion |
GET /fetchPurchaseHistory
| Parameter | Typ | Beschreibung |
|---|---|---|
| userIdrequired | string | Firebase Auth UID des Kunden |
| limitoptional | integer | Max. Ergebnisse (default: 50) |
GET /fetchProducts
Gibt alle Produkte im Katalog des Stores zurück, der dem API-Key zugeordnet ist.
Returns all products in the catalog of the store assigned to the API key.
Query Parameters
| Parameter | Typ | Beschreibung |
|---|---|---|
| categoryoptional | string | Filter nach Kategorie |
| limitoptional | integer | Max. Ergebnisse (default: 100) |
GET /fetchProduct
Gibt ein einzelnes Produkt zurück, per id (Firestore-ID) oder barcode (EAN).
Returns a single product by id (Firestore ID) or barcode (EAN).
Query Parameters
| Parameter | Typ | Beschreibung |
|---|---|---|
| idone of | string | Firestore-Dokument-ID des Produkts |
| barcodeone of | string | EAN-13 oder EAN-8 Barcode |
id oder barcode muss angegeben werden. Das Produkt muss dem Store des API-Keys gehören.POST /insertProduct
Fügt ein neues Produkt in den Store-Katalog ein. Vollständiges Datenformat-Guide: Datenformate →
Inserts a new product into the store catalog. Full data format guide: Data Formats →
POST /registerProductToStore
Verknüpft ein bestehendes Produkt mit dem Store des API-Keys. Das Produkt muss bereits über insertProduct angelegt worden sein.
Links an existing product to the store of the API key. The product must already have been created via insertProduct.
Request Body
| Parameter | Typ | Beschreibung |
|---|---|---|
| productIdrequired | string | Firestore-ID des Produkts |
POST /markPurchaseCancelled
Markiert eine Transaktion als storniert. Nur Transaktionen mit Status PENDING_PAYMENT oder SUCCESS können storniert werden. Bei bereits bezahlten Transaktionen wird ein Refund über den konfigurierten PSP ausgelöst.
Marks a transaction as cancelled. Only transactions with status PENDING_PAYMENT or SUCCESS can be cancelled. For already-paid transactions a refund is triggered via the configured PSP.
Request Body
| Parameter | Typ | Beschreibung |
|---|---|---|
| purchaseIdrequired | string | Firestore-ID der Transaktion |
| reasonoptional | string | Stornierungsgrund (für interne Dokumentation) |
POST /generateCodes
Generiert QR-Codes für einen Store, z.B. für Tisch-Aufsteller, Eingangsbereich oder Marketing-Material. Gibt Base64-kodierte PNG-Bilder zurück.
Generates QR codes for a store, e.g. for table stands, entrance area or marketing material. Returns Base64-encoded PNG images.
Request Body
| Parameter | Typ | Beschreibung |
|---|---|---|
| storeIdrequired | string | ID des Stores |
| typeoptional | string | checkin (default), payment, profile |
| sizeoptional | integer | Bildgröße in px (default: 512) |
POST /generateReceiptQR
Generiert einen QR-Code, der zu einem digitalen Beleg führt. Der QR-Code enthält einen Token, über den der Beleg öffentlich (ohne Auth) aufrufbar ist.
Generates a QR code that leads to a digital receipt. The QR code contains a token through which the receipt can be accessed publicly (without auth).
Request Body
| Parameter | Typ | Beschreibung |
|---|---|---|
| purchaseIdrequired | string | Firestore-ID der Transaktion |
Response
GET /getReceiptFromToken
Holt den vollständigen Beleg über einen öffentlichen Token. Dieser Endpoint erfordert keine Authentifizierung: der Token selbst ist das Zugriffsrecht.
Fetches the complete receipt via a public token. This endpoint requires no authentication: the token itself is the access credential.
Query Parameters
| Parameter | Typ | Beschreibung |
|---|---|---|
| tokenrequired | string | Receipt-Token (aus generateReceiptQR) |
Gibt die vollständigen Belegdaten zurück inkl. Items, MwSt.-Aufschlüsselung und TSE-Signatur. Siehe Beleg-Datenformat.
POST /submitStoreRegistrationRequest
Request Body
Response
POST /approveStoreRegistration
Request Body
| Parameter | Typ | Beschreibung |
|---|---|---|
| registrationIdrequired | string | ID aus submitStoreRegistration |
| packageoptional | string | Start-Paket (default: discover) |
Angebote (GO-Paket)
Angebote werden direkt in Firestore verwaltet. Dies ermöglicht Echtzeit-Updates ohne API-Latenz. Angebote sind in stores/{storeId}/offers abgelegt.
Offers are managed directly in Firestore. This enables real-time updates without API latency. Offers are stored under stores/{storeId}/offers.