Jedes Digikart-Geschäft verfügt über einen API-Schlüssel , der in seiner Übersicht generiert wird (Mein Konto → Kassenanbindung). Er wird im HTTP-Header übertragen:
Authorization: Bearer dk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Der Schlüssel gehört zu einem Geschäft: Er kann nur die Karten dieses Geschäfts gutschreiben. Er kann vom Händler jederzeit widerrufen oder neu generiert werden.
GEThttps://digikart.fr/api/pos/ping
curl https://digikart.fr/api/pos/ping \
-H "Authorization: Bearer dk_live_..."
→ { "ok": true, "business": "Bar Bichette", "mode": "points", "pointsRate": 1 }
mode vaut "stamps" (Stempel: 1 Besuch = 1 Stempel) oder
"points" (Punkte werden aus dem Bonbetrag berechnet).
POSThttps://digikart.fr/api/pos/transaction
| Champ | Type | Description |
|---|---|---|
card | string* | Die Kennung der Kundenkarte: der Inhalt des Barcodes / QR-Codes auf seiner Wallet-Karte (eine Seriennummer oder eine URL /c/<serial>, beide werden akzeptiert). |
phone | string* | Alternative zum Scan: die Telefonnummer, die der Kunde bei der Installation seiner Karte angegeben hat (nützlich für Kassen und Terminals ohne 2D-Scanner). Zulässige Formate: 06 12 34 56 78 oder +33612345678.
* card oder phone : Einer von beiden ist erforderlich. |
amount | number | Bonbetrag in Euro. Erforderlich, wenn das Geschäft im Punktemodus ist (er bestimmt die Punkte). Optional im Stempelmodus (für die Statistiken des Händlers gespeichert). |
transaction_id | string | Eindeutige Bon-ID auf Kassenseite. Dringend empfohlen : Er garantiert die Idempotenz (siehe §4). |
curl -X POST https://digikart.fr/api/pos/transaction \
-H "Authorization: Bearer dk_live_..." \
-H "Content-Type: application/json" \
-d '{ "card": "A1B2C3D4E5", "amount": 23.80, "transaction_id": "TICKET-20260715-0042" }'
→ {
"ok": true, "mode": "points",
"serial": "A1B2C3D4E5", "name": "Marie D.",
"stamps": 61, // solde de points après crédit
"pointsAdded": 24, // arrondi de 23,80 € × taux du commerce
"rewardUnlocked": false,
"claimable": null // ou { threshold, reward } si un palier est atteint
}
curl -X POST https://digikart.fr/api/pos/transaction \
-H "Authorization: Bearer dk_live_..." \
-H "Content-Type: application/json" \
-d '{ "card": "A1B2C3D4E5", "transaction_id": "TICKET-20260715-0043" }'
→ { "ok": true, "mode": "stamps", "stamps": 7, "stampsRequired": 10, "rewardUnlocked": false }
Sobald die Antwort kommt, wird die Wallet-Karte des Kunden auf seinem Telefon aktualisiert (Apple-Push / Google-API): kassenseitig nichts weiter zu tun.
Wird eine Transaktion mit einer transaction_id erneut gesendet, die bereits verarbeitet wurde (erneuter Netzwerkversuch, erneut gesendeter Webhook), schreibt Digikart nicht ein zweites Mal gut : Die ursprüngliche Antwort wird erneut gesendet, ergänzt um "duplicate": true. Verwenden Sie die Bon-ID Ihrer Kasse, die zwischen zwei Versuchen gleich bleibt.
| HTTP | code | Signification |
|---|---|---|
| 400 | invalid_request | Ungültiger Anfragetext. |
| 400 | amount_required | Das Geschäft ist im Punktemodus: amount ist erforderlich. |
| 401 | unauthorized | Schlüssel fehlt, unbekannt oder widerrufen. |
| 402 | subscription_required | Das Digikart-Abonnement des Geschäfts ist nicht aktiv. |
| 403 | wrong_merchant | Die Karte gehört zu einem anderen Geschäft. |
| 404 | card_not_found / phone_not_found | Unbekannte Karte, oder kein Kunde mit dieser Nummer bei diesem Geschäft. |
| 429 | too_soon / rate_limited | Duplikat erkannt ohne transaction_id, oder mehr als 120 Anfragen/Minute. |
Im Fehlerfall wird nichts geschrieben: Die Transaktion kann gefahrlos erneut gesendet werden.
POST /api/pos/transaction mit der Karte, dem Betrag und der Bon-ID.Kassenhersteller, Integrator, Middleware (HubRise usw.): Schreiben Sie uns an contact@digikart.fr : Wir begleiten Integrationen gerne.