Invoicing and Receivables Platform for a Polish Distributor
Designed and built a clickable invoicing and receivables platform for a Gdańsk wholesale distributor of heating and plumbing supplies: invoices issued through KSeF, a receivables dashboard with ageing, a collections worklist driven by a dunning cadence, and a matching workbench that pairs bank receipts, including split payments, with the invoices they pay.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, invoices with a preview panel, invoice detail with 6 tabs, the collections worklist and the matching workbench. Every one of the 46 demo invoices opens its own detail page.
Virtual account, invoice number in title, NIP in title, exact amount and customer, and split payment pair. Each statement line shows its rule and confidence, and suggestions at 90% or above are accepted in one click.
From a friendly reminder 3 days before the due date to a registered demand letter with statutory interest at +21 days, a credit hold at +30 and a legal handover review at +45.
24 customers including 3 EUR export buyers, 46 invoices with lines, KSeF attempts and allocations, 16 worklist items, 13 statement lines from 4 bank accounts and 9 staff users.
Bielawa issued invoices from its ERP, sent PDFs by hand from a shared mailbox and tracked who owed what in a spreadsheet exported every Monday. Three people spent most mornings matching transfers from four bank accounts by reading payment titles, split payments were matched twice or not at all, reminders went out when someone had time, and credit holds landed after the customer's next order. Days sales outstanding had drifted to 58 days against 30-day terms, and mandatory KSeF e-invoicing meant invoicing had to be rebuilt anyway.
Kwitek covers the whole cycle after a sale: invoices that count as issued only once KSeF assigns a number, a receivables view with ageing and DSO, a worklist that tells each credit controller who to call or write to today and why, and a matching workbench that suggests which invoices each bank receipt pays, with both halves of a split payment matched to one invoice.
Bielawa sells on credit to about 2,400 installers, merchants and contractors across Poland, plus export customers invoiced in EUR. Every step from invoice to cash is shaped by KSeF, VAT rules and Polish late payment law.
A B2B invoice is issued by sending FA(3) XML to KSeF, which validates it and assigns the number that makes it legal. Rejections, pending submissions and offline-mode deadlines all have to be visible, and a mistake is fixed with a correcting invoice, never by editing the original.
Invoices over PLN 15,000 gross that include Annex 15 goods, such as some steel pipe, must carry the split payment mechanism. The buyer pays net to the main account and VAT to the linked VAT account, and both credits have to land on one invoice.
Receipts arrive as MT940 lines from four banks with free-text titles, round amounts, partial payments and bank interest mixed in. Matching by reading titles took three people most of each morning.
The 2013 late payment act sets statutory interest and a flat recovery compensation of EUR 40, 70 or 100 by debt size. Debtor registry reports need a prior written demand and a waiting period, and the bank accounts printed on invoices must be on the VAT white list.
Mapped 9 user roles from billing specialist to the customer portal login, 36 screens (31 staff and 5 portal) and the data model for customers, invoices, KSeF records, corrections, statement lines, receipts, dunning cadences, promises, disputes and write-offs. Wrote down the rules the design follows: KSeF and FA(3), correcting invoices, VAT rates and NBP conversion, split payment, the white list, the late payment act, bad debt relief, JPK_V7, debtor registries and GDPR.
Built 5 key screens on a production dashboard kit: the dashboard with 5 KPI cards, ageing buckets, cash collected by method against forecast and a role switcher for My work; invoices with status pills, filters and a preview with the QR verification code; invoice detail with KSeF history, split payment halves and statutory interest to date; the collections worklist with call scripts; and the matching workbench. All actions run on local state.
Integration with the KSeF API, the white list API, VIES, GUS REGON, the NBP rates API, corporate banking at PKO BP, Pekao, mBank or Santander, payment links through Przelewy24, PayU or Autopay, e-Polecony registered letters and ledger export to Comarch ERP Optima, enova365 or Symfonia. Staff auth by role, an append-only audit log, and the remaining screens: new invoice, corrections, KSeF monitor, customers, disputes, write-offs, reports, settings and the customer portal.
Each invoice shows its KSeF status and delivery state next to the amounts, the sidebar shows whether KSeF is online, and the dashboard counts invoices not accepted after an hour. Invoice detail keeps every submission attempt and the QR verification codes.
Every suggested match names the rule that found it and its confidence, split payments show the net and VAT halves side by side, and allocations show a running total and remainder. Payments that are not from customers, such as bank interest, can be set aside, and undoing a match asks for a reason.
The worklist shows customers, not invoices: overdue total, oldest days overdue, next action and why it is due, from a cadence step or a broken promise. A call script and the customer's open invoices and contacts sit beside the list.
Letters and credit holds wait for approval before they go out, and a write-off request routes to the credit manager up to PLN 5,000 or the finance director above it. The requester can never approve their own write-off.

Designed and built a clickable merchant onboarding and KYB console for a CBN-licensed payment gateway in Lagos: an applications queue, a case review that checks CAC, BVN, NIN, liveness and the settlement account name in one place, an underwriting workbench with an explainable risk score, limits and rolling reserves, and four-eyes approvals bound to each approver's mandate.

Designed and built a clickable reconciliation engine for a Lyon-based marketplace group paid through Adyen, Stripe, PayPal and SEPA: it matches orders to PSP transactions, payouts and bank statement lines, explains every suggestion, turns what is left into a worked exceptions queue and traces each match to the journal entries it posts.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab