Invoices between your own companies: when downloading from KSeF is enough, and when you need to connect two ERP systems

· 7 min read · SilverData team

You own a manufacturing company and a second, trading company that sells its products. Sometimes there is a third one that owns the building and invoices rent and recharged utilities every month. The accountant at the trading company retypes the manufacturer's invoices by hand, and at month end the intercompany balance is off by PLN 1,280. Someone loses a day finding out which invoice or credit note caused it.

This post lets you decide which of three approaches fits your document volume: manual booking with a monthly balance check, downloading invoices from KSeF (the Polish national e-invoicing system) into the buyer's ERP, or an integration that creates the stock documents in the second company automatically. It also tells you when to leave things as they are.

What it costs you today

Retyping one invoice takes 3–5 minutes: supplier, line items, VAT rates, cost category. At 40 invoices a month that is 2–3 hours. That is not the biggest cost.

The bigger cost is reconciliation. We typically see 0.5–2 days of accounting time a month spent looking for differences. The causes repeat:

Before you pick a solution, check which of these problems you actually have. That decides everything else.

Three approaches and when each makes sense

1. Manual booking plus a monthly balance check. Zero cost. Makes sense below 20–30 invoices a month when no goods move between the companies, only services: rent, recharges, management fees. Condition: a fixed reconciliation day and one person who owns it.

2. Downloading invoices from KSeF into the buyer's ERP. Since 1 February 2026, companies with more than PLN 200 million in 2024 sales issue invoices in KSeF, and since 1 April 2026 all other VAT payers do (source: ksef.podatki.gov.pl). Your manufacturer's invoice is already sitting in KSeF. The trading company can pull it from there instead of retyping it. Most common Polish ERP systems, including Comarch Optima, enova365 and Subiekt, have a module for this. Check whether your version downloads automatically and whether it maps line items to your item master.

The catch: a KSeF invoice carries the seller's item names and codes, not the buyer's. Without a table mapping "item code in company A → item code in company B", the invoice gets booked as a cost but stock does not change. Setting this up with mapping usually costs PLN 4,000–10,000 (about EUR 950–2,350) and takes 1–3 weeks. We cover the KSeF connection itself in our post on connecting your ERP to KSeF.

3. Document integration between two ERP systems. When company A issues a delivery note and an invoice, the integration creates the goods receipt and purchase invoice in company B, with the right item codes, warehouse and cost centre. In the full version, a purchase order in company B also creates a sales order in company A. This usually costs PLN 15,000–40,000 (about EUR 3,500–9,400) and takes 4–8 weeks. It makes sense when goods flow between the companies and there are more than 100 documents a month, or when the trading company sells from stock that has to match to the unit.

Two examples from our projects

Where it worked. One of our clients is a 28-person furniture manufacturer that sells everything through an 8-person trading company running an online shop and wholesale. Both use Comarch Optima, in separate databases. Between them, 120–150 invoices a month. One person spent about 10 hours a month retyping them, and the balance check took 1.5 days.

We implemented option 2: automatic KSeF download in the trading company, a mapping table of 340 items (most matched by EAN barcode, about 60 by hand) and automatic goods receipts. It took 3 weeks and cost about PLN 9,000 (about EUR 2,100). Retyping disappeared, and the balance check now takes about 2 hours. The differences that remain are real problems, mostly late credit notes. The lesson: we would have built the mapping table from day one with a rule that a new item in company A cannot go on an invoice until it has a counterpart in company B. In the first month, new products kept landing in the error queue.

Where it cost more than it should have. In another project, a 40-person logistics company on enova365 had two sister companies: a property company renting it the warehouse, and a fleet company leasing it the vehicles. Both smaller companies were kept by an external accounting firm in its own software. The owner had ordered a full two-way integration from a previous vendor for PLN 32,000 (about EUR 7,500).

After 7 weeks it worked for 3 of 12 invoice types. Utility recharges stayed manual because each used a different allocation key. The key finding came too late: there were 12 invoices a month between the companies. KSeF downloads and a quarterly balance confirmation would have solved it at practically no cost. The lesson: count the documents first, then talk about integration.

When it doesn't make sense and what can go wrong

Few documents and no goods. Below 20–30 service invoices a month, an integration will not pay back. At 12 invoices and PLN 15,000, payback is measured in years.

The second company is kept by an accounting firm. You do not control its software, and the firm will not always let someone create documents in it. Only option 2 or a balance check is realistic here. The firm downloads invoices from KSeF anyway, so ask whether it does so daily and whether you can get a monthly statement of intercompany balances.

Credit notes outside the process. The most common mistake we see: the integration handles invoices, while credit notes are still entered by hand. After three months the balance is off again and nobody trusts the automation. Credit notes must follow the same path as invoices.

Prices between companies. The integration carries prices over, it does not set them. If you are not sure the prices between your companies are right, that is a question for a tax adviser, not for IT.

Netting. Many companies offset mutual receivables every month instead of making transfers. Under Polish law, offsetting is done by a statement made to the other party (Article 499 of the Civil Code, source: ISAP). The ERP will generate a netting note, but only if the balances in both companies agree. If they don't, you are netting errors. That is a good reason to reconcile before netting, not after.

Downloading once a month. If company B pulls invoices from KSeF only at month-end close, the period problem stays. Set the download to run daily. More on what to do before closing in our post on month-end close in the ERP.

What to do this week

How you handle invoices between your own companies depends on the number of documents and on whether goods move between them. For a dozen service invoices, KSeF and a balance check are enough. Integrating two ERP systems pays back only at around a hundred documents and a shared stock.

← Back to blog