Назад към всички

Invoices

// Capture, extract, and organize received invoices with automatic OCR, provider detection, and searchable archive.

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nameInvoices
descriptionCapture, extract, and organize received invoices with automatic OCR, provider detection, and searchable archive.

Trigger

Use when user receives invoices (email, photo, PDF) and wants them organized automatically.

Key difference: This skill MANAGES received invoices. The invoice skill CREATES invoices to send.


Storage

~/invoices/
├── inbox/                    # Unprocessed files awaiting extraction
├── archive/                  # Organized by year/month
│   └── 2026/
│       └── 02/
│           └── 2026-02-13_Hetzner_INV-12345_89.50.pdf
├── providers/                # Provider metadata
│   └── index.json
├── entries.json              # All invoice metadata (searchable)
└── state.json                # Processing state

Quick Reference

TopicFile
Capture and extraction workflowprocess.md
Fields to extractextraction.md
Search queries and reportssearch.md
Legal requirements by countrylegal.md

Process Summary

  1. Capture — Receive invoice (email attachment, photo, direct PDF). Copy to inbox/.
  2. Extract — OCR if needed, parse fields (provider, date, amounts, tax).
  3. Validate — Check required fields, detect duplicates.
  4. Organize — Rename, move to archive/YYYY/MM/, update entries.json.
  5. Confirm — Show extracted data, allow corrections.

See process.md for detailed workflow.


Critical Rules

  • Never delete originals — Keep PDFs permanently. Legal requirement (4-6 years depending on country).
  • Detect duplicates — Same invoice number + provider = duplicate. Alert, don't overwrite.
  • Validate tax math — Base + tax should equal total. Flag discrepancies.
  • Provider normalization — "HETZNER ONLINE GMBH" = "Hetzner". Maintain provider aliases.

Alerts

  • Invoice pending >48h in inbox
  • Payment due in <7 days
  • Unusual amount (>50% higher than same provider average)
  • Missing expected recurring invoice