[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs:compatibility":3},{"versions":4,"version":26,"nav":28,"path":98,"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":99,"description":108,"html":109,"headings":110,"editUrl":127,"markdownUrl":128,"prev":129,"next":130},"Quittio follows Semantic Versioning. This page says what that promise covers, so you know what can change under you in an update and what cannot.","\u003Ch1 id=\"versioning-and-compatibility\">Versioning and compatibility\u003C\u002Fh1>\n\u003Cp>Quittio follows \u003Ca href=\"https:\u002F\u002Fsemver.org\">Semantic Versioning\u003C\u002Fa>. This page says what that promise covers, so you know what can change under you in an update and what cannot.\u003C\u002Fp>\n\u003Ch2 id=\"before-10\">Before 1.0\u003Ca class=\"q-doc-anchor\" href=\"#before-10\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>The current releases are 0.x. Until 1.0:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Patch releases\u003C\u002Fstrong> (0.1.0 → 0.1.1) fix bugs and security issues. They do not remove or rename anything you use. A fix can still change behaviour that was wrong, e.g. reject data that produced invalid XML before.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Minor releases\u003C\u002Fstrong> (0.1 → 0.2) may break the public API. Every break is listed in the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FQuittio\u002Fquittio\u002Fblob\u002Fmaster\u002FCHANGELOG.md\">changelog\u003C\u002Fa> under &quot;Changed&quot; or &quot;Removed&quot;, with what to do.\u003C\u002Fli>\n\u003Cli>Where possible, an old name keeps working as a deprecated alias first (see \u003Ca href=\"#deprecations\">Deprecations\u003C\u002Fa>).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>From 1.0 on, only major releases break the public API.\u003C\u002Fp>\n\u003Ch2 id=\"what-the-promise-covers\">What the promise covers\u003Ca class=\"q-doc-anchor\" href=\"#what-the-promise-covers\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>The public API is everything below that is not marked \u003Ccode>@internal\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Ctable class=\"q-doc-table q-stack-table\">\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Area\u003C\u002Fth>\n\u003Cth>Covered\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>PHP classes\u003C\u002Ftd>\n\u003Ctd data-label=\"Covered\">Public classes, methods, properties and constants in \u003Ccode>Quittio\\Core\u003C\u002Fcode>, \u003Ccode>Quittio\\Laravel\u003C\u002Fcode> and \u003Ccode>Quittio\\Country\\DE\u003C\u002Fcode>: builders, data objects, \u003Ccode>Quittio\\Core\\Quittio\u003C\u002Fcode>, the facade and \u003Ccode>QuittioManager\u003C\u002Fcode>, results, events, exceptions\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Contracts\u003C\u002Ftd>\n\u003Ctd data-label=\"Covered\">Interfaces you implement, such as \u003Ccode>CountryPack\u003C\u002Fcode>, \u003Ccode>ValidationDriver\u003C\u002Fcode>, \u003Ccode>Rule\u003C\u002Fcode>, \u003Ccode>PdfRenderer\u003C\u002Fcode>, \u003Ccode>TemplateEngine\u003C\u002Fcode>, \u003Ccode>XmlSerializer\u003C\u002Fcode>, \u003Ccode>FormatReader\u003C\u002Fcode>, \u003Ccode>FormatResolver\u003C\u002Fcode>, \u003Ccode>SnapshotUpcaster\u003C\u002Fcode>, \u003Ccode>PaymentQrGenerator\u003C\u002Fcode>, \u003Ccode>VatIdVerifier\u003C\u002Fcode>, \u003Ccode>InvoiceDefaults\u003C\u002Fcode>. A method is added to an interface only in a major release; base classes such as \u003Ccode>AbstractCountryPack\u003C\u002Fcode> and \u003Ccode>AbstractProfile\u003C\u002Fcode> get new methods with a default implementation. New abilities of packs and profiles come as optional capability interfaces (\u003Ccode>Countries\\Capabilities\\*\u003C\u002Fcode>, \u003Ccode>Profiles\\Capabilities\\*\u003C\u002Fcode>), which are covered like the other contracts.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Configuration\u003C\u002Ftd>\n\u003Ctd data-label=\"Covered\">The keys of \u003Ccode>config\u002Fquittio.php\u003C\u002Fcode> and of the country packs (\u003Ccode>quittio.countries.de\u003C\u002Fcode>, \u003Ccode>config\u002Fquittio\u002Fcountries\u002Fde.php\u003C\u002Fcode>), their meaning and defaults, and the environment variables. A renamed key or variable keeps working under its old name until the next major release.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Rule codes\u003C\u002Ftd>\n\u003Ctd data-label=\"Covered\">Codes of findings, both official (\u003Ccode>BR-CO-10\u003C\u002Fcode>, \u003Ccode>BR-DE-1\u003C\u002Fcode>, \u003Ccode>PEPPOL-EN16931-R001\u003C\u002Fcode>) and Quittio's (\u003Ccode>QUITTIO-…\u003C\u002Fcode>). A code keeps its meaning; its message text is not covered. Rule overrides (\u003Ccode>validation.rules\u003C\u002Fcode>, \u003Ccode>Quittio::extend('rule', …)\u003C\u002Fcode>) address rules by these codes.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Events\u003C\u002Ftd>\n\u003Ctd data-label=\"Covered\">Class names and payload properties of the events in \u003Ccode>Quittio\\Laravel\\Events\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>View model\u003C\u002Ftd>\n\u003Ctd data-label=\"Covered\">The keys templates read (\u003Ccode>$invoice-&gt;seller-&gt;name\u003C\u002Fcode>, also in array syntax) and their types, described by the node classes in \u003Ccode>Quittio\\Core\\View\\Model\u003C\u002Fcode> (\u003Ca href=\"\u002Fdocs\u002Ftemplates#typed-nodes\">Typed nodes\u003C\u002Fa>). New keys may be added.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Stored data\u003C\u002Ftd>\n\u003Ctd data-label=\"Covered\">The snapshot formats of \u003Ccode>InvoiceData::toSnapshot()\u003C\u002Fcode> and \u003Ccode>DocumentData::toSnapshot()\u003C\u002Fcode> and the array format of \u003Ccode>RenderOptions::toArray()\u003C\u002Fcode>. A new version comes with an upcaster or a reader for the old one, so stored invoices and queued jobs stay readable.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Commands\u003C\u002Ftd>\n\u003Ctd data-label=\"Covered\">Names, arguments, options and exit codes of the Artisan commands\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Output\u003C\u002Ftd>\n\u003Ctd data-label=\"Covered\">XML that conforms to the profile. The XML of the same data changes only when a standard or a profile changes, or to fix a conformance error.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch2 id=\"what-it-does-not-cover\">What it does not cover\u003Ca class=\"q-doc-anchor\" href=\"#what-it-does-not-cover\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>Classes and methods marked \u003Ccode>@internal\u003C\u002Fcode>, e.g. \u003Ccode>XPathReader\u003C\u002Fcode>, \u003Ccode>XmlBuilder\u003C\u002Fcode>, the PDF parser in \u003Ccode>Pdf\\Parsing\u003C\u002Fcode>, \u003Ccode>ConfigMapper\u003C\u002Fcode>, \u003Ccode>CountryPackDiscovery\u003C\u002Fcode>, the section factories of the view model in \u003Ccode>View\\Internal\u003C\u002Fcode>, the preview controller and the command classes. Use the public contract instead: implement \u003Ccode>FormatReader\u003C\u002Fcode> instead of extending \u003Ccode>XPathReader\u003C\u002Fcode>, call the commands instead of their classes.\u003C\u002Fli>\n\u003Cli>Private and protected members of final classes.\u003C\u002Fli>\n\u003Cli>The markup and CSS of the shipped templates. Templates you published (\u003Ccode>--tag=quittio-views\u003C\u002Fcode>) are yours; a release lists template changes so you can merge them.\u003C\u002Fli>\n\u003Cli>The bytes of rendered PDFs, the wording of messages and labels, and the exact layout.\u003C\u002Fli>\n\u003Cli>New findings: a minor release may add rules. A new rule reports a warning unless a standard makes it an error; such errors are listed in the changelog.\u003C\u002Fli>\n\u003Cli>Data that follows its publisher: code lists, base rates, KoSIT configurations and Peppol rules are updated when they change upstream.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"deprecations\">Deprecations\u003Ca class=\"q-doc-anchor\" href=\"#deprecations\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>A deprecated method, class, configuration key or environment variable\u003C\u002Fp>\n\u003Cul>\n\u003Cli>is marked \u003Ccode>@deprecated\u003C\u002Fcode> with its replacement, so your IDE and static analysis show it,\u003C\u002Fli>\n\u003Cli>is listed under &quot;Deprecated&quot; in the changelog,\u003C\u002Fli>\n\u003Cli>keeps working until the next major release; deprecations of 0.x releases are removed in 1.0 at the earliest.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"supported-versions\">Supported versions\u003Ca class=\"q-doc-anchor\" href=\"#supported-versions\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ctable class=\"q-doc-table q-stack-table\">\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Dependency\u003C\u002Fth>\n\u003Cth>Supported\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>PHP\u003C\u002Ftd>\n\u003Ctd data-label=\"Supported\">8.3 and newer\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Laravel\u003C\u002Ftd>\n\u003Ctd data-label=\"Supported\">the current major release (13). A new Laravel major is supported in the next Quittio minor release, which then drops the previous one.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>Security fixes are released for the latest minor release.\u003C\u002Fp>\n",[111,115,118,121,124],{"id":112,"text":113,"level":114},"before-10","Before 1.0",2,{"id":116,"text":117,"level":114},"what-the-promise-covers","What the promise covers",{"id":119,"text":120,"level":114},"what-it-does-not-cover","What it does not cover",{"id":122,"text":123,"level":114},"deprecations","Deprecations",{"id":125,"text":126,"level":114},"supported-versions","Supported versions","https:\u002F\u002Fgithub.com\u002FQuittio\u002Fquittio\u002Fedit\u002Fmaster\u002Fdocs\u002Fcompatibility.md","\u002Fdocs\u002Fcompatibility.md",{"slug":95,"title":96},{"slug":101,"title":102}]