Documents & doc types
Invoices, receipts, quotes, credit notes — one resource, one docType field.
A document is any accounting document VUZ can issue — an invoice, a receipt, a
quote, a credit note. There is one resource and one endpoint; docType selects the kind.
Common document types
docType | Hebrew | Use |
|---|---|---|
tax_invoice | חשבונית מס | Tax invoice with VAT (no payment yet) |
tax_invoice_receipt | חשבונית מס/קבלה | The common one — invoice + payment in one document |
receipt | קבלה | Payment receipt (no VAT breakdown) |
quote | הצעת מחיר | Non-binding price quote |
credit_note | חשבונית מס זיכוי | Reverses/corrects a prior invoice |
deal_bill | חשבון עסקה | For osek_patur businesses — no VAT charged |
Which types you may legally issue depends on your business's businessType
(osek_patur / osek_murshe / limited_company) — see
VAT & Israeli compliance. VUZ enforces this server-side; issuing a
disallowed type for your business fails with a 400.
Lifecycle: DRAFT → ISSUED
POST /api/v1/documentscreates a document in DRAFT — editable, no document number yet, no PDF generated, no allocation number requested from the Tax Authority.
Finalizing is its own call — and its own scope:
POST /api/v1/documents/{id}/finalizeRequires documents:finalize (deliberately separate from documents:write — a credential
that creates drafts can't silently issue them). Finalizing assigns the sequential document
number, generates the signed PDF, and — where required — requests an allocation number
(מספר הקצאה) from the Tax Authority. A finalized (ISSUED) document is immutable;
undoing it is a separate POST /documents/{id}/cancel (scope documents:cancel), which
creates the legally required counter-document.
You can still preview what the document will look like before/regardless of finalization:
GET /api/v1/documents/{documentId}/pdf/previewRenders a live PDF (with a DRAFT watermark for non-finalized documents).
Credit notes
There is no separate credit-note endpoint — a credit note is POST /documents with:
{
"docType": "credit_note",
"originalDocumentId": "<uuid of the finalized invoice you're crediting>",
"items": [ /* negative quantity/amount lines */ ]
}The original document must be ISSUED (finalized). See the full validation rules and a
worked example in the POST /documents reference page.
Line-item math is validated server-side
Every item requires lineSubTotal, lineVatTotal, and lineGrandTotal — you compute
them client-side, VUZ re-computes and rejects the request if they're off by more than
±0.01. This is deliberate (catches silent rounding/precision bugs in your integration
before they hit a signed document) — see the full formulas on the
POST /documents reference page.
Filtering the list
GET /api/v1/documents?docType=tax_invoice_receipt&status=issued&fromDate=2026-06-01&toDate=2026-06-30Supports clientId, docType, status, fromDate/toDate, free-text search, and
page/limit pagination.

