This help will guide you through the setup and usage of our point of sale cash register software.
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.
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
| Champ | Description |
|---|---|
id | Identifiant unique de l'evenement, prefixe evt_. |
type | Type d'evenement, par exemple sale.created. |
created_at | Date UTC ISO-8601 de creation de l'evenement. |
account_id | Identifiant de la boutique Kash.click. |
data | Objet 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
| Header | Höhe |
|---|---|
Content-Type | application/json |
User-Agent | Kash.click Webhooks/1.0 |
X-Kash-Event | Type d'evenement envoye. |
X-Kash-Delivery | Identifiant unique de la livraison, prefixe del_. |
X-Kash-Timestamp | Timestamp Unix utilise pour la signature. |
X-Kash-Signature | v1= |
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 |
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.
| Champ | Description |
|---|---|
id | Identifiant interne du client. |
name | Nom de famille. |
surname | Vorname |
title | Titel |
email | |
phone | Telephone principal. |
phone2 | Telephone secondaire. |
addressline1 | Adresse ligne 1. |
addressline2 | Adresse ligne 2. |
postcode | Postleitzahl |
city | Stadt |
country | Pays. |
customer_group_id | Identifiant du groupe client. |
accounting_code | Code comptable client. |
data.product
Envoye pour product.created, product.updated, stock.low et stock.out.
| Champ | Description |
|---|---|
id | Identifiant interne de l'article. |
title | Intitule long. |
short_title | Intitule court. |
description | Description |
price | Prix de vente |
buying_price | Prix d'achat. |
barcode | Code-barres. |
department_id | Identifiant du rayon. |
vat_id | Identifiant du taux de TVA. |
stock | Quantite disponible. |
stock_alert | Seuil d'alerte propre a l'article. |
unit_id | Identifiant d'unite. |
unavailable | 1 si l'article est indisponible. |
shop_hidden | 1 si l'article est masque de la boutique en ligne. |
data.stock
Envoye uniquement avec stock.low et stock.out.
| Champ | Description |
|---|---|
previous | Stock avant l'operation. |
current | Stock apres l'operation. |
delta | Variation appliquee. |
alert_threshold | Seuil 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.
| Champ | Description |
|---|---|
id | Identifiant interne de la commande. |
number | Numero comptable / numero visible quand disponible. |
title | Titre de la commande. |
created_at | Date de creation de la commande. |
validated_at | Date de validation de la commande. |
value_at | Date de valeur |
total | Montant total de la commande. |
paid | Montant paye connu au moment de l'evenement. |
is_refund | true si l'evenement correspond a un remboursement. |
cashbox_id | Identifiant de la caisse. |
delivery_method | Libelle du mode de livraison. |
delivery_method_id | Identifiant du mode de livraison. |
| Champ | Description |
|---|---|
payments | Tableau des paiements de la commande. Les champs principaux sont id, idModePaiement, idTypePaiement, datePaiement, montantPaye et montantVerse. |
items | Tableau 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.
| Champ | Description |
|---|---|
id | Identifiant interne de la commande/facture. |
number | Numero visible de facture quand disponible. |
pdf_url | URL de telechargement du PDF. |
data.day_closing
Envoye pour day_closing.created.
| Champ | Description |
|---|---|
cashbox_id | Identifiant de la caisse. |
cashbox_name | Kassenname |
total | Total encaisse sur la periode. |
opened_at | Date UTC ISO-8601 d'ouverture. |
closed_at | Date 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 terminatedisRefund: true/false si remboursementorderID: numero comptable de commandeorderInternalID: identifiant interne de commandecreationDate,validationDate,valueDate: dates en timestampprice,paid: montants de la commandeclientID,client: identifiant et JSON clientcashBoxID,deliveryMethod: caisse et livraisonPDFinvoice: lien de facture PDFitems,VATs,VAT,payments: JSON articles, TVA et paiementsHMAC_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_closeoucashBox_opentotal: total encaisse sur la periode, pour cashBox_closeopened,closed: dates d'ouverture et fermeturesignatureVerificationURL: URL permettant de verifier la signature historique
Ce document est mis à disposition selon les termes de la licence Creative Commons Attribution 4.0 International (CC BY 4.0) .