# Convert ZUGFeRD to CSV

The same extraction as the Excel page, flattened for systems that only speak CSV. The embedded XML is read out of the PDF and written as plain rows.

Source: https://tally-stick.com/zugferd-to-csv

## What flattening a hybrid invoice means

A ZUGFeRD invoice is a tree: one header, many lines, several tax rates. CSV is a rectangle. The compromise is one row per line item with the header repeated, which is what import masks expect. The VAT rate sits on the line it belongs to, not in a summary block the rectangle has no room for.

## What you get out

- One row per line item, header fields repeated for each
- The VAT rate on each line, so the tax adds up from the rows
- Amounts written exactly as stated, no locale conversion
- The document profile, so you can tell a short file from a broken one

## Questions

### Which file do I drop, the PDF or the XML?

Either. If you have the PDF, drop the PDF and the attachment is read out of it. If your supplier sent the XML separately, that works too.

### Can I choose the columns?

Not yet. The export uses a fixed layout so the same file always lands in the same shape. Saved column layouts are on the paid side of the roadmap.

### Does the PDF get uploaded to read the attachment?

No. The PDF is opened in your browser and the attachment is found there. Nothing is sent, which is also why it still works with your network cable pulled out.

## Related

- [ZUGFeRD to Excel](https://tally-stick.com/zugferd-to-excel)
- [XRechnung to CSV](https://tally-stick.com/xrechnung-to-csv)
- [Factur-X to CSV](https://tally-stick.com/factur-x-to-csv)
- [PDF invoice to CSV](https://tally-stick.com/pdf-to-csv)

## How it works

The invoice is read on your own device. No file is uploaded, no account is required, and the fair usage limit is the only cap. Exports are PDF, Excel, CSV and JSON.
