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.

Metadata

Release files for tallystick-core 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for tallystick-core 1.0.0
File Interpreter ABI Platform
tallystick_core-1.0.0-py3-none-any.whl Python 3 none any Details

Release files / tallystick_core-1.0.0-py3-none-any.whl

Download URL tallystick_core-1.0.0-py3-none-any.whl
Size 64.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
64e4eec57fef6d7ef1d3d9ee84cc6d4570b31bb1868485fba0e3b3a41c39b98e
BLAKE2b-256 checksum
How to use checksums
dcf6f2b36264e83df499197a6ac07d85bd0d14dbf66b1cf3521f50a8a29c2637
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page