Grzegorz Giewon · UnitSoftware

For implementation partners

Hand me the part the system will not do

You are rolling out SAP or another large ERP into Poland and halfway through it turns out something simply cannot be done inside it — the release is too old, the standard does not cover it, and an upgrade does not fit this budget. I build that missing piece alongside, in .NET, and hand it to you with documentation.

That is how every tool on this site came about: commissioned by implementation partners who deliver it onward to their own clients. This is not a new offering — it is a description of the work as it already runs.

The part that is hard from outside Poland

The engineering is not what makes Polish e-invoicing expensive for a foreign integrator. The cost sits in everything around it: the schema changed from FA(2) to FA(3) in February 2026, the ministry publishes clarifications in Polish only, the gateway rejects files for reasons its error codes describe tersely, and half the market is still repeating an announcement that was later withdrawn.

I am in Warsaw, I file my own invoices through KSeF, and I follow those announcements because my own tools break when I do not. You are buying that, as much as the code.

What I can take on

None of this starts from zero — the components below run in production today, so the work is usually adaptation rather than a new build.

KSeF communication Authentication, issuing in FA(3), inbound documents from suppliers, KSeF number handling, QR codes, offline and failure modes. With a queue and retry logic, because the government API does go down and an invoice then has to wait rather than fail.
SAF-T (JPK) filing Generating and validating Poland’s SAF-T files, filing them to the ministry gateway, collecting and storing the official confirmation (UPO). Including structures a standard ERP rarely covers — JPK_V7M, JPK_KR_PD.
Electronic signature XAdES in the variants the Polish tax systems actually require, KSeF certificates, and signing from a smart card or USB token — including the local service that makes the card reachable from a browser application.
Document rendering Readable HTML and PDF from an invoice or a SAF-T file, with QR codes. The item that surfaces when the client’s finance team sees the output for the first time, usually a week before acceptance.
XRechnung ↔ FA(3) Conversion in both directions, validated against EN 16931. Relevant when the group is German and the entity is Polish: both mandates land in one ERP, on the same EN 16931 base, with different national layers on top.
Component licensing If you ship this to more than one client, you need a way to bind usage to a specific taxpayer. The licence generator and NIP-based verification are already built and running in production.

On what terms

The things nobody enjoys asking about, so I say them first.

I do not come between you and your client The contract, the rollout, the schedule and the client contact stay with you. I do not approach your client without your knowledge and I do not pitch them — not during the project and not after it.
I can work under your brand If you prefer, the client never learns I was involved. I require no credit, no logo and no reference. By default I do not name you publicly either — only if you agree to it.
The code is yours Source, documentation and full rights assigned to you in writing, under the governing law of the contract. No proprietary format, no dependency on my infrastructure, no per-document fee. You can ship it to further clients without reporting deployment counts to me.
Nothing passes through my servers What I build runs at your client or at you. There is no third party in the document path, so no sub-processor joins your record of processing activities and your security team approves no new cloud vendor.
Second line, not first Tickets from the end client go to you — you know the deployment context. What concerns the component reaches me. I answer on business days, within 24 hours.
Contracting across the border Contracts in English or German, Polish or German law — your choice, on your paper or mine. Invoicing in EUR, reverse charge for EU businesses. I am established in the EU, so no third-country transfer and no standard contractual clauses. I will sign your NDA before the first call and your DPA on request.

How billing works

Three arrangements. Which one fits depends on how sharp the scope is — not on the size of your firm.

Fixed scope The usual arrangement. We agree what gets built, you get a written quote and a fixed price. Good when the scope is known and you need a number for your own proposal to the client.
Hourly When the scope is still vague, or the work runs in "while you are there, add this" mode. Billed monthly with a breakdown of what was done.
Component plus rollouts If the same thing goes to several of your clients: you pay once for building and handover, then only for the adaptation each further deployment needs. Deployment count does not raise a licence fee, because there is none.

What none of them contains: a per-document fee, a subscription for keeping the connection alive, or an invoice cap. The volume going through what I build does not change the bill — yours or your client’s.

How we start

1. A call, 20 minutes. You describe what is blocking the rollout and by when. I tell you whether it is a week of work or a quarter — and whether I am the right person at all. If I am not, you hear that immediately.

2. Scope and quote in writing. Before anything starts you get what will be built, an estimate and the commercial terms, in EUR — specific enough to lift into your own proposal to the client.

3. Delivery in stages. Test environment first, then production. Code lands in a repository you can reach from day one, so the state of it is never a surprise.

4. Handover. Code, documentation and full rights in writing. I stay on second-line maintenance or I do not — your call, not a condition.

And if I become unavailable?

A fair question, and a sharper one for you than for the end client, because you are the one answerable to them. The answer is what I already do rather than an assurance: the code is with you from day one, copyright is assigned in writing, the components have public documentation (the manuals are downloadable without an account, so you can judge in advance whether an outsider could follow them), and all of it is plain .NET with no proprietary format. Worst case, you are left with working code another developer can pick up.

Let’s talk about a specific project

The shortest route is one sentence: which system, which release, and what has to work. I will tell you whether it is doable and roughly in what time — including when the answer is “not by me”.

Booking times are shown in Warsaw time (CET/CEST) — the same working day as Berlin, Vienna and Stockholm. I will sign your NDA before the first call; just send your template.