Ledgira
Bank and card statements read line by line on your own AI key, then checked against the balance.
For bookkeepers and owners who retype bank statements. Often replaces Docparser, DocuClipper or MoneyThumb.
Single license $59 · Extended license $129 · paid once, yours for good
What it does
Opening balance plus every line is checked against the closing balance. When it's off, you see the exact difference.
Any row where the running balance doesn't progress correctly is flagged.
Your own OpenAI, Anthropic or Ollama model reads each line's date, description, amount, balance and direction. With Ollama, statements never leave your server.
Upload up to 24 statements in one go and read them in batches of five.
Hundreds of transactions are read over several model replies, and the balance check watches every join. Each extra reply is a call at your own provider's cost.
Import it as it comes, with one amount column or separate money in and out. A dry run shows which rows go in, and why any will not.
CSV with QuickBooks and Xero presets, QBO, OFX, QIF, JSON or Excel. The same month imported twice adds nothing in QBO and OFX.
Correct a payee once and the rule applies to future statements. Your own model can suggest categories too. Your choices always win.
Check a supplier's statement against your ledger. See which invoices agree, which amounts differ and what is missing.
Duplicate lines are flagged across statements, where a re-uploaded month collides.
US and EU formats, currency symbols, bracketed negatives and mixed dates are read the same way each time.
Connect your own agent (MCP + API) to the same ledger, under the same roles as people.
Also: receipts on statement lines, wrapped descriptions kept whole, home-screen install, 2FA and backups.
What Ledgira deliberately doesn’t do.
- No bank feed / Open Banking: Ledgira reads statement files you already have.
- No direct accounting-software integration: you download CSV (with QuickBooks and Xero presets), QBO, OFX, QIF or JSON and import it yourself.
- Not the book of record; it reconciles and hands off.
- No OCR of our own: bring your own model; every figure is human-approved.
- With OpenAI or Anthropic, each statement is sent to that provider under your own key; with a local Ollama model, statements never leave your server.
- Single-tenant: one business per installation.
What renting costs instead
2 months of Docparser costs what Ledgira costs once.
Read Sep 26, 2026 · source3 months of DocuClipper costs what Ledgira costs once.
Read Sep 7, 2026 · source3 months of MoneyThumb (Online converters) costs what Ledgira costs once.
Read Sep 26, 2026 · sourceThe full comparison: every rival, what each does better, and who should stay with them →
Replacing one of these? Docparser alternative · DocuClipper alternative · MoneyThumb (Online converters) alternative
Release history
For Ledgira, 4.1 makes two changes that every app gets. What’s new in 4.1 →
For Ledgira, 4.0 means updates from inside the app: the Updates page checks for a new release with your license key, verifies Ownware's signature, takes a backup and… What’s new in 4.0 →
3.3 takes statements as they come. What’s new in 3.3 →
3.2 is built for the catch-up.
The 3.1 wave gave the catalog a way to reach the other side of the transaction: counterparty email through your own SMTP server, calendar feeds your own calendar…
Categorization learns from you: correct a payee once and the rule applies to future statements — but a rule never overwrites a category a person typed, and the longest…
The owner layer every Ownware app carries.
What’s in the zip
The tree as the zip ships it — the working leftovers the packager deletes are not listed
- .htaccess
- API.md
- Dockerfile
- LICENSE.txt
- QUICKSTART.txt
- README.md
- assets/
- bin/
- config.sample.php
- controllers/
- deploy/
- index.php
- install/
- manifest.json
- offline.html
- router.php
- src/
- sw.js
- tests/
- views/
src/Llm.php: a real module, the first 24 of 516 lines
Chosen as the largest module in src/ that is not one of the shared cores — this product's own logic, not a file every product carries.
<?php
/**
* Llm.php — BYO-key vision client for Ledgira.
*
* Sends a bank or credit-card statement image (or PDF) to the buyer's own LLM API and
* returns the raw JSON the model produced. That JSON is then passed to Statement::normalize()
* for clean canonicalization — Llm.php does no money/date/sign parsing itself.
*
* Key-safety rules (never relax these):
* - The API key is read from the $settings array passed by the caller.
* - It is NEVER logged, echoed, stored in a file, or added to any error message.
* - It is transmitted only in the Authorization/x-api-key header of the outbound
* request to the provider the buyer configured.
*
* Supported providers:
* openai — POST {base_url|https://api.openai.com}/v1/chat/completions
* default model gpt-4o-mini; image as data-URL; response_format json_object
* anthropic — POST {base_url|https://api.anthropic.com}/v1/messages
* default model claude-haiku-4-5-20251001; image block base64;
* PDFs via document block (best-effort)
* ollama — POST {base_url|http://localhost:11434}/api/chat
* default model llama3.2-vision; images array; no auth required
*
* PDF note: images are first-class across all providers. Anthropic supports PDFs nativelyRuns on: Two-minute web installer, PHP 8.1+ with MySQL or SQLite; demo mode ships pre-baked sample statement images. Tested on PHP 8.3. Or run it in Docker: the Dockerfile is in the zip.
Technical owners can install it with one line and their license key: curl -fsSL https://ownware.io/install.sh | sh -s -- ledgira <your license key>
Nothing is obfuscated or encoded; what you read is what runs. Manual · API · the test run
Which license do I need?
It comes down to how many installations you need. Running your own business on one site is the Single license. A second domain of your own, or sites you build or run for other people, is the Extended license.
- Install it on one domain or subdomain you own or operate
- Change the source however you like for that installation
- Run your own business on it commercially, client work included
- Re-download the current build any time from your buyer portal
- A second site, or an installation you hand to a client as theirs, needs the Extended license
- No reselling, redistributing or sublicensing the source
- Not for offering it to other people as a hosted service
- Everything the Single license grants
- Install it on as many domains as you own or operate — no cap on the number
- Up to ten client installations, one per client project, handed over or hosted for each client; for more, buy another Extended license
- White-label: remove or replace the product name and logo in the screens of client installations
- Still no reselling or redistributing the source itself
- Running it as a multi-tenant service others sign up for needs a SaaS agreement
Every download carries the full terms as LICENSE.txt. The complete wording is on the terms page.
After you buy
The app’s Updates page installs a new release with your license key, with the release’s signature checked and a backup taken first. Your download link always serves the current build. Download again any time from your order page or the buyer portal; there is no renewal fee.
Email support for installation and for defects in the code as delivered: a person reads and answers every message. It does not cover custom development or server administration. What support covers
Refunds are handled by Lemon Squeezy as merchant of record, case by case. EU consumers keep the statutory 14-day right until delivery starts. Refund terms
It keeps running: your server, the full PHP source, no license check that can fail. If no stable release is published for 365 days, the domain limit lifts; after three such years your copy becomes MIT-licensed. The terms have the exact wording: continuity.
Questions
Is my API key safe?
Will this run on shared hosting?
How does it handle credit cards vs. bank accounts?
What about PDFs?
What if OpenAI changes its pricing or API?
Can it export straight into my accounting software?
Is Ledgira a subscription?
Bank-feed services charge monthly per connection. What is different?
What exactly do I get for the money?
Can I get the reconciled lines out?
Covered in these guides
More about Ledgira
Upload bank or card statements and let your own AI key extract every line and auto-reconcile the balance.
The problem it solves
Every bookkeeper and small-business owner knows the grind: a PDF or photo of a bank or credit-card statement lands in your inbox, and someone has to retype every line, date, description, amount, debit or credit, into a spreadsheet or accounting tool. Then you cross your fingers that the opening balance plus everything you typed actually equals the closing balance. Black-box SaaS statement converters solve the typing, but they own your financial documents, charge per-page subscriptions, and ask you to trust a third party with your bank data.
- Manually retyping every transaction line from a statement
- No easy way to confirm the numbers actually reconcile
- Handing bank statements to a converter service you cannot inspect
Every feature
- QuickBooks & Xero export presets. Reconciled statements download in the exact CSV shapes their bank importers expect — dates, signs and columns already right. The default export stays byte-identical, so existing scripts keep working.
- Line-item AI extraction. Your own vision-capable LLM reads every transaction: date, description, amount, running balance, and debit/credit direction.
- Automatic reconciliation. Opening balance plus all transactions is checked against the closing balance, with the exact delta shown when it's off.
- Running-balance consistency check. Flags any row where the running balance doesn't progress correctly.
- Signed-cents money engine. Handles US and EU number formats, currency symbols, parenthetical negatives, and mixed date formats deterministically.
- Multi-format export. Export clean CSV (RFC-4180), QuickBooks Web Connect (QBO), OFX for other accounting packages, QIF, or JSON. Each transaction carries a stable id in QBO and OFX, so importing the same month twice adds nothing.
- Three LLM providers (BYO key). Switch between OpenAI, Anthropic, or a local Ollama model any time in Settings.
- Installable mobile app (PWA). Add it to a phone or tablet home screen straight from the browser — a full-screen app served from your own server, with no app store involved. Business data is not stored offline on the device; what you see is read live.
- A year of statements at once. Upload up to 24 statements in one go and read them in batches of five.
- Excel, ready to hand on. Download any statement as an Excel workbook, amounts as numbers.
- Categories from day one. The model can suggest a category for each line from the ones you already use. Your rules and your own choices always win, and accepting its suggestions teaches the rules.
- Supplier statements. Check a supplier's statement against your own ledger: see which invoices agree, which amounts differ, and what either side is missing.
- Long statements, read to the end. A statement with hundreds of transactions is read over several model replies, each continuing after the last line read, and the running-balance check shows if a line went missing at a join. Each extra reply is a call at your own provider's cost.
- Your bank's CSV, as it comes. Import your bank's CSV export: columns are matched by their header, with one amount column or separate money-in and money-out columns, and dates with or without the time. The dry run shows exactly which rows will go in and which will not, and why, before anything is written.
- Updates from inside the app. The Updates page installs a new release with your license key: Ownware's signature is checked, a backup is taken first, and the app puts the previous version back by itself if the update is interrupted or the database step or start-up check of the new version fails. It never checks by itself.
- Backups by themselves. Automatic backups, an optional copy to S3-compatible storage you own, and a weekly check that the latest backup reads back. The Health page names anything that needs attention.
- Own It 4.0.1 — fixes and an up-to-date manual. For Ledgira, 4.0.1 fixes an installer that had lost its styling, a rollback that a page opened during an update could stop and a command-line update that ended in an error after putting the previous version back. Its manual, FAQ and QUICKSTART now cover everything 4.0 added, including two Nginx rules that keep the data folder private. Your license covers it: press Check for updates on the Updates page, or download it from your order page.
- Own It 4.0.2 — the installer opens on every host. For Ledgira, 4.0.2 fixes a fresh install on an Apache host: the one-page setup at /install/ looped back to itself and never opened, and now it opens. Your license covers it: press Check for updates on the Updates page, or download it from your order page.
Release notes in full
- Own It 4.1: client installations and your other tools. For Ledgira, 4.1 makes two changes that every app gets. An Extended license bought from October 4, 2026 covers up to ten client installations, one per client project: hand each one over to the client or host it for them, with the client's logo and colors from the app's branding settings. The API reference now shows how to connect Ledgira to Zapier, Make or n8n, using its own webhooks and API key. Your license covers the update: press Check for updates on the Updates page, or download it from your order page.
- Own It 4.0: it updates and backs itself up. For Ledgira, 4.0 means updates from inside the app: the Updates page checks for a new release with your license key, verifies Ownware's signature, takes a backup and puts the previous version back by itself if the update is interrupted or the database step or start-up check of the new version fails. A new install can start with a sample business and remove it in one click; backups run by themselves, with an optional offsite copy and a weekly check that the latest one reads back; and the Health page says whether the install is looking after itself.
- Own It 3.3: every line, however it arrives. 3.3 takes statements as they come. A statement with hundreds of transactions is read to the end over several model replies, each at your own provider's cost, with the running-balance check watching every join. Your bank's CSV export imports as it is, dates with or without the time, after a dry run that shows which rows will go in and why any will not.
- Own It 3.2: a year of statements, categorized and checked. 3.2 is built for the catch-up. Upload a year of statements at once, let your own model suggest a category for each line from the ones you already use (your rules and your own choices always win), and hand the result on as an Excel workbook. A supplier's statement can be checked against your own ledger too, showing which invoices agree and what either side is missing.
- Own It 3.1: it writes to the people you serve. The 3.1 wave gave the catalog a way to reach the other side of the transaction: counterparty email through your own SMTP server, calendar feeds your own calendar subscribes to, attachments filed where the paperwork belongs, and export presets other people's software imports. Each outbound feature ships switched off and runs on your own credentials; a failed send is recorded, and the action that triggered it stands. What this app gained is listed at the top of this section.
- Own It 3.0: works for your AI, not just for you. Categorization learns from you: correct a payee once and the rule applies to future statements — but a rule never overwrites a category a person typed, and the longest match wins, so AMAZON and AMAZON WEB SERVICES stay different businesses. Duplicates are flagged across statements, where re-uploaded months actually collide. Agents read the same ledger over MCP under the same roles.
- Own It 2.0: API, 2FA, backups, dark mode. The owner layer every Ownware app carries. Upgrade by replacing the files — the database migrates itself, and it is still the same one-time purchase.
Browse self-hosted: AI document tools · Office & finance software · Accountancy & bookkeeping software