Caisse Enregistreuse

Logiciel de caisse enregistreuse gratuit, en ligne depuis 2011.

Suivez-nous

Centre d'aide

Cette aide est disponible pour vous guider dans l'utilisation de notre logiciel de caisse

Rechercher par mot clé dans l'aide :

Webhook (notifications HTTP)

Kash.click supporte deux familles de webhooks : les webhooks historiques, conserves pour retrocompatibilite, et les webhooks JSON nouvelle generation destines aux integrations Zapier, Make, n8n, Pipedream ou a vos propres services.

Pour creer, modifier, lister ou consulter les logs des webhooks JSON, consultez la page Gestion des webhooks.

Webhooks JSON nouvelle generation

Chaque livraison est envoyee en POST avec un corps JSON stable et des headers de signature. Les donnees sensibles inutiles ne sont pas exposees dans les objets client, produit et fermeture de caisse.

Enveloppe JSON commune

ChampDescription
idIdentifiant unique de l'evenement, prefixe evt_.
typeType d'evenement, par exemple sale.created.
created_atDate UTC ISO-8601 de creation de l'evenement.
account_idIdentifiant de la boutique Kash.click.
dataObjet contenant les donnees metier utiles.
{ "id": "evt_6e6f9d9e7c7c4d71b97c2f51", "type": "sale.created", "created_at": "2026-07-16T10:00:00Z", "account_id": 123, "data": {  "sale": {   "id": 98765,   "number": 42,   "total": 59.9,   "paid": 59.9,   "is_refund": false,   "cashbox_id": 7,   "delivery_method": "Counter sale"  },  "customer": {   "id": 456,   "name": "Martin",   "surname": "Julie",   "email": "julie@example.com"  },  "items": [],  "payments": [],  "invoice": {   "id": 98765,   "number": 42,   "pdf_url": "https://php7.enregistreuse.fr/workers/webpages/downloadInvoice.php?idcommande=98765&verif=..."  } }}

Headers envoyes

HeaderValeur
Content-Typeapplication/json
User-AgentKash.click Webhooks/1.0
X-Kash-EventType d'evenement envoye.
X-Kash-DeliveryIdentifiant unique de la livraison, prefixe del_.
X-Kash-TimestampTimestamp Unix utilise pour la signature.
X-Kash-Signaturev1=, present quand le webhook a un secret.

Verification de signature

La signature est calculee avec le secret partage du webhook, sur le timestamp, un point, puis le corps JSON brut exactement recu.

expected = "v1=" + hex_hmac_sha256(X-Kash-Timestamp + "." + raw_body, webhook_secret)
$timestamp = $_SERVER["HTTP_X_KASH_TIMESTAMP"];$signature = $_SERVER["HTTP_X_KASH_SIGNATURE"];$body = file_get_contents("php://input");$expected = "v1=".hash_hmac("sha256", $timestamp.".".$body, $secret);if (!hash_equals($expected, $signature)) {  http_response_code(401);  exit;}if (abs(time() - intval($timestamp)) > 300) {  http_response_code(401);  exit;}

Types d'evenements disponibles

Type Declenchement Donnees Payload principal
customer.created Creation d'un client depuis l'API ou l'interface. customer data.customer
customer.updated Modification d'un client depuis l'API ou l'interface. customer data.customer
sale.created Commande validee non remboursee. sale, customer, items, payments, invoice data.sale, data.customer, data.items, data.payments, data.invoice
sale.refunded Commande de remboursement validee. sale, customer, items, payments, invoice data.sale.is_refund vaut true
sale.paid Commande terminee ou entierement payee. sale, customer, items, payments, invoice data.sale, data.customer, data.items, data.payments, data.invoice
product.created Creation d'un article depuis l'API ou l'interface. product data.product
product.updated Modification d'un article depuis l'API ou l'interface. product data.product
stock.low Le stock passe sous le seuil d'alerte configure. product, stock data.product, data.stock
stock.out Le stock passe a zero. product, stock data.product, data.stock
order.sent_to_preparation Commande envoyee en preparation. sale, customer, items, payments, invoice Meme structure que les events de vente.
order.preparation_completed Preparation de commande terminee. sale, customer, items, payments, invoice Meme structure que les events de vente.
delivery.started Livraison demarree. sale, customer, items, payments, invoice Meme structure que les events de vente.
day_closing.created Fermeture de caisse creee. day_closing data.day_closing
Les events dedies invoice.created, invoice.paid, appointment.created et appointment.cancelled ne sont pas exposes dans cette version du code. Les informations de facture sont incluses dans les events de vente via data.invoice.

Details des objets data

data.customer

Envoye pour customer.created, customer.updated, et inclus dans les events de vente quand une commande est liee a un client.

ChampDescription
idIdentifiant interne du client.
nameNom de famille
surnamePrénom
titleCivilité
emailEmail
phoneTelephone principal.
phone2Telephone secondaire.
addressline1Adresse ligne 1
addressline2Adresse ligne 2
postcodeCode postal
cityVille
countryPays
customer_group_idIdentifiant du groupe client.
accounting_codeCode comptable client.

data.product

Envoye pour product.created, product.updated, stock.low et stock.out.

ChampDescription
idIdentifiant interne de l'article.
titleIntitule long.
short_titleIntitule court
descriptionDescription
pricePrix de vente
buying_pricePrix d'achat
barcodeCode-barres.
department_idIdentifiant du rayon.
vat_idIdentifiant du taux de TVA.
stockQuantite disponible.
stock_alertSeuil d'alerte propre a l'article.
unit_idIdentifiant d'unite.
unavailable1 si l'article est indisponible.
shop_hidden1 si l'article est masque de la boutique en ligne.

data.stock

Envoye uniquement avec stock.low et stock.out.

ChampDescription
previousStock avant l'operation.
currentStock apres l'operation.
deltaVariation appliquee.
alert_thresholdSeuil utilise pour declencher stock.low.

data.sale

Envoye pour sale.created, sale.refunded, sale.paid, order.sent_to_preparation, order.preparation_completed et delivery.started.

ChampDescription
idIdentifiant interne de la commande.
numberNumero comptable / numero visible quand disponible.
titleTitre de la commande.
created_atDate de creation de la commande.
validated_atDate de validation de la commande.
value_atDate de valeur
totalMontant total de la commande.
paidMontant paye connu au moment de l'evenement.
is_refundtrue si l'evenement correspond a un remboursement.
cashbox_idIdentifiant de la caisse.
delivery_methodLibelle du mode de livraison.
delivery_method_idIdentifiant du mode de livraison.
ChampDescription
paymentsTableau des paiements de la commande. Les champs principaux sont id, idModePaiement, idTypePaiement, datePaiement, montantPaye et montantVerse.
itemsTableau des lignes d'articles de la commande. Il reprend les champs metier de la ligne de commande, dont article, quantite, prix et TVA quand ils sont disponibles.

data.invoice

Inclus dans les events de vente et de cycle commande.

ChampDescription
idIdentifiant interne de la commande/facture.
numberNumero visible de facture quand disponible.
pdf_urlURL de telechargement du PDF.

data.day_closing

Envoye pour day_closing.created.

ChampDescription
cashbox_idIdentifiant de la caisse.
cashbox_nameNom de la caisse
totalTotal encaisse sur la periode.
opened_atDate UTC ISO-8601 d'ouverture.
closed_atDate UTC ISO-8601 de fermeture.

Fiabilite et retries

  • Une reponse HTTP 2xx marque la livraison comme success.
  • Les autres reponses ou erreurs reseau restent en pending jusqu'a la prochaine tentative.
  • Les delais de retry sont 1 minute, 5 minutes, 15 minutes, 1 heure, puis 6 heures.
  • Apres 5 tentatives, la livraison passe en failed.
  • Chaque tentative stocke la date, le code HTTP, un extrait de reponse et le message d'erreur.

Webhooks historiques

Les anciens champs saleWebhookURL et openingWebhookURL restent supportes. Ils envoient des formulaires application/x-www-form-urlencoded et ne remplacent pas les webhooks JSON nouvelle generation.

Webhook historique de commande

L'URL configuree pour les ventes est appelee lors d'une commande validee ou terminee.

  • type : validated ou terminated
  • isRefund : true/false si remboursement
  • orderID : numero comptable de commande
  • orderInternalID : identifiant interne de commande
  • creationDate, validationDate, valueDate : dates en timestamp
  • price, paid : montants de la commande
  • clientID, client : identifiant et JSON client
  • cashBoxID, deliveryMethod : caisse et livraison
  • PDFinvoice : lien de facture PDF
  • items, VATs, VAT, payments : JSON articles, TVA et paiements
  • HMAC_SHA256, signatureVerificationURL : signature historique et URL de verification

Webhook historique d'ouverture / fermeture de caisse

L'URL configuree pour les ouvertures et fermetures de caisse est appelee lors des changements d'etat de caisse.

  • type : cashBox_close ou cashBox_open
  • total : total encaisse sur la periode, pour cashBox_close
  • opened, closed : dates d'ouverture et fermeture
  • signatureVerificationURL : URL permettant de verifier la signature historique
Inscrivez-vous maintenant
Licence Creative Commons Ce document est mis à disposition selon les termes de la licence Creative Commons Attribution 4.0 International (CC BY 4.0) .