KSeF e-invoicing for Polish construction companies 2026 โ€” advance invoices, reverse charge, split payment MPP, and subcontractor rules
๐Ÿ“‹ Regulationpoland9 min read

KSeF for Polish Construction Companies: Special Rules, Common Mistakes, and Practical Solutions

Construction companies face unique KSeF compliance challenges: invoicing in advance of work completion, retention invoices, subcontractor chains, and the split payment mechanism. This guide addresses every scenario.

By EU E-Invoicing HubOfficial Source โ†’

Poland's KSeF mandate applies equally to construction companies โ€” but the construction sector has specific invoicing patterns that create unique compliance challenges. This guide addresses the scenarios most commonly raised by Polish construction firms since the February 2026 mandatory go-live.

Construction-Specific Invoicing Challenges

1. Advance Invoices (Faktury Zaliczkowe)

Polish construction contracts frequently involve advance payments (zaliczki) before work begins or at project milestones.

KSeF treatment: Advance invoices (faktury zaliczkowe) are subject to KSeF exactly like standard invoices. Every advance invoice must:

  • Be submitted to KSeF and receive a reference number
  • Reference the contract number in the appropriate XML field
  • Be followed by a settlement invoice (faktura rozliczeniowa) once the advance is applied

Common mistake: Issuing the advance invoice outside KSeF because "the work hasn't started yet." KSeF applies from the moment a VAT-taxable advance payment is received, regardless of work completion status.

2. Retention Invoices and Partial Payment Schemes

Construction contracts often include retention clauses (zatrzymanie kaucji gwarancyjnej) โ€” where a percentage of the invoice value is withheld as a performance guarantee.

KSeF treatment: The retention invoice should reflect the full contracted amount. The retained portion can be noted in invoice annotations, but the full invoice value must be declared in the XML. Retention does not exempt any portion of the invoice from KSeF submission.

Ministry of Finance clarification (from the May 2026 FAQ update): Construction firms using guaranteed deposit schemes should reference the guarantee contract number in the BDO/BDO-linked fields where applicable.

3. Subcontractor Chains and Reverse Charge

Many Polish construction projects involve general contractors billing the property owner while subcontractors bill the general contractor. Under Polish VAT Article 17, construction services can fall under the reverse charge mechanism (odwrotne obciฤ…ลผenie) in certain scenarios.

KSeF treatment: Invoices under the construction reverse charge scheme require a specific invoice type code in the FA_VAT XML. The correct code depends on whether the transaction is domestic reverse charge or cross-border. Using the wrong code results in a KSeF rejection.

Practical solution: Verify with your accounting software vendor that they correctly apply the construction-specific VAT type codes. The codes to confirm are P (krajowe, odwrotne obciฤ…ลผenie) and the corresponding FA_VAT 2.0 fields.

4. Split Payment Mechanism (Mechanizm Podzielonej Pล‚atnoล›ci โ€” MPP)

Polish VAT law requires split payment (MPP) for certain construction services above PLN 15,000. Under MPP, the buyer must pay the VAT portion directly to the seller's designated VAT bank account.

KSeF requirement: Invoices requiring MPP must include a specific annotation in the XML: and the MPP flag must be set in the field of the FA_VAT schema.

Common mistake: Issuing an invoice without the MPP flag for a construction service above PLN 15,000. This means the buyer cannot legally use split payment โ€” which is their legal obligation. This creates liability for both parties.

5. Cross-Border Construction Services

Polish construction companies frequently work on projects in Germany, Czech Republic, or other EU countries. KSeF does not apply to cross-border construction invoices โ€” it only covers domestic Polish B2B transactions between Polish VAT-registered entities.

For cross-border projects:

  • Invoice in the format required by the customer's country
  • Use Peppol for German B2G or Belgian B2B customers
  • If you have a German VAT registration, XRechnung/ZUGFeRD rules apply for German B2B

KSeF Token Management for Construction Firms

Construction companies often have multiple project sites, project managers, and subcontractors who need to issue invoices. KSeF token management for construction requires:

  1. Project-level token assignment: Assign different KSeF tokens to different project managers to track who issued which invoice
  2. Subcontractor access: Subcontractors issue their own invoices โ€” they do not need access to the general contractor's tokens
  3. Token rotation schedule: Construction projects run for months or years โ€” include token renewal in project management workflows

The Ministry of Finance FAQ Clarification

The Ministry of Finance's May 2026 FAQ update included a specific clarification for construction companies:

> "For construction services invoiced under advance payment schemes with project milestones, each advance invoice must be submitted to KSeF at the time of the advance payment, with the settlement invoice submitted at final project completion. The KSeF reference numbers of all advance invoices should be referenced in the settlement invoice."

This resolves a significant point of confusion for multi-phase construction contracts.

Recommended Software for Polish Construction Companies

  • Comarch ERP Optima: Used by many mid-size Polish construction firms; handles reverse charge codes and MPP correctly
  • enova365: Strong construction module with project accounting; KSeF FA_VAT 2.0 certified
  • SAP S/4HANA with KSeF module: For large construction groups with complex multi-entity structures

Source

Polish Ministry of Finance KSeF FAQ update, May 2026: gov.pl/web/finanse/ksef

polandksefconstructionreverse-chargemppsplit-paymentadvance-invoice2026fa-vat

Keep Up with EU E-Invoicing

Country guides, software comparisons, and implementation tools โ€” all in one place.