# description
Portable, local-first invoice document used by the localfiles.eu Invoice Generator (https://localfiles.eu/invoices/). This is the exact JSON stored per invoice in the browser's IndexedDB 'localfiles' database. Agents and MCP servers produce or consume documents conforming to this schema. Empty string means the field is omitted from the rendered invoice; numeric values are represented as strings.

# properties.label.description
Heading shown at the top of the invoice.

# properties.date.description
Invoice date, ISO 8601 (YYYY-MM-DD). Empty string allowed.

# properties.due.description
Due date, ISO 8601 (YYYY-MM-DD). Empty string allowed.

# properties.from.description
Sender / billing-from party block. Use \n for line breaks.

# properties.billto.description
Bill-to party block. Use \n for line breaks.

# properties.shipto.description
Ship-to party block. Use \n for line breaks.

# properties.rows.items.properties.q.description
Quantity, as a numeric string. Empty string treated as 0.

# properties.rows.items.properties.r.description
Unit rate, as a numeric string. Empty string treated as 0.

# properties.disc.description
Discount percentage, as a numeric string. Empty string treated as 0.

# properties.tax.description
Tax percentage, as a numeric string. Empty string treated as 0.

# properties.ship.description
Shipping amount, as a numeric string. Empty string treated as 0.

# properties.paid.description
Amount already paid, as a numeric string. Empty string treated as 0.

# properties.terms2.description
Free-text terms & conditions footer block.