06Own app

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
Ogarnięte / PRODUCT VIEW01
Ogarnięte dashboard: what is due, overdue and coming up, with active sites — fictional demonstration data
Ogarnięte dashboard: what is due, overdue and coming up, with active sites — fictional demonstration data

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.

02Implementation

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.

03Inside the system

Below the interface.

01

A match you can explain

Weighted signals / Review queue

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.

02

Bank files, read carefully

MT940 / CAMT.053 / CSV / Deduplication

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.

03

Financial data kept apart

Supabase / Row-level security / Encrypted tokens

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.

05Delivered

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.

Next / your project

A similar challenge?

An idea, a bottleneck, a system that has outgrown its tools. Tell us where you are.

Tell us about it