Invoice

An invoice format for Quarto.

What the invoice format gives you, how to start from it, and the front matter that fills an invoice in.

An invoice is arithmetic and layout: line items, a VAT rate per line, a subtotal, a total, and a page that has to look like a document rather than a spreadsheet.

invoice takes the line items as front matter and does the rest. The totals table is computed from the quantities, unit prices, and VAT rates, and the page is laid out through Typst.

See one rendered by this site.

Starting an invoice

quarto use template mcanouil/quarto-invoice@2.0.2

Adding it to a document you already have

quarto add mcanouil/quarto-invoice@2.0.2

This will install the extension under the _extensions subdirectory. If you are using version control, you will want to check in this directory.

Quick start

format:
  invoice-typst:
    sender:
      name: "Example Consulting Ltd"
    recipient:
      name: "Director Doe & Co"
    invoice:
      number: "INV-2026-001"
      issued: 2026-05-01
      due: 2026-05-31
      currency: GBP
      reference: "ACME-2026-001"
      items:
        - description: Strategy workshop
          quantity: 2
          unit-price: 1500
          vat: 20
    bank:
      bic: "EXAMPGB2L"
      iban: "GB00 EXAM 0000 0000 0000 00"
quarto render invoice.qmd --to invoice-typst

sender, recipient, invoice, and bank are required; the rest is filled in when it is given.

See the Reference for every option, and the Examples for a branded invoice and a hand-written table.

Where it works

PDF, through Typst.

Typst ships with Quarto, so nothing else has to be installed.

Back to top