VUZDevelopers
Webhooks

Events catalog

The 9 real event types you can subscribe to.

Register an endpoint (POST /api/v1/webhooks, requires webhooks:manage) and list the events you want. VUZ POSTs a signed payload to your URL the moment each event fires.

Events

EventFires when
document.finalizedA document is finalized (numbered, signed, immutable)
client.createdA new client is created
client.updatedA client's details are updated
product.createdA new product is created
product.updatedA product's details are updated
payment.receivedA payment is recorded against a document
quote.acceptedA customer accepts a quote
quote.rejectedA customer rejects a quote
expense.uploadedAn expense/receipt is uploaded (accountant-side event)
checkout.paidA Payment Page sale is paid and its document is finalized — never earlier
checkout.failedA Payment Page checkout reaches a terminal decline (locked out or expired), not every retryable decline
checkout.activatedA recurring Payment Page checkout tokenizes and its standing order (mandate) activates

There is no document.created or document.delivered event — documents notify only on document.finalized (the DRAFT → ISSUED transition). If you were expecting per-draft or per-delivery events, they don't exist today.

checkout.paid/checkout.failed/checkout.activated are specific to Payment Pages — a payment recorded against an existing document you created yourself (e.g. via POST /documents) still fires payment.received, not checkout.paid. The two are deliberately separate: payment.received is about a payment against a document you already control; checkout.paid is about a self-serve sale your customer initiated on a page you configured once.

Register an endpoint

curl -X POST https://api.vuz.co.il/api/v1/webhooks \
  -H "X-Api-Key: vuz_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-server.example.com/webhooks/vuz",
    "events": ["document.finalized", "payment.received"],
    "description": "Sync finalized invoices to my ERP"
  }'

Every endpoint gets its own randomly generated HMAC secret (returned once, and readable again via GET /webhooks/{id} if you need to re-verify your signature-checking code) — see Signature verification.

Test it

POST /api/v1/webhooks/{id}/test

Fires a synthetic test event at your endpoint so you can confirm connectivity and signature verification before going live.

On this page