VAT & Czech tax rules
Rates, DUZP, reverse charge, OSS and document types.
Check your tax treatment
This page explains how Invoicey renders VAT. Ask your accountant which mode applies, with reference to zákon č. 235/2004 Sb.
Rates
| Rate | Czech | Common examples |
|---|---|---|
| 21 % | základní sazba | Most goods and services |
| 12 % | snížená sazba | Accommodation, catering and passenger transport |
| 0 % | nulová sazba / osvobození | Books, exports and eligible intra-EU supplies |
The UI offers 21 / 12 / 0, while the schema accepts historical positive rates. A backdated invoice with a 2022 DUZP may legitimately need 15 % or 10 %.
VAT modes
vat.mode drives what appears on the PDF and how the ISDOC is tagged.
The standard domestic invoice. VAT is charged per line.
- Requires a DUZP.
- The PDF prints a full VAT recap (Rekapitulace DPH) grouped by rate.
- ISDOC emits standard
<TaxTotal>blocks per rate.
For a non-payer, every line is forced to 0 %, the PDF omits the DPH column and the daňový doklad subtitle, and prints Nejsem plátce DPH. ISDOC still records rate 0.
DUZP
Datum uskutečnění zdanitelného plnění is the taxable-supply date. It determines the tax period and is separate from the issue date.
- Required on
invoiceandcredit_note. - May be before or after the issue date.
- On
proformaandadvance, it may equal the issue date. - For a non–VAT-payer, the same date is printed as Datum uskutečnění plnění (not a tax-point date).
Document types
| Type | Czech | Tax document? |
|---|---|---|
invoice | Faktura vystavená | Yes, if the issuer is a VAT payer |
proforma | Proformová faktura | No — a request for payment |
advance | Zálohová faktura | Yes, for the advance (VAT payer) |
credit_note | Dobropis (opravný daňový doklad) | Yes for a VAT payer — corrects a previous invoice |
A credit_note must reference the invoice it corrects via meta.correctedInvoiceNumber. The
schema enforces this.
Each type can have its own numbering scheme and counter.
Not a VAT payer?
Set vatPayer = false on the issuer. Invoicey forces every line to 0 %, does not label the PDF as a daňový doklad, omits the DPH column (0 % is not the same as “I am not a VAT payer”), replaces the VAT recap with
Nejsem plátce DPH, and prints the performance date as Datum uskutečnění plnění. Numbering, QR, ISDOC and automation stay available. Add a registry line on the issuer (for an OSVČ typically Fyzická osoba zapsaná v živnostenském rejstříku.).