Gestion des webhooks
Creez, modifiez, listez et surveillez les webhooks JSON nouvelle generation.
Les endpoints ci-dessous utilisent l'authentification API existante : shopID + key. Pour envoyer un corps JSON, placez shopID et key dans l'URL, puis envoyez les parametres du webhook dans le JSON.
Authentification commune
| Nom | Obligatoire | Description |
shopID | Oui | Identifiant de votre boutique. |
key | Oui | Cle API de votre boutique. |
Evenements disponibles
Le champ events accepte un tableau JSON, une chaine separee par des virgules, ou * pour ecouter tous les evenements.
customer.created - Customer created
customer.updated - Customer updated
sale.created - Sale created
sale.refunded - Sale refunded
sale.paid - Sale paid
product.created - Product created
product.updated - Product updated
stock.low - Stock low
stock.out - Stock out
order.sent_to_preparation - Order sent to preparation
order.preparation_completed - Order preparation completed
delivery.started - Livreur en chemin
day_closing.created - Day closing created
Creer un webhook
POST https://kash.click/workers/addWebhook.php
| Nom | Obligatoire | Description |
url | Oui | URL cible appelee en POST JSON. Elle doit commencer par http:// ou https://. |
events | Oui | Liste des evenements ecoutes, par exemple ['sale.created','customer.created']. |
description | Non | Nom interne libre, utile pour identifier le webhook dans l'interface. |
active | Non | 1 par defaut. Mettre 0 pour creer un webhook inactif. |
secret | Non | Secret partage utilise pour signer les livraisons. Si vide, Kash.click en genere un et le retourne une seule fois. |
fetch("https://kash.click/workers/addWebhook.php?shopID=[SHOPID]&key=[APIKEY]", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
url: "https://hooks.zapier.com/hooks/catch/123456/abcdef/",
description: "Zapier production",
events: ["customer.created", "sale.created", "sale.paid", "product.created", "stock.low"],
active: 1
})
}).then(r => r.json()).then(console.log);
Lister les webhooks
GET https://kash.click/workers/getWebhooks.php
Retourne la liste des webhooks actifs/non supprimes et la liste des evenements disponibles.
{
"success": true,
"result": "OK",
"events": {
"sale.created": "Sale created"
},
"webhooks": [
{
"id": 12,
"url": "https://example.com/webhook",
"description": "Zapier production",
"events": ["sale.created", "sale.paid"],
"active": 1,
"hasSecret": 1,
"created_at": "2026-07-16T10:00:00Z",
"updated_at": "2026-07-16T10:00:00Z",
"last_success_at": null,
"last_failure_at": null
}
]
}
Modifier un webhook
POST https://kash.click/workers/editWebhook.php
| Nom | Obligatoire | Description |
id | Oui | Identifiant du webhook. |
url | Non | Nouvelle URL cible. |
description | Non | Nouvelle description. |
events | Non | Nouvelle liste d'evenements. Remplace la liste precedente. |
active | Non | 1 pour activer, 0 pour desactiver. |
secret | Non | Remplace le secret par la valeur fournie. |
rotateSecret | Non | Mettre 1 pour generer un nouveau secret. Le nouveau secret est retourne une seule fois. |
{
"id": 12,
"url": "https://example.com/new-target",
"events": ["sale.created", "sale.paid"],
"active": 1
}
Supprimer un webhook
POST https://kash.click/workers/delWebhook.php
La suppression est logique : le webhook est desactive et marque comme supprime.
{ "id": 12 }
Historique des livraisons
GET https://kash.click/workers/getWebhookDeliveries.php
| Nom | Obligatoire | Description |
webhookID | Non | Filtrer sur un webhook. |
status | Non | pending, success ou failed |
limit | Non | Nombre de lignes retournees. Par defaut 50, maximum 100. |
{
"id": 345,
"delivery_id": "del_...",
"event_id": "evt_...",
"type": "sale.created",
"webhook_id": 12,
"url": "https://example.com/webhook",
"status": "failed",
"attempts_count": 5,
"max_attempts": 5,
"created_at": "2026-07-16T10:00:00Z",
"next_attempt_at": null,
"last_attempt_at": "2026-07-16T16:21:00Z",
"http_code": 500,
"error": "",
"attempts": [
{
"attempt": 5,
"attempted_at": "2026-07-16T16:21:00Z",
"success": 0,
"http_code": 500,
"response": "Internal server error",
"error": ""
}
]
}
Relancer une livraison
POST https://kash.click/workers/retryWebhookDelivery.php
Remet une livraison en status pending avec une prochaine tentative immediate.
{ "id": 345 }
Notes importantes
- Les reponses 2xx sont considerees comme un succes.
- Les webhooks inactifs ne recoivent plus de livraisons.
- Le secret n'est jamais retourne lors de la liste : seulement a la creation ou lors d'une rotation.
- La signature envoyee au destinataire est documentee dans la page Webhook.