Webhook management
Create, modify, list and monitor next-generation JSON webhooks.
Common authentication
| Name | Required | Description |
|---|---|---|
shopID | Yes | Your store ID. |
key | Yes | API key for your store. |
Available Events
The events field accepts a JSON array, a comma-separated string, or * to listen for all events.
customer.created- Customer createdcustomer.updated- Customer updatedsale.created- Sale createdsale.refunded- Sale refundedsale.paid- Sale paidproduct.created- Product createdproduct.updated- Product updatedstock.low- Stock lowstock.out- Stock outorder.sent_to_preparation- Order sent to preparationorder.preparation_completed- Order preparation completeddelivery.started- Delivery startedday_closing.created- Day closing created
create a webhook
POST https://kash.click/workers/addWebhook.php
| Name | Required | Description |
|---|---|---|
url | Yes | The target URL is called via POST JSON. It must start with http:// or https://. |
events | Yes | List of events listened to, for example ['sale.created','customer.created']. |
description | No | A free internal name, useful for identifying the webhook in the interface. |
active | No | 1 by default. Set to 0 to create an inactive webhook. |
secret | No | The secret share is used to sign deliveries. If empty, Kash.click generates one and returns it only once. |
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);
List the webhooks
GET https://kash.click/workers/getWebhooks.php
Returns the list of active/non-deleted webhooks and the list of available events.
{
"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
}
]
}
modify a webhook
POST https://kash.click/workers/editWebhook.php
| Name | Required | Description |
|---|---|---|
id | Yes | Webhook identifier. |
url | No | New target URL. |
description | No | New description. |
events | No | New list of events. Replaces the previous list. |
active | No | 1 to activate, 0 to deactivate. |
secret | No | Replace the secret with the provided value. |
rotateSecret | No | Enter 1 to generate a new secret. The new secret is returned only once. |
{
"id": 12,
"url": "https://example.com/new-target",
"events": ["sale.created", "sale.paid"],
"active": 1
}
delete a webhook
POST https://kash.click/workers/delWebhook.php
The removal is logical: the webhook is deactivated and marked as deleted.
{ "id": 12 }
Delivery history
GET https://kash.click/workers/getWebhookDeliveries.php
| Name | Required | Description |
|---|---|---|
webhookID | No | Filtering on a webhook. |
status | No | pending, success Or failed |
limit | No | Number of rows returned. Default 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": ""
}
]
}
Restart a delivery
POST https://kash.click/workers/retryWebhookDelivery.php
Re-establishes a pending delivery status with an immediate next attempt.
{ "id": 345 }
Important Notes
- Responses in the 2xx range are considered a success.
- Inactive webhooks no longer receive deliveries.
- The secret is never returned during the list: only at creation or during a rotation.
- The signature sent to the recipient is documented on the Webhook page.