Ogarnięte
KSeF has the invoices. The bank knows what was paid. Ogarnięte joins the two and shows what each job cost.
- Year
- 2026
- Discipline
- SaaS

The problem to structure.
Since 2026 every Polish VAT invoice passes through KSeF, the national e-invoicing system. It stores documents, not payments: a contractor can see every cost invoice but not which ones are still unpaid. Payments live in the bank, and materials bought for several construction sites at once leave no clear answer to how much a single job cost. Ogarnięte is our product for plumbers, electricians and renovation crews who run their business from a phone.
How the pieces connect.
Cost invoices arrive from KSeF automatically through a scheduled sync. Bank statements in MT940, CAMT.053 or the banks' CSV exports are uploaded, decoded and checked before import. A matching engine pairs transfers with invoices, settles the certain cases on its own and puts the uncertain ones in a short review queue. Invoices and costs without an invoice are assigned to construction sites and categories, which turns them into a per-site cost breakdown. The dashboard opens with what is due this week; a morning e-mail lists what needs attention. The interface is in plain Polish and designed for a phone first.
Below the interface.
01A match you can explain
Each transfer is scored against open invoices: KSeF number or invoice number in the title, the supplier's bank account, the exact remaining amount, the NIP, the payee's name and the date. High scores are settled automatically; a middle band goes to review with the reasons shown. Two close candidates, or an overpayment, never settle on their own, and a rejected pairing is not proposed again.
02Bank files, read carefully
Statement parsers detect the format and the Polish character encoding, read the account number from the file and reject a statement whose balances do not reconcile. The same transfer arriving in a mid-month CSV and a later MT940 statement is stored once.
03Financial data kept apart
Every company's data is separated with Postgres row-level security. KSeF tokens are encrypted and never returned to the browser or written to logs, and amounts are stored as whole grosze. Business logic for KSeF, statements and matching is plain TypeScript, tested independently of the framework.
The system, made visible.



A live application with automatic KSeF invoice sync, bank statement import in MT940, CAMT.053 and CSV, explainable payment matching with a review queue, construction sites with categories and costs without an invoice, a due-payments dashboard, morning e-mail summaries, CSV export and an installable mobile web app.
A similar challenge?
An idea, a bottleneck, a system that has outgrown its tools. Tell us where you are.
Tell us about it