Ledgerline Invoicing
L
Ledgerline prototype

Bill to

Phone is used for the WhatsApp send

Invoice

Line items

Prices are copied from inventory at the moment you add them
Description
Qty
Unit price
Disc %
Amount

Notes on this invoice

Status

Draft

Issuing takes the next number in this business's own sequence and locks it. Sequences never share across businesses and never skip.

Live preview

The PDF is built here in your browser, which is why it costs nothing to produce.

What this prototype is proving

Every decision below is load-bearing. Click through the app above and you're testing each one.

1One codebase, many businesses

Switch the business in the top bar. Products, branding, template and invoice sequence all change; nothing leaks across. Your own business is just tenant #1 — you sign up through the same door your customers will.

2Column mapping, not a fixed format

Import CSV asks which of their columns is the price. Nobody's spreadsheet will ever match your schema. Re-importing updates by SKU instead of duplicating.

3Snapshot pricing

Adding an item copies its name and price onto the line. Raise a price in Inventory and last month's invoice still shows last month's price — because it has to.

4Money as integers

Everything is held in pesewas/cents and only formatted at the edge. Floats eventually hand you a total that's off by one unit and you never find it.

5Per-business gapless numbering

Issuing takes the next number from that business's own counter. In production this happens inside a database transaction — two people clicking Save at once must not collide.

6Templates are stylesheets

Four looks, one data object. The real renderer feeds the same object to a headless-Chrome HTML→PDF pass, so a new template is a CSS file, not a feature.

7WhatsApp, tier one

The green button opens WhatsApp with a written message and a link to the invoice. Free, no approvals, works today. Attaching the actual PDF needs the Meta Cloud API, an approved template and per-message fees — that's a paid add-on later.

8What's faked here

State lives in your browser, not a database; the PDF is a browser print; the invoice link is a placeholder. Everything else is the real shape of the thing.