PHP PDF library for EU VAT invoices — Art. 226 checker
For PHP developers invoicing EU business customers. Below is a German B2B draft already checked with the same 15 checks the package runs before it writes a PDF. Change any field and the verdict changes as you type.
What the 15 checks found
Totals (Art. 226(8)–(10))
Invoice preview
Your invoice
Supplier
Customer
Lines
| Description | Qty | Unit price (excl. VAT) | VAT % |
|---|
Amounts use a dot for decimals (12.5). "12,5" is refused, exactly as the package refuses it.
Why a free PDF class is not enough
FPDF, TCPDF or dompdf draw whatever you pass them. None of them knows that a German invoice must state the date of supply even when it equals the issue date (§14(4) no. 6 UStG), that reverse charge must read Autoliquidation on a French invoice, or that a Polish supplier invoicing in EUR must also show the VAT in PLN (Art. 230). Under Art. 178(a) your customer may deduct input VAT only when holding an invoice drawn up per Articles 220–236, so a missing field holds up their deduction until you reissue.
composer require readystack/eu-invoice-pdf
German domestic B2B: from 2027-01-01, suppliers with prior-year turnover above €800,000 must issue structured e-invoices (XRechnung / ZUGFeRD); a PDF then no longer counts for those sales. This checker and the package check presence and shape of the fields; they do not choose your VAT rate.