Developer
Test ModeTest Mode Sign In Get started
DeveloperDeveloper / QuickstartQuickstart

Quickstart GuideQuickstart Guide

Dein erster BEEP! API-Call in unter 5 Minuten. Wir richten eine Sandbox-Sitzung ein, checken einen Kunden ein und führen einen Checkout durch.

Your first BEEP! API call in under 5 minutes. We set up a sandbox session, check in a customer and run through a checkout.

💡
Alle Calls in diesem Guide nutzen die Sandbox. Dein Account wird automatisch imAll calls in this guide use the sandbox. Your account is automatically created in Test ModeTest Mode erstellt. Test-Keys beginnen mitcreated. Test keys start with bk_test_ und erzeugen niemals echte Transaktionen.and never generate real transactions.

Schritt 1: Developer Account & API-KeyStep 1: Developer Account & API Key

Erstelle deinen kostenlosen Developer-Account auf developer.beep-technologies.de/dashboard. Nach der Registrierung findest du deine Test-Keys im Dashboard:

Create your free developer account at developer.beep-technologies.de/dashboard. After signing up, find your Test Keys in the Dashboard:

Publishable Key
bk_test_pk_A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
Secret Key
bk_test_sk_••••••••••••••••••••••••••3N4O
⚠️
Der Secret Key (sk) ist nur serverseitig zu verwenden. Committe ihn nie in Git. Der Publishable Key (pk) kann im Client-Code genutzt werden.
The Secret Key (sk) is for server-side use only. Never commit it to Git. The Publishable Key (pk) can be used in client code.

Schritt 2: Sandbox-Store abrufenStep 2: Fetch Sandbox Store

In der Sandbox stehen 3 vorbereitete Test-Stores bereit. Hole dir die Store-ID die du in weiteren Calls benötigst:

The sandbox contains 3 pre-configured test stores. Fetch the store ID you need for subsequent calls:

curl
curl -G \ "https://europe-west1-beep-c6786.cloudfunctions.net/fetchStores" \ -H "Authorization: Bearer ${BEEP_TEST_SK}"
200 OK
{ "data": [ { "id": "sandbox_store_001", "name": { "legal": "BEEP! Testmarkt GmbH", "trading": "BEEP! Testmarkt Berlin" }, "mode": "demo", "package": "grow", "address": { "street": "Unter den Linden 1", "city": "Berlin", "postalCode": "10117", "countryCode": "DE" } } ], "total": 3 }

Schritt 3: Kunden einchecken (Scan & Go starten)Step 3: Check in a customer (start Scan & Go)

Das Check-in startet eine Scan & Go Session. In der BEEP-App scannt der Kunde den Store-QR-Code. Per API kannst du das manuell triggern:

Check-in starts a Scan & Go session. In the BEEP app the customer scans the store QR code. Via the API you can trigger this manually:

POST /checkIn
curl -X POST \ "https://europe-west1-beep-c6786.cloudfunctions.net/checkIn" \ -H "Authorization: Bearer ${BEEP_TEST_SK}" \ -H "Content-Type: application/json" \ -d '{ "storeId": "sandbox_store_001", "userId": "usr_test_consumer_42" }'
200 OK
{ "success": true, "sessionId": "sess_k7aB3xQm9wPz", "storeId": "sandbox_store_001", "userId": "usr_test_consumer_42", "checkedInAt": "2026-02-27T09:41:22.000Z", "message": "Check-in successful" }

Schritt 4: Checkout startenStep 4: Start checkout

Nachdem der Kunde seine Produkte gescannt hat, startet er den Checkout. Übergib die Session-ID und die Items-Liste:

After the customer has scanned their products, they start checkout. Pass the session ID and items list:

POST /startCheckout
curl -X POST \ "https://europe-west1-beep-c6786.cloudfunctions.net/startCheckout" \ -H "Authorization: Bearer ${BEEP_TEST_SK}" \ -H "Content-Type: application/json" \ -d '{ "userId": "usr_test_consumer_42", "storeId": "sandbox_store_001", "sessionId": "sess_k7aB3xQm9wPz", "currency": "EUR", "destination": "PSP_ACCOUNT_ID", "items": [ { "name": "Bionade Holunder 0,5L", "priceUnit": 129, "quantity": 2, "vat": 7 }, { "name": "Lay'\''s Classic 175g", "priceUnit": 179, "quantity": 1, "vat": 19 } ] }'
📌
priceUnit ist immer in Cent (Integer). vat ist 7 oder 19 (%). In der Sandbox wird Stripe im Test-Mode verwendet, keine echten Zahlungen.
priceUnit is always in cents (integer). vat is 7 or 19 (%). In the sandbox Stripe is used in test mode, no real payments.
200 OK
{ "success": true, "transactionId": "txn_sandbox_mP4kR9nX", "sessionId": "sess_k7aB3xQm9wPz", "stripeSessionId": "cs_test_a1B2c3D4e5F6g7H8", "checkoutUrl": "https://checkout.stripe.com/pay/cs_test_...", "total": 437, "currency": "EUR", "status": "PENDING_PAYMENT", "createdAt": "2026-02-27T09:41:55.000Z" }

Schritt 5: Webhook empfangenStep 5: Receive webhook

Wenn der Kunde zahlt, sendet BEEP! ein checkout.completed-Event an dein konfigurierten Webhook-Endpoint. So verifizierst du die Signatur:

When the customer pays, BEEP! sends a checkout.completed event to your configured webhook endpoint. Here is how to verify the signature:

Node.js / Express
const crypto = require('crypto'); app.post('/beep/webhook', express.raw({ type: 'application/json' }), (req, res) => { const sig = req.headers['x-beep-signature']; const secret = process.env.BEEP_WEBHOOK_SECRET; // Verify HMAC-SHA256 signature const expected = crypto .createHmac('sha256', secret) .update(req.body) .digest('hex'); if (!crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected))) { return res.status(400).send('Invalid signature'); } const event = JSON.parse(req.body); switch (event.type) { case 'checkout.completed': console.log('Checkout completed:', event.data.transactionId); // Aktualisiere deinen POS / deine Datenbank break; case 'offer.published': console.log('New offer live:', event.data.offerId); break; } res.status(200).json({ received: true }); });

Nächste SchritteNext steps

Du hast erfolgreich deinen ersten Scan & Go Checkout Flow durchlaufen. Was kommt als nächstes?

You have successfully completed your first Scan & Go checkout flow. What comes next?

📖 API Reference
Alle Endpunkte, Parameter und Response-SchemasAll endpoints, parameters and response schemas
🔄 Datenformate
POS-Sync, Excel-Import, EAN-StrukturPOS sync, Excel import, EAN structure
🔔 Webhooks
Alle Events, Payloads und Signatur-VerifikationAll events, payloads and signature verification
🧪 Sandbox
APIs interaktiv im Browser testenTest APIs interactively in the browser