Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

izvod

Raiffeisen Serbia PDF statement parser.

PDF in. Verified CSV/JSON transactions out.

  • Deterministic. No LLMs.
  • Parse-only. No categories. No accounting guesses.
  • Strict. Balance mismatch exits non-zero and writes nothing.
  • Supports Raiffeisen Serbia current (tekući, RSD) and foreign-currency (devizni) statements.

Install

uv tool install izvod

From a checkout:

uv tool install .

One-shot:

uvx izvod -f statement.pdf

Use

izvod -f PATH [-o csv|json] [--out-dir DIR] [--stdout] [--lenient] [--force]

Examples:

izvod -f 202603_rsd.pdf
izvod -f 202603_eur.pdf -o json --stdout
izvod -f ./statements -o json --out-dir out
izvod -f statement.pdf --force
  • -f, --filename PATH: PDF file, or directory of *.pdf files.
  • default output: CSV next to input PDF
  • output name: YYYYMM_<currency>_<account-suffix>.<csv|json>
  • -o, --output csv|json: output format, default csv
  • --out-dir DIR: write files elsewhere
  • --stdout: print data; single PDF only
  • --force: overwrite existing output
  • --lenient: print rows with verified: false instead of failing hard; implies --stdout; single PDF only

Exit codes:

  • 0: ok
  • 1: parse, layout, or verification failure
  • 2: usage error
  • 3: output collision without --force

Stdout is data only. Diagnostics go to stderr.

Verification

izvod replays the bank running balance with exact decimal arithmetic.

balance[i] == balance[i-1] - payment[i] + deposit[i]
opening + sum(deposit - payment) == closing == last.balance

verified: true means extraction integrity, not merchant/category semantics.

About

Deterministic parser: Raiffeisen Serbia statement PDF -> verified structured transactions.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages