Finli Live

Filename-driven invoice generation

The invoice is generated from the receipt name itself.

Finli Live turns a flat folder of PDFs into location-specific invoice packets by parsing a strict six-part naming schema. The name carries the date, vendor, cost, description, expense category, and location, so the app can sort receipts, split shared purchases, calculate totals, build invoice pages, and merge the final PDFs without a spreadsheet.

010125-target-10.95-pants-uniforms-southroads.pdf
Date Vendor Cost Description Category Location

Public generator

Upload a folder and get invoice PDFs back.

Daily limit

10 generations per IP address every 24 hours.

The public generator keeps a short-lived usage ledger in SQLite and prunes entries older than 24 hours before each request, so rate-limit data stays bounded.

Why the schema matters

Filenames become structured invoice data.

01

Date

Use six digits like 010125. This gives every invoice line a compact receipt date.

02

Vendor and amount

The vendor and exact decimal cost are parsed into line items and category totals.

03

Description and category

These fields explain what was bought and group related spending on the invoice page.

04

Location or split

A location routes the receipt to one packet. The special split location divides the amount across every inferred location.

Generated outputs

The uploaded folder becomes complete invoice packets.

Sorts receipts by locationSeparates uploaded PDFs into inferred location groups and splits shared receipts accurately.
Generates invoice pagesCreates the location-specific invoice cover pages using the supplied invoice name.
Merges final packetsCombines each invoice page with its sorted receipt PDFs into a single downloadable document.
Infers locations automaticallyScans the uploaded receipt names and generates one packet for every concrete location it finds.
Keeps jobs organizedStores each upload in its own job directory so generated location files stay tied to the correct batch.
Reports errors clearlyShows upload, sorting, generation, and merge failures so the receipt set can be corrected.

Receipt folder

Keep the upload intentionally simple.

  • Use one flat folder only; do not include subfolders.
  • Upload PDF receipts only.
  • Name every receipt as date-vendor-cost-description-category-location.pdf.
  • Remove duplicate, unrelated, or unfinished receipt files before generating the packet.

Automatic locations

The folder tells Finli what to build.

  • Use a concrete location like southroads, utica, or downtown in receipt filenames.
  • Use split only for receipts that should be divided across inferred locations.
  • Include at least one non-split receipt so Finli can discover the location set.
  • Every inferred location receives its own generated invoice packet.

Open source

Install the project locally and adapt it to your receipt workflow.

View on GitHub