D Digikart ← Accueil

Intégration caisse · API Digikart

Version 1 · destinée aux éditeurs de caisses, intégrateurs et middlewares
Cette API permet à un logiciel de caisse d'envoyer chaque encaissement à Digikart : la carte de fidélité Apple Wallet / Google Wallet du client est créditée (tampon ou points selon le commerce) et mise à jour sur son téléphone en temps réel, sans aucune ressaisie par le personnel.

1. Authentification

Chaque commerce Digikart dispose d'une clé d'API générée depuis son tableau de bord (Mon compte → Connexion caisse). Elle se transmet dans l'en-tête HTTP :

Authorization: Bearer dk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

La clé est propre à un commerce : elle ne peut créditer que les cartes de ce commerce. Elle peut être révoquée ou régénérée à tout moment par le commerçant.

2. Tester la connexion

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" (tampons : 1 passage = 1 tampon) ou "points" (points calculés à partir du montant du ticket).

3. Créditer une vente

POSThttps://digikart.fr/api/pos/transaction

ChampTypeDescription
cardstring* L'identifiant de la carte du client : le contenu du code-barres / QR affiché sur sa carte Wallet (un numéro de série, ou une URL /c/<serial>, les deux sont acceptés).
phonestring* Alternative au scan : le numéro de téléphone renseigné par le client à l'installation de sa carte (utile pour les caisses et bornes sans lecteur 2D). Formats tolérés : 06 12 34 56 78 ou +33612345678.
* card ou phone : l'un des deux est requis.
amountnumber Montant du ticket en euros. Requis si le commerce est en mode points (c'est lui qui détermine les points). Optionnel en mode tampons (enregistré pour les statistiques du commerçant).
transaction_idstring Identifiant unique du ticket côté caisse. Fortement recommandé : il garantit l'idempotence (voir §4).

Exemple : commerce en mode points

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
  }

Exemple : commerce en mode tampons

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 }

Dès la réponse, la carte Wallet du client est mise à jour sur son téléphone (push Apple / API Google) : rien d'autre à faire côté caisse.

4. Idempotence (tickets rejoués)

Si une transaction portant un transaction_id déjà traité est renvoyée (nouvelle tentative réseau, webhook rejoué), Digikart ne crédite pas une seconde fois : la réponse d'origine est renvoyée, complétée de "duplicate": true. Utilisez l'identifiant de ticket de votre caisse, stable entre deux tentatives.

5. Erreurs

HTTPcodeSignification
400invalid_requestCorps de requête invalide.
400amount_requiredLe commerce est en mode points : amount est requis.
401unauthorizedClé absente, inconnue ou révoquée.
402subscription_requiredL'abonnement Digikart du commerce n'est pas actif.
403wrong_merchantLa carte appartient à un autre commerce.
404card_not_found / phone_not_foundCarte inconnue, ou aucun client avec ce numéro chez ce commerce.
429too_soon / rate_limitedDoublon rapproché sans transaction_id, ou plus de 120 requêtes/minute.

En cas d'erreur, aucune écriture n'a lieu : la transaction peut être renvoyée sans risque.

6. Parcours type en caisse

  • Le client présente sa carte Digikart (Apple/Google Wallet) : la caisse scanne son code-barres.
  • À l'encaissement, la caisse appelle POST /api/pos/transaction avec la carte, le montant et l'identifiant du ticket.
  • La carte du client se met à jour instantanément sur son téléphone.

7. Contact intégrateurs

Éditeur de caisse, intégrateur, middleware (HubRise, etc.) : écrivez-nous à contact@digikart.fr : nous accompagnons volontiers les intégrations.