Excel · CSV · ODS · XML

Create e-invoices from Excel, CSV or ERP exports

Your ERP or accounting software cannot produce ZUGFeRD or XRechnung, but you have the invoice data as an Excel or CSV export? Upload the file, check the preview, and a ZUGFeRD PDF with embedded XML is created for every invoice.

How it works

1
Fill in your profile once
Sender, bank details and tax details are stored in your profile. The sender of an invoice always comes from there, never from the file. In the web interface the import only starts once the profile is complete.
2
Upload the file
Under “Create from file” you upload an Excel, LibreOffice or CSV file (up to 10 MB). One row per line item; rows with the same invoice number belong to one invoice. An import template with all columns can be downloaded there.
3
Check the preview
You see the invoices that were recognised with line items and totals, the columns that were matched, and any errors with sheet and row number. Nothing has been created or charged up to this point. Each invoice has a detail view.
4
Create the invoices
Up to 10 invoices are created immediately; from 11 onwards creation runs in the background and a status page shows the progress. You then download all PDFs as a ZIP. Each invoice is a PDF/A-3 with embedded ZUGFeRD XML.
5
Check the result
The embedded XML is checked with the KoSIT validator when it is created. If it fails the check, a note appears with the import, and the invoice is still created. Please read the notes after every run. As a cross-check you can upload any file to Check an e-invoice for free.

What exactly is supported

File formats

Excel, LibreOffice, CSV, XML

Excel (.xlsx, .xls), LibreOffice (.ods) and CSV with semicolon, comma or tab as separator are read. In addition, finished e-invoices as XML (ZUGFeRD and Factur-X as CII, XRechnung as CII or UBL) and ZIP files containing several files. Excel files are read in an isolated container, formulas deliver their calculated value, and macros are never executed.

Columns

102 known columns, recognised generously

Only invoice number, customer, line item and unit price (or net amount) are required. Column names are recognised regardless of upper or lower case, punctuation and umlauts, including English names such as “Invoice No” or “Customer”. The header row may sit below title rows.

Several invoices

One row per line item

Rows with the same invoice number form one invoice, and a following row without a number belongs to the previous one. Recipient, payment and delivery address may appear in every row; the first row of each invoice counts.

Duplicate protection

No invoice number twice

An invoice number that is already used in your account is not created again. The preview reports this in advance, and also a number that appears several times in the same import: in that case only the first is created.

Master data

Customers and items from your records

With a customer number the import completes missing recipient details from the business partner, and with an item number prices come from the catalogue. Numbers in German and English format are read, as are percentages such as “10 %” for the allowance.

Details for abroad

VAT treatment, language, currency

There are columns for VAT treatment, invoice language, currency and exchange rate, delivery terms (for example Incoterms) and the delivery address. More on the page E-invoices in English and for customers abroad.

A whole Excel invoice

Even without a table layout

If you have so far written invoices in Excel, with letterhead, recipient block and a table of line items, the file is read and opened in the invoice form for you to check. If the recognition is not enough, the interface offers AI matching for 10 credits, only after your confirmation and with processing in the EU.

For developers

The same function via API

POST /v1/import accepts the same files. The preview is free. When creating, up to 50 invoices come back directly as a ZIP, above that a background run takes over. Details are in the documentation.

Typical pitfalls with Excel and CSV imports

Column names are not recognised

A file counts as a table if its header row contains all four required items (invoice number, customer, line item, price) under known names. Otherwise the import treats it as a single invoice in a free layout and, if needed, offers AI matching instead of reading a table. In a recognised table, everything that could not be matched appears in the preview under “Not mapped”, and every recognised column with its target field. If a row has an error, the invoice concerned is not created, the others are.

Decimal separators and thousands separators

Numbers such as 120,50 and 120.50 are both read correctly, as are 1.234,56 and 1,234.50, because the last separator counts as the decimal separator. A single full stop, however, counts as a decimal point, even before three digits: 1.500 becomes 1.5. The import only recognises thousands separators if there are several (1.234.567) or a comma also appears. This applies to every number that arrives as text, for example in CSV files. Check the totals in the preview for this reason.

Date formats

DD.MM.YYYY, YYYY-MM-DD and Excel date serial numbers are read. With a slash or hyphen as separator, day, month, year is tried first, and only if that does not fit, month, day, year. A date such as 03/04/2026 is therefore read as 3 April. An invalid date such as 31 February leads to an error in that row.

Leading zeros

Excel turns the postcode 03046 into the number 3046. For country Germany, or with no country given, the import restores the missing zero for four-digit postcodes; for other countries the value stays as it is. Format customer and item numbers with leading zeros as text in Excel.

Character set in CSV

Excel saves “CSV (comma delimited)” in Windows-1252 and “CSV UTF-8” in UTF-8. The invoice import recognises both, so umlauts, ß and the euro sign come through correctly. Excel’s “Unicode Text” (UTF-16) is read as well. You do not need to change anything.

Discounts and line net amounts

If the export contains a unit price and a lower line net amount per item but no discount column, the import shows the difference as an item discount. That way the invoice does not show a list price next to an unexplained smaller line amount. With a discount column of your own, what it contains applies.

Several sheets, large files

One sheet is read per run, the first one with a recognised header row. If another sheet also contains a table, the preview says that it was ignored. The import does not accept more than 20,000 rows per table; split the file in that case.

Price

In the credit model an invoice costs 1 credit. For Excel and LibreOffice files (.xlsx, .xls, .ods) 2 credits per file are added for the conversion, but not for CSV and XML. The preview is free, and so is opening a single Excel invoice in the form. Your own Word template and the authenticity seal are optional and cost a surcharge. Credits are available from EUR 9.00 net for 100 credits, they do not expire, and you start with 10 free credits.

Frequently asked questions: e-invoice from Excel and CSV

Do I need a fixed template for my Excel or CSV file?

No. Only invoice number, customer, line item and unit price (or net amount) are required. Column names are recognised generously, including English ones. To see which columns exist, download the import template under “Create from file” after registering. An overview of all columns is also in the documentation.

Which files can I upload, and how large may they be?

Excel (.xlsx, .xls), LibreOffice (.ods), CSV and finished e-invoices as XML, and ZIP files containing several of them. A file may be up to 10 MB, and a table has at most 20,000 rows. Split larger volumes into several files.

What happens if I upload the same file twice?

Invoice numbers that are already used in your account are not created again, and the preview shows this in advance as a message. Rows with numbers that are still free are created, so you can also extend a file and upload it again.

Can I also create XRechnung invoices for public authorities from Excel?

Yes, with the column “profil” and the value xrechnung. For XRechnung the program additionally requires, before creating, the Leitweg-ID (column “leitweg_id”), the email address and telephone number of the seller, the email address of the customer and an IBAN. If any of these is missing, the preview reports it as an error.

My Excel file is an invoice itself, not a table. Does that work?

Yes. An Excel file in a free layout (letterhead, recipient, table of line items) is read and opened in the invoice form for you to check, at no charge. If the structure cannot be recognised clearly, we offer AI matching for 10 credits. It only runs after your confirmation, and processing takes place in the EU.

Can I trigger the import from my own system?

Yes, via the interface POST /v1/import. It accepts the same files as the web interface. In the default mode “preview” you receive the recognised invoices as JSON for free, with “generate” the ZUGFeRD PDFs are created. If there are validation errors, nothing is created and the response contains the list of errors. Details are in the documentation.

Further reading

Create e-invoices from your exports

Start for free, 10 transactions included. No credit card.

Get started

Log in

Forgot your password?

No account yet? Sign up now

Sign up

B2B offer for businesses and self-employed professionals; a tax number or VAT ID is required.

At least one of the two is required.

Already registered? Log in