Help Center
This help will guide you through the setup and usage of our point of sale cash register software.
Search by keyword in the help section:
Webhook management
Create, modify, list and monitor next-generation JSON webhooks.
The endpoints below use the existing API authentication: shopID + key. To send a JSON body, place shopID and key in the URL, then send the webhook parameters in the JSON.
Common authentication
| Name | Necessary | 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 | Necessary | 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 | Necessary | 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 | Necessary | 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.
This document is made available under the terms of the licence Creative Commons Attribution 4.0 International (CC BY 4.0) .