# Excel to KSeF

Fill the template, drop the workbook, download a KSeF FA(3) XML file per invoice.

Source: https://tally-stick.com/excel-to-ksef

## How it works

Download the template from the page, fill it in, and drop it back onto the same page. You get one KSeF FA(3) XML file per invoice row, named after the invoice number. Nothing is uploaded: the workbook is parsed and the XML is written in your own browser.

Two sheets, and the names matter. A workbook whose sheets are called anything other than `Invoice` and `Lines` is rejected. `Invoice` carries one row per invoice: number, dates, currency, seller and buyer name, NIP, address, email. `Lines` carries one row per line item, tied back by invoice number.

NIP (Polish tax number) is validated: exactly 10 digits, no hyphens or country prefix. The VAT rate from the Excel is mapped to the FA(3) P_12 catalogue.

Line totals are always recomputed from quantity times unit price. Several invoices in one workbook is fine.

The file is ready to submit to KSeF at ap-test.ksef.mf.gov.pl (test) or production. Tallystick does not submit to KSeF on your behalf.

## What is checked before anything is written

The file is refused, with the reasons listed, when: the invoice number is absent, the issue date is missing or not YYYY-MM-DD, the seller or buyer NIP is invalid (not 10 digits), the buyer name is missing, or no line item has been entered. Each line requires a description, a positive quantity, a unit of measure, a unit price and a valid P_12 VAT rate.

## Common questions

### Which FA version is this?

FA(3), the only schema KSeF 2.0 accepts since 1 February 2026.

### What P_12 values are allowed?

23, 22, 8, 7, 5 for standard rates; 0 KR (domestic sales at 0%), 0 WDT (intra-community supply), 0 EX (export); zw (exempt from VAT); oo (reverse charge, the buyer accounts for the VAT); np I and np II (outside the scope of VAT).

### Can I go the other way?

Yes. [KSeF to Excel](https://tally-stick.com/ksef-to-excel) reads a finished file back into a spreadsheet.

### I would rather type the invoice than fill a sheet.

[Create KSeF](https://tally-stick.com/create-ksef) is a form, and it writes the same file.

## Related tools

- [KSeF invoice to Excel](https://tally-stick.com/ksef-to-excel)
- [KSeF to PDF](https://tally-stick.com/ksef-to-pdf)
- [Create KSeF invoice](https://tally-stick.com/create-ksef)
- [Convert e-invoice](https://tally-stick.com/convert-invoice)
