VUZDevelopers
Concepts

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

docTypeHebrewUse
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/documents

creates 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}/finalize

Requires 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/preview

Renders 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-30

Supports clientId, docType, status, fromDate/toDate, free-text search, and page/limit pagination.

On this page