Free software for the people behind small businesses

Your work matters. The paperwork should be easier.

Prepare invoices, quotations and orders in a clear desktop form. LuaBill combines carefully typeset LuaLaTeX documents with structured invoice exports; optional formulas help explain technical work.

Open source · No subscription · Documents processed on your computer

Example document
01 · PDF / XRechnung / ZUGFeRD 02 · Windows / Linux / macOS03 · DE / EN / FR / IT / RU
01 / LuaBill

More time for your business

Starting a business takes skill, energy and courage. Formatting an invoice should not become another obstacle.

LuaBill is built for founders, independent professionals and small teams who want dependable business documents without a complicated workflow. Our aim is practical: reduce repetitive paperwork, make important details easier to check and give people more time for the work their customers value.

Our initial focus has been the quality of the finished documents and practical, clearly arranged input forms. LuaLaTeX brings established technical and scientific typesetting to everyday business documents, including mathematical notation when a project needs it.

The project is open source and free to use. You can inspect the code, adapt it to your needs and help improve it. Germany is our first market, with support for German sellers working with customers in Germany, elsewhere in the EU and beyond.

The LuaBill desktop interface. Interface and document languages can be selected separately.

User guide ↗
The LuaBill desktop interface. Interface and document languages can be selected separately.
LuaBill 0.1.30 · English · Example document
02 / LuaBill

One clear workflow, from quotation to invoice

A desktop form for the details, a consistent template for the document and shared calculations for PDF and XML.

Documents with care

LuaLaTeX creates a consistent layout, readable item tables and multilingual text. Review the resulting PDF immediately in your usual viewer.

Ten document types

Create invoices, quotations, delivery notes, order confirmations, proforma invoices, purchase orders, credit notes, cancellation invoices, quotation requests and letters.

Structured electronic invoices

Export EN 16931 CII XML, XRechnung or ZUGFeRD with XML embedded in PDF/A-3. LuaBill checks current reviewed rules and keeps validation reports, rule versions and hashes alongside your files.

Languages and currencies

Choose English, German, French, Italian or Russian separately for the interface and document. Amounts use the language’s number separators. For supported currencies, Remarks always gives the code, full name and symbol, including EUR, USD, RUB and CNY.

VAT scenarios with explanations

Choose the supported German domestic or international B2B scenario. LuaBill prepares VAT explanations and optional statutory links from that choice and the tax groups in the document.

Check a customer VAT ID in VIES

Request a VIES check from the Customer tab. LuaBill records the returned result and date; a current positive check gives the VAT ID a green mark in the interface and PDF, including on an invoice issued before the check.

Calculations you can review

Work with quantities, percentage discounts, mixed VAT rates and received advances. Net amounts, VAT and the amount due use the same calculation engine for the visual and structured output.

Customer details, clearly entered

Use structured addresses, an optional customer number and separate fields for contact name, role, email, phone, mobile, fax and website. Supported contact links are clickable in the PDF.

Useful finishing details

Switch signature and stamp images on or off with checkboxes, add project remarks and use an EPC/SEPA payment QR code for eligible EUR invoices. Signature images are visual marks; they are not cryptographic signatures.

Local projects and remembered settings

Save editable .luabill projects and reusable seller profiles. The application remembers your language, window and output preferences; projects and generated results can live in separate folders.

A workflow you can adapt

Import existing .bill files, including older layouts, use the graphical editor or generate through the Python command line. A ready Windows installer and source-based Linux/macOS installers share the same application code.

Formulas and text emphasis

Remarks supports LaTeX emphasis and formulas, including integrals, sums and fractions. A nonempty Document → Project appears first with a bold, localized label; the same note goes into XML. Blank projects add no automatic note, and matching standard project notes appear once. PDF renders formulas; XML notes keep LaTeX source. Introductory text is PDF-only.

Guided component setup

Choose PDF, XML/XRechnung or ZUGFeRD, review the plan and start preparation. The wizard reuses installed tools, prepares TeX packages and private Noto fonts, and tests a fictional example through the actual generation pipeline before reporting success.

LuaLaTeX · PDF · XML

An engineering invoice, with the equations

See how technical explanations can remain part of a readable business document.

This one-page English example invoices the development and verification of an analogue PID controller and a digital PI controller. The editable project lets you inspect the input fields and reuse the structure for your own work.

  • Analogue PID: integral and derivative terms, with a filtered derivative stage using Tf = 35 ms.
  • Digital PI: a backward-Euler recurrence with a sampling period of Ts = 10 ms.
  • 86 hours; EUR 8,650.00 net; 19% VAT (EUR 1,643.50); EUR 10,293.50 total.
  • EPC/SEPA QR captioned “Pay with Code”, with a 35 mm sample stamp over the signature.
\(\displaystyle u(t)=K_p e(t)+K_i\int_0^t e(\tau)\,d\tau-K_d\frac{dy(t)}{dt}\)

\[u[k]=u[k-1]+K_p(e[k]-e[k-1])+K_i T_s e[k]\]

Download the .bill source ↓

Download all seven examples (ZIP) ↓

The same seven examples are included in the installer: editable .luabill projects, .bill sources and ready-made PDFs. The ZIP also includes the demo signature and stamp images. Extract it before opening a project. SHA-256

Preview of a one-page English engineering invoice with analogue PID and digital PI controller formulas
Demonstration only: the companies, people and banking details are fictional. The example document is in English and uses EUR.
03 / LuaBill

Your first document, step by step

You do not need to write Lua or LaTeX to fill in the form. Start with an example, then replace its fictional details.

  1. Install LuaBill

    Choose the package for your operating system. Windows includes Python and Qt; Linux/macOS need a compatible Python and Internet access to install PySide6 in LuaBill's private environment.

  2. Prepare and test document tools

    Open Help → Prepare document creation, choose a format profile and click Prepare selected components. Wait for package preparation and the test documents. Suitable existing tools are reused; the full TeX distribution is not bundled.

  3. Set the document and parties

    Choose a document type, language, currency, number, dates and VAT scenario. Enter the seller and customer details, including electronic addresses when the selected invoice format needs them.

  4. Add items and review totals

    Enter products or services, quantities, prices and discounts. Add remarks and any actual received advances, then use Check totals to find incomplete or inconsistent data.

  5. Save your project and generate

    Save the editable .luabill project, choose an output folder and create PDF/XML. Successful generation shows the result files and can open the PDF automatically.

  6. Inspect the result and send the right file

    Read the PDF and, for electronic formats, confirm that validation passed. Send XRechnung as XML or ZUGFeRD as its hybrid PDF through the recipient's agreed channel. Keep the issued PDF/XML together with both validation reports and the version audit.

User guide ↗
04 / LuaBill

Download LuaBill 0.1.30

Keep the LuaBill package compact and prepare document tools online. The new setup wizard reuses suitable installed tools and downloads only the components required by your selected formats.

Ready installer · x64

Windows

Download for Windows

v0.1.30 · 84.7 MB · EXE

Windows 10 version 1809 or newer, or Windows 11, x64. Python, PySide6/Qt and Mustang are included.

Details
  1. Run the LuaBill installer for your user account. Python, PySide6/Qt and Mustang are included; you do not need to install Python separately.
  2. Choose whether to add a desktop shortcut and associate .luabill projects. Keep the option to prepare document-generation components selected at the end of Setup.
  3. In the wizard, choose PDF, PDF + XML/XRechnung or ZUGFeRD, review the plan and click Prepare selected components. Missing tools are downloaded separately; Internet access is required.
  4. Wait for the two LuaLaTeX test passes and the selected output's example check. Then open a shipped example, replace its fictional details and save your own .luabill project.

The installer is not yet signed with an Authenticode certificate, so Windows may show an unknown publisher. Verify the download source and published SHA-256.

Source installer · preview

Linux

Download for Linux

v0.1.30 · 58.5 MB · GZ

Desktop Linux with glibc 2.34+ on x86-64 or glibc 2.39+ on ARM64. Requires Python 3.10–3.15, venv and pip; Python 3.12 or 3.13 is recommended. Alpine/musl is unsupported.

Details
  1. Install a compatible Python with venv/pip and the desktop libraries required by Qt. The archive contains application sources, not a bundled Linux Python/Qt executable.
  2. Extract the complete archive and run sh install.sh --setup-components --language en in its folder. The explicit installation downloads PySide6 into a private environment and opens the component wizard.
  3. Choose a format profile and start preparation. Ubuntu/Debian tools are prepared through apt in a separate terminal; an existing native TUG TeX Live uses its own tlmgr. Enter a password in the terminal if requested.
  4. Wait for the sample checks, then start LuaBill from your application menu. The default application folder is $XDG_DATA_HOME/LuaBill when that variable is absolute, otherwise ~/.local/share/LuaBill.

Python and Qt are not bundled. Native installation and graphical launch on Linux have not yet been verified in the current Windows build environment. Treat this package as a preview.

Source installer · preview

macOS

Download for macOS

v0.1.30 · 58.5 MB · ZIP

macOS 14.4 or newer, Intel or Apple Silicon, with a compatible Python 3.10–3.15. Python 3.12 or 3.13 is recommended.

Details
  1. Install a compatible Python 3.10–3.15 for macOS 14.4 or newer. Python 3.12 or 3.13 is recommended; the source installer downloads PySide6 into a private environment.
  2. Extract the complete ZIP and open Install_LuaBill.command. To open the wizard immediately after installation, run sh Install_LuaBill.command --setup-components --language en in Terminal.
  3. Choose a format profile and start preparation. Existing Homebrew can install BasicTeX and the required Java/Ghostscript tools; TeX packages use the same installation's tlmgr in Terminal. Homebrew itself is not installed automatically.
  4. Wait for the test documents, then start ~/Applications/LuaBill.app. Application files live under ~/Library/Application Support/LuaBill. Existing suitable TeX, Java and Ghostscript installations are reused.

Python and Qt are not bundled. The locally created launcher has no Apple Developer ID signature or notarization, and native installation and graphical launch have not yet been verified on macOS here.

A smaller installer, guided document setup →

Windows has a ready application installer. Linux and macOS have preview installers from source. See each platform's requirements and verification status before downloading.

The tools behind your documents

The setup wizard prepares the components needed for your selected formats. Review its plan, then start preparation explicitly; opening the wizard or starting LuaBill does not begin downloads.

LuaLaTeX + texlua

Required for document generation

Use one TeX distribution with lualatex and texlua. On Windows, the wizard can install Basic MiKTeX and prepare the template's 19 direct packages, their dependencies and EN/DE/FR/IT/RU language data. Existing suitable TeX is reused. A LuaHBTeX version banner is normal; keep using lualatex.

Ghostscript

Required for ZUGFeRD; optional for ordinary PDF

Ghostscript prepares PDF/A-3 for ZUGFeRD and can compress ordinary PDFs. The wizard includes it when the ZUGFeRD profile requires it and reuses a suitable installed copy.

Java 17+

Required for XML, XRechnung and ZUGFeRD

A compatible Java 17+ runs the included Mustang validator and packager. New Windows preparation offers Temurin JRE 21; the macOS Homebrew route uses Temurin 21 JDK. Ordinary PDF generation does not need Java.

Python + PySide6/Qt

Included on Windows; set up separately on Linux/macOS

Python runs the application and PySide6/Qt supplies the windows and menus. Linux/macOS installers create an isolated environment; they require an existing compatible Python and download PySide6 during setup.

Private Noto document fonts

Prepared for all five document languages

The wizard downloads a verified set of Noto Sans and Noto Sans Mono into LuaBill's own user-data folder, with its upstream license. The fonts are loaded from those files and are not registered in the operating system. Existing system-font fallbacks remain available.

The installer does not contain a full TeX system. First preparation may download TeX tools, packages, fonts and the optional Java/Ghostscript components. The wizard tests all five languages and a fictional document through the selected generation profile; the read-only component report alone only confirms partial availability.

A smaller installer, guided document setup

LuaBill 0.1.27 adds a multilingual setup wizard. Prepare the tools once, then create documents locally without downloading a complete LaTeX distribution inside the LuaBill installer.

  1. Choose the formats you need

    Open Help → Prepare document creation, or keep the preparation option selected at the end of Windows Setup. Choose PDF, XML/XRechnung or ZUGFeRD.

  2. Review the existing tools

    The wizard identifies suitable TeX, Java and Ghostscript installations and shows the preparation plan. Click Prepare selected components to start downloads and installation.

  3. Prepare packages and fonts

    Windows can start with Basic MiKTeX. The wizard prepares LuaBill's 19 direct LaTeX packages, their dependencies and five document languages, plus private Noto Sans and Noto Sans Mono files. Java and Ghostscript follow the chosen profile.

  4. Create a checked example

    The wizard compiles the standalone LaTeX check twice and runs a fictional invoice through the selected generation path. At completion, open the test PDF; if a step fails, open the log folder or copy the diagnostic details.

A smaller installer, guided document setup
LuaBill 0.1.30 · Example document

PDF

LuaLaTeX, texlua, the template's packages and suitable fonts. Java and Ghostscript are not required for ordinary PDF generation.

PDF + XML / XRechnung

The PDF components plus Java 17+ for Mustang XML validation. New Windows preparation offers the smaller Temurin JRE 21.

ZUGFeRD

The PDF/XML components plus Ghostscript to prepare PDF/A-3 and package the embedded XML; the resulting container is validated.

The application package remains compact; missing tools still require separate Internet downloads. All three generation profiles passed checks on Windows with installed tools. Full dependency installation on a clean Windows computer and native Linux/macOS setup still need separate verification.

Download the standalone LaTeX check ↓

The separate test works without LuaBill: select LuaLaTeX and compile twice. It checks all 19 direct packages, five languages, formulas, icons, tables and fonts. MiKTeX can fetch missing TeX packages when on-the-fly installation is enabled; system fonts need a separate installation outside the wizard. SHA-256 checksums

Update, check components and uninstall

Install the current release over your existing LuaBill and check the active invoice rules from Help. Seven editable examples with ready-made PDFs are included in the application and available as a complete ZIP.

01

Install the new version in place

Close LuaBill, then run the new installer over the existing installation. Removing the previous version first is unnecessary.

  • On Windows, keep the previous installation folder suggested by Setup.
  • On Linux/macOS, reuse the same --prefix for a custom folder.
  • Projects, results and preferences in personal folders remain in place.
Linuxsh install.sh
macOSsh Install_LuaBill.command

Save manual program-file edits separately. Linux/macOS stops on a conflicting file. Review rule versions under Help → E-invoice standards and updates after upgrading; installing an older release over a newer one is not recommended.

02

Prepare components and check a sample

Open Help → Prepare document creation to choose a profile, review installed tools and prepare missing components.

  • The Windows package includes Python/Qt. Linux/macOS use an existing Python and install Qt privately.
  • PDF needs TeX and fonts; XML/XRechnung additionally needs Java 17+; ZUGFeRD also needs Ghostscript.
  • Preparation runs the standalone five-language LaTeX check twice and then the real generation and validation path for the chosen profile.

Starting the wizard only scans. Click Prepare selected components to begin downloads and installation, or verify the current setup. Logs and test PDFs can be opened from the wizard.

03

Remove the program files

A new archive's uninstaller can remove an older installation without reinstalling LuaBill.

  • Close LuaBill and use the original --prefix for a custom installation.
  • Documents, preferences and modified or untracked files are preserved.
  • Review the final warnings and list of remaining files.
Linuxsh uninstall.sh
macOSsh Uninstall_LuaBill.command

The small separate archive also removes existing installations. System TeX, Java, Ghostscript and downloaded package folders are retained.

Separate Linux/macOS uninstaller ↓ ZIP · 23 KB

SHA-256 checksums

User guide ↗

05 / LuaBill

A readable document. Structured data when you need it.

A PDF filename does not tell you whether it contains an electronic invoice. Choose the format the recipient accepts and check what LuaBill generated.

PDF

.pdf

A visual business document for reading, printing and review. An ordinary PDF does not contain a structured invoice dataset.

Send where an ordinary PDF is the appropriate agreed format.

EN 16931 CII XML

.xml + PDF view

A structured CII invoice with a separate visual PDF and a validation report.

The XML is the structured invoice. Send it through the agreed channel; the PDF can accompany it as a view.

XRechnung

XRechnung 3 CII .xml

Structured XML with the references and electronic endpoints required by the chosen profile. A separate PDF view helps you review the content.

Submit the XML to the recipient's address or portal, using the routing reference they supplied.

ZUGFeRD

PDF/A-3 with embedded XML

A hybrid PDF combines the readable document and its EN 16931 XML attachment. LuaBill also saves an identical separate XML file.

Normally send the hybrid PDF. Follow the recipient's requirements if they also request the separate XML.

What LuaBill checks

  • The shared calculation engine checks amounts and required input. Every electronic output runs the reviewed EN 16931 CII rules; Mustang also checks the XML schema and selected profile with the active rule package before the result is published.
  • ZUGFeRD additionally passes PDF/A and container checks; the extracted XML attachment is compared byte for byte with the separate XML file. Keep .validation.xml, .validation-rules.xml and .validation-info.json with the issued PDF/XML.
  • Technical validation does not verify tax registrations, the facts of a transaction or invoice-number uniqueness. Review the document's business content and the recipient's submission requirements.
05.1 / LuaBill

Know which rules checked your invoice

LuaBill 0.1.30 includes a reviewed package of current CII rules. Read the active versions in the application and retain the validation evidence with your issued documents.

Rule package included in LuaBill 0.1.30, verified on 28 October 2026.

The rule package in this release

EN 16931 CII rules
1.3.17The official CEN rules run as a separate required check for every XML, XRechnung and ZUGFeRD output.
XRechnung / Schematron
3.0.2 / 2.6.0The format and its checking rules have different version numbers. The current CII rules are selected through LuaBill’s verified package.
ZUGFeRD / Factur-X
2.5.2 / 1.09.2The EN 16931 profile combines a readable PDF/A-3 with structured XML; PDF/A and container validation remain part of generation.
Mustang CLI / veraPDF
2.26.0 / 1.30.2The original Mustang JAR is unchanged. The reviewed rule package takes precedence where applicable; its versions and the original bundled versions are shown separately.
LuaBill standards dialog showing active rule versions separately from the original Mustang JAR resources
Actual desktop dialog: active rules, last document validation and update-check results are available separately.

Keep the invoice and its validation evidence

Open Help → E-invoice standards and updates, or use Validation versions beside a generated result. The generation log and saved audit show rule and validator versions, SHA-256 hashes, the XML profile and the results of the checking stages.

*.pdf
The visual document; for ZUGFeRD, the hybrid invoice with XML embedded.
*.xml
The structured invoice; for ZUGFeRD, identical to the embedded XML.
*.validation.xml
The original Mustang validation report for XML and, where applicable, PDF/A and the container.
*.validation-rules.xml
The SVRL report from the additional current EN 16931 CII rules check.
*.validation-info.json
The version audit: active and original rules, hashes, profile and stage results.
06 / LuaBill

Before you start

Is LuaBill free for business use?

Yes. LuaBill's own code and documentation are available under Apache License 2.0, including for commercial use under its terms. There is no LuaBill subscription. Third-party components keep their original licenses.

Do I need to know Lua or LaTeX?

No. The graphical form handles ordinary editing. LuaLaTeX must be installed, but you do not need to write LaTeX commands to fill in the structured fields. Developers can adapt the source and templates.

Do I have to install a complete TeX distribution?

No. On Windows, the setup wizard can install Basic MiKTeX and the packages required by LuaBill. It keeps the application download compact, but preparing missing document tools still requires Internet access and additional downloads. Linux distribution packages may group more fonts and packages together; the macOS Homebrew route uses BasicTeX plus the required additions. Existing suitable TeX installations are reused.

Can I include LaTeX formulas in a business document?

Yes. Remarks supports a restricted set of LaTeX commands for text emphasis and formulas, including integrals, sums and fractions. Enclose mathematics in \( ... \) or \[ ... \]; ordinary text needs no markup. PDF renders the formulas. In XML-exported notes, the LaTeX source remains plain text and is not automatically rendered by the recipient. Introductory text is PDF-only. Arbitrary packages and macros are not supported.

Are my customer and invoice details uploaded?

LuaBill generates documents locally and does not upload invoices to a generation service. Clicking Check in VIES sends the customer VAT ID to the European Commission’s VIES service. Component preparation downloads software, packages and fonts. A requested or enabled weekly update check reads public release metadata without sending invoice, customer or XML data. You control how the finished invoice is sent.

How does the VIES check and green VAT mark work?

Enter the complete EU VAT ID with its country prefix (XI for Northern Ireland, EL for Greece), then click Check in VIES in Customer. A completed reply records the result and date; save the .luabill project to retain them. A negative reply removes the green mark. Service or connection errors leave the previous record unchanged. The chosen validity period is counted in calendar days relative to today, and to the generation day for PDF; the invoice date does not affect it. VIES does not check the customer’s name or address here or establish the tax treatment of the transaction.

Can I invoice customers outside Germany?

The current version supports sellers based in Germany and customers in Germany, other EU countries or outside the EU. Select the actual transaction scenario and delivery country; a foreign customer alone does not establish a VAT exemption.

Can I use USD, RUB or CNY?

Yes. Choose a currency code independently of the customer's country. LuaBill does not perform exchange-rate conversion. The payment QR code is for eligible EUR/SEPA invoices; electronic monetary totals support at most two decimal places.

Does a ZUGFeRD PDF need a separate XML attachment in my email?

The hybrid PDF already contains the XML. Normally that PDF is sent as the invoice; the recipient may have additional requirements. XRechnung, by contrast, is submitted as its XML file, not just the PDF view.

Where are my projects and results stored?

The initial suggestions are Documents/LuaBill/Projects and Documents/LuaBill/Output. You can choose other folders. The output location is a preference for your user account on that computer; it is not stored as a fixed path in every project.

Are all three operating systems equally tested?

A Windows installer is available with Python and Qt included. Linux and macOS packages install from source and are currently previews: their native installation and graphical launch still need verification on those operating systems.

Is this a complete accounting or tax system?

LuaBill focuses on preparing business documents. It does not replace bookkeeping, tax advice, a legally assessed archive or the controls for your invoice-number sequence. Quotations and orders remain PDF business documents, not electronic invoices.

How do I check a failed generation?

Read the first compiler error in the Generation log or the invoice validation report. Use Help → Prepare document creation to verify the tools and create a sample; the wizard can open its log folder and copy diagnostic details. The standalone LaTeX test below also helps identify a missing package or font.

Should I uninstall LuaBill before updating?

No. Close LuaBill and run the new installer into the same folder. On Linux/macOS, reuse your custom --prefix. Personal projects, results and preferences remain in place. Save manual program-file edits separately; the Unix installer stops on a conflicting file.

Why does LuaLaTeX report LuaHBTeX?

A “This is LuaHBTeX” version banner is normal: LuaLaTeX uses that engine in TeX Live. The command should remain lualatex, and texlua also needs its own launch name. LuaBill 0.1.14 and newer preserve these aliases correctly. Use the current package rather than replacing lualatex with a direct luahbtex command.

Where can I see which rules checked my invoice?

Open Help → E-invoice standards and updates, or click Validation versions beside the generated result. The audit separates the active rules from older resources inside the original Mustang JAR. Keep the .validation-info.json file and both XML validation reports with the issued document; they identify the checked profile, rule versions, hashes and stage results.

Does LuaBill check for changes to invoice rules automatically?

Use Check for updates in the standards dialog, or enable the optional weekly check when LuaBill starts. It is off by default. The check compares public technical releases and sends no invoice data; it does not install rules. A new release prompts review of a LuaBill update, not an automatic conclusion about legal deadlines or your recipient’s requirements.

Why are some files left after uninstall?

LuaBill deliberately preserves documents, preferences and modified or untracked files. Separately installed system tools and the downloaded package folder also remain. Read the uninstaller's warnings and remaining-file paths. The current archive's uninstaller can remove an earlier installation without reinstalling it.

07 / LuaBill

Help make everyday paperwork easier

LuaBill is an open project. Practical feedback from people who issue real business documents is as valuable as a code contribution.

Try a realistic workflow

Test a quotation, invoice or order with fictional data. Describe what you expected, what happened and which version and operating system you used.

Improve language and guidance

Help refine translations, examples and explanations. Clear words make unfamiliar fields easier for the next person.

Check a platform or format

Help verify Linux/macOS setup, fonts, printer output and invoice exchange with recipient systems. Share reproducible findings without customer or banking secrets.

Adapt and share the code

Download the source, read LICENSE and NOTICE, and explore the templates and tests. Improvements to accessibility, validation and document layout are welcome.

Have a concrete suggestion or want to help? Contact the authors using the links on this page. No account is needed to use the application.

Open source · Apache License 2.0

Made by people who care about useful tools

Vsevolod Shashkov
Mikhail Shashkov

LuaBill grew from our day-to-day business needs and is used at DIETZ automation GmbH. We are building it to give other small businesses a clear, adaptable way to produce professional documents and to make the work around them less burdensome.

DIETZ automation GmbH ↗

Copyright 2026 Vsevolod Shashkov & Mikhail Shashkov. LuaBill's own code and documentation: Apache License 2.0. Third-party software and assets retain their respective licenses and acknowledgements.