Skip to main content

Tallystick

Deterministic, local-first invoice & e-invoice intelligence. Finance-grade document processing that runs 100% on your machine — no cloud, no API keys, no subscription, no AI hallucinations. Same input, same output, every time.

A tally stick was the original tamper-proof financial record: a notched stick split in two, one half for each party. Verification meant matching the halves. Tallystick does the same for your documents — everything must tally.

What it does

  • E-invoice native — reads Factur-X / ZUGFeRD (XML embedded in PDF), UBL 2.1 and UN/CEFACT CII directly: zero OCR, perfect accuracy. Ready for the 2026–2028 global e-invoicing mandates (FR, DE, MY, ID, …).
  • Template extraction — digital PDF invoices are extracted with deterministic per-vendor templates (invoice2data format). Teach a vendor once in Teach Studio; every later invoice extracts instantly.
  • Finance-grade validation — line math, net+tax=gross reconciliation, duplicate detection, review queue. Nothing silently wrong.
  • Automation — watch folder, batch processing, full CLI, local audit trail.
  • Export — XLSX, CSV, JSON, QBO (QuickBooks) — plus built-in analytics.

Run

python -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
.venv\Scripts\python.exe app.py            # desktop app
.venv\Scripts\python.exe cli.py --help     # headless CLI

CLI

cli.py process <files-or-dir>     # extract + validate + store
cli.py export --format xlsx --out invoices.xlsx
cli.py watch <dir>                # watch-folder daemon
cli.py stats                      # vendor/month totals

Sample data

.venv\Scripts\python.exe sampledata/make_einvoice_samples.py
.venv\Scripts\python.exe sampledata/make_pdf_samples.py
.venv\Scripts\python.exe cli.py process sampledata/out

Architecture

engine/einvoice.py   Factur-X/ZUGFeRD/UBL/CII parsers (lxml + pikepdf)
engine/extract.py    invoice2data template extraction (pdfplumber backend)
engine/teach.py      teach-once template drafting (candidates -> YAML)
engine/validate.py   arithmetic + consistency checks
engine/exports.py    XLSX/CSV/JSON/QBO
store.py             SQLite archive + audit trail
ui/                  PySide6 "Counting House" interface

All processing is offline. The only optional download is an OCR pack for scanned documents (planned; scans are detected and flagged today).

License note

Built on MIT/BSD/Apache dependencies only (pdfplumber, pypdfium2, invoice2data, pikepdf, lxml, pandas). No AGPL components.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tallystick_core-1.0.0-py3-none-any.whl (64.2 kB view details)

Uploaded Python 3

File details

Details for the file tallystick_core-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: tallystick_core-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 64.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for tallystick_core-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 64e4eec57fef6d7ef1d3d9ee84cc6d4570b31bb1868485fba0e3b3a41c39b98e
MD5 781482d72d301e0359526d8ed6861111
BLAKE2b-256 dcf6f2b36264e83df499197a6ac07d85bd0d14dbf66b1cf3521f50a8a29c2637

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page