BÈTAAuraPOS is in actieve ontwikkeling. Niet bedoeld voor kritieke productieomgevingen.Meer info
Terug naar documentatie

Webhooks

AuraPOS webhooks laten u realtime op de hoogte brengen van events die zich in uw handel voordoen (nieuw ticket, klantwijziging, enz.) zonder de API te moeten pollen.

Beschikbaarheid

Toegankelijk via AuraPOS-webbackend:

  • Inbegrepen in Group en Restaurant Group edities
  • Optioneel €24/maand voor Express / Boutique / Studio / Restaurant

Hoe het werkt

  1. Webhook aanmaken in Instellingen → Webhooks (alleen Owner)
  2. Publieke HTTPS-URL geven waar AuraPOS notificaties zal versturen
  3. Events selecteren om te beluisteren (multi-select)
  4. AuraPOS genereert een unieke HMAC-secret (één keer getoond, kopieer hem)
  5. Bij elk event verstuurt AuraPOS een HMAC-SHA256 ondertekende POST
  6. U verwerkt de notificatie serverzijdig (Slack, ERP, enz.)

De 7 beschikbare events

EventGeactiveerd wanneer
ticket.createdNieuw niet-geannuleerd ticket gevalideerd
ticket.cancelledBestaand ticket geannuleerd
client.createdNieuwe klant aangemaakt
client.updatedBestaande klant gewijzigd
produit.updatedProduct aangemaakt of gewijzigd
promotion.createdNieuwe promotie aangemaakt
promotion.updatedBestaande promotie gewijzigd

Payload-formaat

Bij elk event verstuurt AuraPOS een POST JSON:

{
  "event": "ticket.created",
  "delivery_id": "uuid-van-deze-levering",
  "created_at": "2026-05-17T14:32:08.123Z",
  "payload": {
    "numero": 1234,
    "total_tvac": 55.39,
    "mode_paiement": "Bancontact",
    "lignes": [...]
  }
}

Verzonden HTTP headers

POST /uw-endpoint HTTP/1.1
Content-Type: application/json
User-Agent: AuraPOS-Webhooks/1.0
X-AuraPOS-Event: ticket.created
X-AuraPOS-Delivery: uuid-van-deze-levering
X-AuraPOS-Signature: sha256=<hex hmac van body>

Handtekeningverificatie (veiligheid)

⚠️ Altijd HMAC-handtekening verifiëren om er zeker van te zijn dat het verzoek van AuraPOS komt.

Node.js

import crypto from "node:crypto";

function verifySignature(req, secret) {
  const signature = req.headers["x-aurapos-signature"];
  if (!signature) return false;
  const [algo, hash] = signature.split("=");
  if (algo !== "sha256") return false;
  const expected = crypto.createHmac("sha256", secret)
    .update(req.rawBody).digest("hex");
  return crypto.timingSafeEqual(
    Buffer.from(hash, "hex"),
    Buffer.from(expected, "hex"),
  );
}

PHP

function verifySignature($rawBody, $signature, $secret) {
  $expected = 'sha256=' . hash_hmac('sha256', $rawBody, $secret);
  return hash_equals($expected, $signature);
}

Betrouwbaarheid: automatische exponentiële retry

  • HTTP 2xx → delivered
  • Andere status of timeout na 10s → failed, retry gepland

Exponentiële backoff: 1 min, 5 min, 30 min, 2u, 12u (max 5 pogingen). Na 5 mislukkingen: status abandoned.

Leveringsgeschiedenis

In webhook-bewerkingspagina ziet u 50 laatste leveringen: datum + event, status, HTTP-code, aantal pogingen, eerste 500 chars van response body.

"Test versturen" knop

Voor productie: testknop Test versturen (event ping) enqueue een speciale event geleverd bij volgende worker tick (max 1 min).

Latentie

Worker tick draait elke minuut. Max latentie tussen event en webhook-notificatie ~ 1 minuut.

Voor desktop-tickets: voeg ~15 min toe (BackendSync push), dus 16 min max tussen kassa-verkoop en webhook-ontvangst.

Typische gebruikssituaties

  • Team-notificatie: Webhook → Slack incoming webhook → bericht in #verkoop-kanaal
  • CRM-sync: client.created → Mailchimp / Brevo API → toevoegen aan nieuwsbrieflijst
  • Make / Zapier workflow: keten 5 acties
  • E-commerce push catalogus: produit.updated → script die /api/v1/produits/{id} pulled → POST naar e-commerce platform
  • Realtime BI dashboard

Endpoint dat uitvalt

Als uw endpoint enkele uren down is: eerste pogingen mislukken, retry-schema loopt door. Als u terugkomt vóór 5e poging → delivered. Anders na 12u abandoned → handmatig events recupereren via /api/v1/tickets?debut=....

Voor kritische integraties (boekhouding): plan een wekelijkse job die tickets re-pullt om eventuele abandoned te overbruggen.

Secret hergeneren

Als HMAC-secret lekt: vanaf webhook-edit → Secret hergeneren (oude ongeldig). Update onmiddellijk consumerzijdig.

Verwijdering

Verwijderen-knop in gevarenzone. Verwijdering is definitief en stopt onmiddellijk leveringen.