Kassa

Kash.click, free online POS software since 2011

Follow Us

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:

Accès rapide : gestes du quotidien

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

NaamVerplichtBeschrijving
shopIDJaYour store ID.
keyJaAPI 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 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 - Bezorger onderweg
  • day_closing.created - Day closing created

create a webhook

POST https://kash.click/workers/addWebhook.php

NaamVerplichtBeschrijving
urlJaThe target URL is called via POST JSON. It must start with http:// or https://.
eventsJaList of events listened to, for example ['sale.created','customer.created'].
descriptionNeenA free internal name, useful for identifying the webhook in the interface.
activeNeen1 by default. Set to 0 to create an inactive webhook.
secretNeenThe 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

NaamVerplichtBeschrijving
idJaWebhook identifier.
urlNeenNew target URL.
descriptionNeenNew description.
eventsNeenNew list of events. Replaces the previous list.
activeNeen1 to activate, 0 to deactivate.
secretNeenReplace the secret with the provided value.
rotateSecretNeenEnter 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

NaamVerplichtBeschrijving
webhookIDNeenFiltering on a webhook.
statusNeenpending, success Or failed
limitNeenNumber 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.
Sign up now
Licence Creative Commons This document is made available under the terms of the licence Creative Commons Attribution 4.0 International (CC BY 4.0) .