[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs:troubleshooting":3},{"versions":4,"version":26,"nav":28,"path":92,"kind":106,"page":107},[5,10,13,16,18,20,22,24],{"name":6,"label":7,"prefix":8,"channel":9},"0.7","0.7 (latest)","","latest",{"name":11,"label":12,"prefix":11,"channel":11},"next","next (unreleased)",{"name":14,"label":14,"prefix":14,"channel":15},"0.6","old",{"name":17,"label":17,"prefix":17,"channel":15},"0.5",{"name":19,"label":19,"prefix":19,"channel":15},"0.4",{"name":21,"label":21,"prefix":21,"channel":15},"0.3",{"name":23,"label":23,"prefix":23,"channel":15},"0.2",{"name":25,"label":25,"prefix":25,"channel":15},"0.1",{"name":6,"label":7,"prefix":8,"channel":9,"base":27},"\u002Fdocs",[29,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,91,94,97,100,103],{"slug":30,"title":31,"preview":32},"index","Home",false,{"slug":34,"title":35,"preview":32},"getting-started","Getting started",{"slug":37,"title":38,"preview":32},"concepts","E-invoicing basics",{"slug":40,"title":41,"preview":32},"examples","Examples",{"slug":43,"title":44,"preview":32},"building-invoices","Building invoices",{"slug":46,"title":47,"preview":32},"formats","Formats and profiles",{"slug":49,"title":50,"preview":32},"validation","Validation",{"slug":52,"title":53,"preview":32},"templates","Templates and design",{"slug":55,"title":56,"preview":32},"documents","Quotes and other documents",{"slug":58,"title":59,"preview":32},"reading","Reading incoming invoices",{"slug":61,"title":62,"preview":32},"laravel","Laravel integration",{"slug":64,"title":65,"preview":32},"configuration","Configuration",{"slug":67,"title":68,"preview":32},"commands","Artisan commands",{"slug":70,"title":71,"preview":32},"testing","Testing",{"slug":73,"title":74,"preview":32},"country-packs","Country packs",{"slug":76,"title":77,"parent":74,"preview":32},"country-at","Austria",{"slug":79,"title":80,"parent":74,"preview":32},"country-be","Belgium",{"slug":82,"title":83,"parent":74,"preview":32},"country-ch","Switzerland",{"slug":85,"title":86,"parent":74,"preview":32},"country-fr","France",{"slug":88,"title":89,"preview":90},"managed","Managed layer (preview)",true,{"slug":92,"title":93,"preview":32},"troubleshooting","Troubleshooting",{"slug":95,"title":96,"preview":32},"faq","FAQ",{"slug":98,"title":99,"preview":32},"compatibility","Versioning and compatibility",{"slug":101,"title":102,"preview":32},"field-reference","Field reference",{"slug":104,"title":105,"preview":32},"ai","AI assistants","page",{"title":93,"description":108,"html":109,"headings":110,"editUrl":182,"markdownUrl":183,"prev":184,"next":185},"This page lists the errors that people new to Quittio meet most often, with the cause and the fix.","\u003Ch1 id=\"troubleshooting\">Troubleshooting\u003C\u002Fh1>\n\u003Cp>This page lists the errors that people new to Quittio meet most often, with the cause and the fix. Most of them come from validation: Quittio checks every invoice against the rules of the e-invoicing standards before it renders it (\u003Ca href=\"\u002Fdocs\u002Fconcepts#rules-and-validation\">Rules and validation\u003C\u002Fa>).\u003C\u002Fp>\n\u003Ch2 id=\"reading-an-error-message\">Reading an error message\u003Ca class=\"q-doc-anchor\" href=\"#reading-an-error-message\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>An invalid invoice stops the rendering with a \u003Ccode>Quittio\\Core\\Validation\\ValidationException\u003C\u002Fcode>. Its message lists every error with the rule code, the field and a hint:\u003C\u002Fp>\n\u003Cdiv class=\"q-doc-code\">\u003Cdiv class=\"q-doc-code-bar\">\u003Cspan>text\u003C\u002Fspan>\u003Cbutton type=\"button\" class=\"q-doc-copy\" data-copy aria-label=\"Copy code\">\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fsvg>\u003Cspan>Copy\u003C\u002Fspan>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\" style=\"padding-left:2ch;text-indent:-2ch\">\u003Cspan>The invoice is not valid (2 errors):\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:2ch;text-indent:-2ch\">\u003Cspan>[BR-CO-25] BT-9: In case the amount due for payment (BT-115) is positive, either the payment due date (BT-9) or the payment terms (BT-20) shall be present.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:6ch;text-indent:-6ch\">\u003Cspan>    Add a payment target with ->dueInDays(14) or a due date with ->dueDate().\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:2ch;text-indent:-2ch\">\u003Cspan>[DE-USTG-03] BT-72: The date of the supply or service must be stated: delivery date (BT-72), invoicing period (BG-14) or periods on all lines (BG-26) (section 14 (4) no. 6 UStG).\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:6ch;text-indent:-6ch\">\u003Cspan>    Set ->deliveryDate(), even if it equals the invoice date, or ->invoicingPeriod().\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\u003Cul>\n\u003Cli>\u003Ccode>[BR-CO-25]\u003C\u002Fcode> is the rule. The prefix tells where it comes from: \u003Ccode>BR-\u003C\u002Fcode> EN 16931, \u003Ccode>BR-DE-\u003C\u002Fcode> XRechnung, \u003Ccode>DE-USTG-\u003C\u002Fcode> the German VAT Act, \u003Ccode>QUITTIO-\u003C\u002Fcode> Quittio itself (\u003Ca href=\"\u002Fdocs\u002Fconcepts#rules-and-validation\">rule codes\u003C\u002Fa>).\u003C\u002Fli>\n\u003Cli>\u003Ccode>BT-9\u003C\u002Fcode> is the field (\u003Ca href=\"\u002Fdocs\u002Fconcepts#en-16931-and-business-terms\">business terms\u003C\u002Fa>); the \u003Ca href=\"\u002Fdocs\u002Ffield-reference\">Field reference\u003C\u002Fa> shows where each field is in the data model.\u003C\u002Fli>\n\u003Cli>The indented line is the hint: usually the builder method that fixes the error.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Warnings do not stop the rendering; they are in \u003Ccode>$result-&gt;validation()\u003C\u002Fcode>. \u003Ccode>-&gt;check()\u003C\u002Fcode> instead of \u003Ccode>-&gt;render()\u003C\u002Fcode> validates without rendering and returns all findings without throwing, which helps while you build an invoice step by step (\u003Ca href=\"\u002Fdocs\u002Fvalidation\">Validation\u003C\u002Fa>).\u003C\u002Fp>\n\u003Cp>The messages are in the language of your Laravel application (\u003Ccode>app()-&gt;getLocale()\u003C\u002Fcode>). \u003Ccode>quittio.validation.locale\u003C\u002Fcode> sets another language, \u003Ccode>'invoice'\u003C\u002Fcode> uses the language of the invoice (\u003Ca href=\"\u002Fdocs\u002Fvalidation#messages-and-translations\">Messages and translations\u003C\u002Fa>).\u003C\u002Fp>\n\u003Ch2 id=\"errors-while-building\">Errors while building\u003Ca class=\"q-doc-anchor\" href=\"#errors-while-building\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>These errors are thrown by \u003Ccode>build()\u003C\u002Fcode> or \u003Ccode>render()\u003C\u002Fcode> before any validation, as \u003Ccode>Quittio\\Core\\Exceptions\\InvalidInvoiceData\u003C\u002Fcode> or \u003Ccode>InvalidArgumentException\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3 id=\"floats-are-not-accepted\">&quot;Floats are not accepted&quot;\u003Ca class=\"q-doc-anchor\" href=\"#floats-are-not-accepted\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cdiv class=\"q-doc-code\">\u003Cdiv class=\"q-doc-code-bar\">\u003Cspan>text\u003C\u002Fspan>\u003Cbutton type=\"button\" class=\"q-doc-copy\" data-copy aria-label=\"Copy code\">\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fsvg>\u003Cspan>Copy\u003C\u002Fspan>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\" style=\"padding-left:2ch;text-indent:-2ch\">\u003Cspan>Floats are not accepted for amounts, prices, rates and quantities (19.99 given) …\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\u003Cp>Amounts, prices, rates and quantities must be strings or integers: \u003Ccode>netPrice: '19.99'\u003C\u002Fcode>, not \u003Ccode>netPrice: 19.99\u003C\u002Fcode>. A float such as 0.1 cannot be stored exactly, and invoices must be exact to the cent. Values from the database are usually strings already; cast decimals with \u003Ccode>(string)\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3 id=\"missing-vat-information-of-line-1-bg-30\">&quot;Missing VAT information of line 1 (BG-30)&quot;\u003Ca class=\"q-doc-anchor\" href=\"#missing-vat-information-of-line-1-bg-30\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>The line has no VAT rate. In Laravel every line without \u003Ccode>vat:\u003C\u002Fcode> gets the default VAT (19 % for a German seller, \u003Ccode>quittio.defaults.vat\u003C\u002Fcode>). Without Laravel there is no default: set the VAT per line (\u003Ccode>vat: VatPreset::Standard\u003C\u002Fcode>), for the invoice with \u003Ccode>-&gt;defaultVat(VatPreset::Standard)\u003C\u002Fcode>, or once for the application with \u003Ccode>InvoiceBuilder::useDefaultVat(…)\u003C\u002Fcode> (\u003Ca href=\"\u002Fdocs\u002Fbuilding-invoices#default-vat\">Default VAT\u003C\u002Fa>).\u003C\u002Fp>\n\u003Ch3 id=\"missing-seller-postal-address-bg-5-and-other-missing-\">&quot;Missing seller postal address (BG-5)&quot; and other &quot;Missing …&quot;\u003Ca class=\"q-doc-anchor\" href=\"#missing-seller-postal-address-bg-5-and-other-missing-\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>A required part of the invoice is missing entirely; the message names it and its field number. With \u003Ccode>Quittio::invoice()\u003C\u002Fcode> the seller comes from \u003Ccode>config\u002Fquittio.php\u003C\u002Fcode>: fill in \u003Ccode>seller.address\u003C\u002Fcode> (street, postcode, city, country) there (\u003Ca href=\"\u002Fdocs\u002Fconfiguration\">Configuration\u003C\u002Fa>). For the buyer, call \u003Ccode>-&gt;buyer(Party::make('…')-&gt;address(…))\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch2 id=\"validation-errors\">Validation errors\u003Ca class=\"q-doc-anchor\" href=\"#validation-errors\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ch3 id=\"seller-address-incomplete-de-ustg-01\">Seller address incomplete (DE-USTG-01)\u003Ca class=\"q-doc-anchor\" href=\"#seller-address-incomplete-de-ustg-01\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>The address of the seller or buyer lacks street, postcode, city or country; the message names the party and the missing fields. German invoices need the full address of both parties. For the seller, check \u003Ccode>seller.address\u003C\u002Fcode> in \u003Ccode>config\u002Fquittio.php\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3 id=\"seller-identifier-missing-br-co-26-br-s-02-de-ustg-02\">Seller identifier missing (BR-CO-26, BR-S-02, DE-USTG-02)\u003Ca class=\"q-doc-anchor\" href=\"#seller-identifier-missing-br-co-26-br-s-02-de-ustg-02\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>The seller has neither a VAT identification number nor a tax number. Set \u003Ccode>seller.vat_id\u003C\u002Fcode> or \u003Ccode>seller.tax_number\u003C\u002Fcode> in \u003Ccode>config\u002Fquittio.php\u003C\u002Fcode> (or \u003Ccode>-&gt;vatId()\u003C\u002Fcode> \u002F \u003Ccode>-&gt;taxNumber()\u003C\u002Fcode> on the seller). A small business with a tax number only also needs a seller identifier or a trade register number for EN 16931 (\u003Ccode>seller.identifiers\u003C\u002Fcode> or \u003Ccode>seller.legal_registration\u003C\u002Fcode>, rule \u003Ccode>BR-CO-26\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Ch3 id=\"date-of-supply-missing-de-ustg-03\">Date of supply missing (DE-USTG-03)\u003Ca class=\"q-doc-anchor\" href=\"#date-of-supply-missing-de-ustg-03\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>German invoices must state when the goods were delivered or the service was performed, even if it is the invoice date. Add \u003Ccode>-&gt;deliveryDate('2026-09-30')\u003C\u002Fcode>, an invoicing period, or a period on every line (\u003Ccode>Line::make(…)-&gt;period(…)\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Ch3 id=\"payment-due-date-missing-br-co-25\">Payment due date missing (BR-CO-25)\u003Ca class=\"q-doc-anchor\" href=\"#payment-due-date-missing-br-co-25\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>An invoice with an amount to pay needs a due date or payment terms: \u003Ccode>-&gt;dueInDays(14)\u003C\u002Fcode> or \u003Ccode>-&gt;dueDate('2026-10-17')\u003C\u002Fcode>. In Laravel \u003Ccode>quittio.defaults.due_days\u003C\u002Fcode> (default 14) adds a due date to every invoice without one, so the error appears without Laravel or when that key is \u003Ccode>null\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3 id=\"xrechnung-needs-more-fields-quittio-profile-required-br-de-\">XRechnung needs more fields (QUITTIO-PROFILE-REQUIRED, BR-DE-…)\u003Ca class=\"q-doc-anchor\" href=\"#xrechnung-needs-more-fields-quittio-profile-required-br-de-\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>XRechnung (public buyers in Germany) requires fields that other formats leave optional. A typical first attempt reports several errors at once:\u003C\u002Fp>\n\u003Ctable class=\"q-doc-table q-stack-table\">\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Field\u003C\u002Fth>\n\u003Cth>Set with\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Buyer reference, the Leitweg-ID of the authority (BT-10)\u003C\u002Ftd>\n\u003Ctd data-label=\"Set with\">\u003Ccode>-&gt;buyerReference('04011000-12345-03')\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Seller contact: name, phone, e-mail (BG-6)\u003C\u002Ftd>\n\u003Ctd data-label=\"Set with\">\u003Ccode>seller.contact\u003C\u002Fcode> in the configuration, or \u003Ccode>-&gt;contact(…)\u003C\u002Fcode> on the seller\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Electronic address of seller and buyer (BT-34, BT-49)\u003C\u002Ftd>\n\u003Ctd data-label=\"Set with\">\u003Ccode>seller.electronic_address\u003C\u002Fcode> in the configuration; \u003Ccode>-&gt;electronicAddress('ap@kunde.de', 'EM')\u003C\u002Fcode> on the buyer\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Payment instructions (BG-16)\u003C\u002Ftd>\n\u003Ctd data-label=\"Set with\">\u003Ccode>seller.bank_accounts\u003C\u002Fcode> in the configuration, or \u003Ccode>-&gt;payment(…)\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>See the \u003Ca href=\"\u002Fdocs\u002Fexamples#public-sector\">public sector example\u003C\u002Fa> and \u003Ca href=\"\u002Fdocs\u002Fcountry-packs#format-choice\">German format choice\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3 id=\"peppol-rejects-the-electronic-address-peppol-en16931-cl008\">Peppol rejects the electronic address (PEPPOL-EN16931-CL008)\u003Ca class=\"q-doc-anchor\" href=\"#peppol-rejects-the-electronic-address-peppol-en16931-cl008\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>Peppol delivers to the electronic address (BT-34, BT-49), so it must be a Peppol participant identifier. EN 16931 also allows an e-mail address (\u003Ccode>EM\u003C\u002Fcode>), Peppol does not, nor the other letter schemes and a few newer codes of the EAS list. Use the scheme under which the party is registered in Peppol, e.g. \u003Ccode>-&gt;electronicAddress('DE123456789', '9930')\u003C\u002Fcode> (German VAT number) or \u003Ccode>-&gt;electronicAddress('4000001000005', '0088')\u003C\u002Fcode> (GLN); for the seller set \u003Ccode>seller.electronic_address\u003C\u002Fcode> in the configuration. ZUGFeRD and XRechnung keep accepting \u003Ccode>EM\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3 id=\"small-business-with-vat-de-ustg-09\">Small business with VAT (DE-USTG-09)\u003Ca class=\"q-doc-anchor\" href=\"#small-business-with-vat-de-ustg-09\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>The seller is marked as a small business (\u003Ccode>seller.small_business\u003C\u002Fcode>, German Kleinunternehmer under section 19 UStG), but a line carries VAT. Small businesses charge no VAT: with the small business setting, lines without \u003Ccode>vat:\u003C\u002Fcode> get the small business preset automatically; remove explicit \u003Ccode>vat:\u003C\u002Fcode> values from the lines.\u003C\u002Fp>\n\u003Ch2 id=\"rendering-and-pdf\">Rendering and PDF\u003Ca class=\"q-doc-anchor\" href=\"#rendering-and-pdf\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ch3 id=\"the-format--produces-e-invoice-xml-and-cannot-be-rendered-with-a-watermark\">&quot;The format … produces e-invoice XML and cannot be rendered with a watermark&quot;\u003Ca class=\"q-doc-anchor\" href=\"#the-format--produces-e-invoice-xml-and-cannot-be-rendered-with-a-watermark\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>Drafts and previews carry a watermark and must never pass as an e-invoice, so they cannot be rendered in a format with XML. Render drafts with \u003Ccode>-&gt;render('pdf')\u003C\u002Fcode> or \u003Ccode>'html'\u003C\u002Fcode> (\u003Ca href=\"\u002Fdocs\u002Ftemplates#watermark\">Watermark\u003C\u002Fa>).\u003C\u002Fp>\n\u003Ch3 id=\"the-template-does-not-output-mandatory-information\">&quot;The template does not output mandatory information&quot;\u003Ca class=\"q-doc-anchor\" href=\"#the-template-does-not-output-mandatory-information\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>An own template (or a changed partial) does not print a value the invoice must show, e.g. the VAT identifier or the date of supply; the message lists the missing values. Print them, or start from a copy of the default template (\u003Ccode>php artisan make:quittio-template\u003C\u002Fcode>). See \u003Ca href=\"\u002Fdocs\u002Ftemplates#mandatory-field-guard\">Mandatory field guard\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3 id=\"logo-errors\">Logo errors\u003Ca class=\"q-doc-anchor\" href=\"#logo-errors\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>&quot;The logo file … does not exist&quot;: the path in \u003Ccode>pdf.logo\u003C\u002Fcode> is relative or wrong; use an absolute path such as \u003Ccode>storage_path('app\u002Flogo.png')\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>SVG logos in PDF\u002FA documents (ZUGFeRD, XRechnung PDF) need the PHP extension \u003Ccode>imagick\u003C\u002Fcode>; use a PNG otherwise.\u003C\u002Fli>\n\u003Cli>In HTML output a local logo path is not visible in a browser; use a URL or data URI there.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Details: \u003Ca href=\"\u002Fdocs\u002Ftemplates#logos\">Logos\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3 id=\"characters-are-missing-in-the-pdf\">Characters are missing in the PDF\u003Ca class=\"q-doc-anchor\" href=\"#characters-are-missing-in-the-pdf\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>The default font Geist covers Latin and Cyrillic, not Greek. Set \u003Ccode>pdf.font = 'inter'\u003C\u002Fcode> for Greek names or texts, or register a font that has the characters (\u003Ca href=\"\u002Fdocs\u002Ftemplates#fonts\">Fonts\u003C\u002Fa>).\u003C\u002Fp>\n\u003Ch3 id=\"a-long-line-item-starts-on-the-next-page\">A long line item starts on the next page\u003Ca class=\"q-doc-anchor\" href=\"#a-long-line-item-starts-on-the-next-page\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>A table row is never split between two pages. When a line with a very long description does not fit below the invoice details, it moves to the next page as a whole. Shorten the description or move details to a note or an attachment.\u003C\u002Fp>\n\u003Ch3 id=\"invalid-colour-or-invalid-font-name\">&quot;Invalid colour&quot; or &quot;Invalid font name&quot;\u003Ca class=\"q-doc-anchor\" href=\"#invalid-colour-or-invalid-font-name\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>Colours in \u003Ccode>pdf.colors\u003C\u002Fcode> must be hex values (\u003Ccode>#2741d9\u003C\u002Fcode>), fonts plain family names that are registered (\u003Ccode>geist\u003C\u002Fcode>, \u003Ccode>inter\u003C\u002Fcode> or an entry of \u003Ccode>pdf.fonts\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Ch2 id=\"external-validators\">External validators\u003Ca class=\"q-doc-anchor\" href=\"#external-validators\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ch3 id=\"kosit-unavailable-verapdf-unavailable\">KOSIT-UNAVAILABLE, VERAPDF-UNAVAILABLE\u003Ca class=\"q-doc-anchor\" href=\"#kosit-unavailable-verapdf-unavailable\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>The KoSIT validator (official check of XRechnung and EN 16931) or veraPDF (PDF\u002FA check) is enabled in \u003Ccode>validation.levels\u003C\u002Fcode> but could not run, usually because Java, Docker or the validator files are missing. By default (\u003Ccode>fail_on_unavailable = true\u003C\u002Fcode> in \u003Ccode>validation.drivers.kosit\u003C\u002Fcode> and \u003Ccode>validation.drivers.verapdf\u003C\u002Fcode>) this is an error and the rendering stops, so that an invoice is never sent unchecked by mistake. Install the validator as described in \u003Ca href=\"\u002Fdocs\u002Fvalidation#kosit-validator-l5\">Validation\u003C\u002Fa>, remove \u003Ccode>kosit\u003C\u002Fcode> or \u003Ccode>verapdf\u003C\u002Fcode> from \u003Ccode>validation.levels\u003C\u002Fcode>, or set \u003Ccode>fail_on_unavailable\u003C\u002Fcode> to \u003Ccode>false\u003C\u002Fcode> to get a warning instead.\u003C\u002Fp>\n\u003Ch2 id=\"still-stuck\">Still stuck?\u003Ca class=\"q-doc-anchor\" href=\"#still-stuck\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>Look at the invoice the way Quittio sees it: \u003Ccode>Quittio::make($invoice)-&gt;prepare()\u003C\u002Fcode> shows the chosen format, profile and all findings without rendering.\u003C\u002Fli>\n\u003Cli>Render the sample invoices: \u003Ccode>php artisan quittio:preview --scenario=simple\u003C\u002Fcode> shows whether configuration and template work.\u003C\u002Fli>\n\u003Cli>Validate an existing file: \u003Ccode>php artisan quittio:validate invoice.xml\u003C\u002Fcode> (\u003Ca href=\"\u002Fdocs\u002Fcommands\">Artisan commands\u003C\u002Fa>).\u003C\u002Fli>\n\u003Cli>Compare with a complete example on \u003Ca href=\"\u002Fdocs\u002Fexamples\">Examples\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Questions about sending, the German e-invoicing obligation, Java or temporary files: \u003Ca href=\"\u002Fdocs\u002Ffaq\">FAQ\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n",[111,115,118,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167,170,173,176,179],{"id":112,"text":113,"level":114},"reading-an-error-message","Reading an error message",2,{"id":116,"text":117,"level":114},"errors-while-building","Errors while building",{"id":119,"text":120,"level":121},"floats-are-not-accepted","\"Floats are not accepted\"",3,{"id":123,"text":124,"level":121},"missing-vat-information-of-line-1-bg-30","\"Missing VAT information of line 1 (BG-30)\"",{"id":126,"text":127,"level":121},"missing-seller-postal-address-bg-5-and-other-missing-","\"Missing seller postal address (BG-5)\" and other \"Missing …\"",{"id":129,"text":130,"level":114},"validation-errors","Validation errors",{"id":132,"text":133,"level":121},"seller-address-incomplete-de-ustg-01","Seller address incomplete (DE-USTG-01)",{"id":135,"text":136,"level":121},"seller-identifier-missing-br-co-26-br-s-02-de-ustg-02","Seller identifier missing (BR-CO-26, BR-S-02, DE-USTG-02)",{"id":138,"text":139,"level":121},"date-of-supply-missing-de-ustg-03","Date of supply missing (DE-USTG-03)",{"id":141,"text":142,"level":121},"payment-due-date-missing-br-co-25","Payment due date missing (BR-CO-25)",{"id":144,"text":145,"level":121},"xrechnung-needs-more-fields-quittio-profile-required-br-de-","XRechnung needs more fields (QUITTIO-PROFILE-REQUIRED, BR-DE-…)",{"id":147,"text":148,"level":121},"peppol-rejects-the-electronic-address-peppol-en16931-cl008","Peppol rejects the electronic address (PEPPOL-EN16931-CL008)",{"id":150,"text":151,"level":121},"small-business-with-vat-de-ustg-09","Small business with VAT (DE-USTG-09)",{"id":153,"text":154,"level":114},"rendering-and-pdf","Rendering and PDF",{"id":156,"text":157,"level":121},"the-format--produces-e-invoice-xml-and-cannot-be-rendered-with-a-watermark","\"The format … produces e-invoice XML and cannot be rendered with a watermark\"",{"id":159,"text":160,"level":121},"the-template-does-not-output-mandatory-information","\"The template does not output mandatory information\"",{"id":162,"text":163,"level":121},"logo-errors","Logo errors",{"id":165,"text":166,"level":121},"characters-are-missing-in-the-pdf","Characters are missing in the PDF",{"id":168,"text":169,"level":121},"a-long-line-item-starts-on-the-next-page","A long line item starts on the next page",{"id":171,"text":172,"level":121},"invalid-colour-or-invalid-font-name","\"Invalid colour\" or \"Invalid font name\"",{"id":174,"text":175,"level":114},"external-validators","External validators",{"id":177,"text":178,"level":121},"kosit-unavailable-verapdf-unavailable","KOSIT-UNAVAILABLE, VERAPDF-UNAVAILABLE",{"id":180,"text":181,"level":114},"still-stuck","Still stuck?","https:\u002F\u002Fgithub.com\u002FQuittio\u002Fquittio\u002Fedit\u002Fmaster\u002Fdocs\u002Ftroubleshooting.md","\u002Fdocs\u002Ftroubleshooting.md",{"slug":88,"title":89},{"slug":95,"title":96}]