OSS return software: what to look for

Looking for OSS return software? In Germany the return goes to the BZSt only electronically, via the BZStOnline portal: in the form or by CSV import. Good software sorts sales by country and VAT rate, calculates the tax and gives you figures or a BZSt-format import file. Check the result yourself: the BZSt excludes all liability for the import.

Last updated: 27 October 2026

In short

  • Two routes: All forms go to the BZSt electronically; enter the return in the portal, optionally by import (BZSt).
  • CSV import: current version 2.0, UTF-8 encoding, at most 6000 data lines per file (BZStOnline portal, import help).
  • Your responsibility: The import is used at your own risk (BZStOnline portal, import help).

How is the OSS return submitted?

The BZSt requires all forms in the procedure to be submitted electronically. In the BZStOnline portal you find the registration notice, the form to change your details, the form to deregister and the tax return, which you can fill in optionally with an import function. Login works with a certificate. An existing certificate for the BZStOnline portal or the ELSTER portal can be used. More: OSS return: BZSt portal, not ELSTER.

Route 1, form: you enter net sales and tax per country and VAT rate by hand. This pays off with few countries.

Route 2, CSV import: you upload a finished file. This pays off once you sell into many countries and rates. The file must follow the layout the BZSt prescribes.

What does the BZSt require of the CSV file?

The import help of the BZStOnline portal gives these key points:

  • Version 2.0: since this version the file must be encoded in UTF-8. The earlier encoding ISO-8859-15 is no longer supported. Zero values are no longer allowed for tax bases and deviating VAT amounts.
  • At most 6000 data lines per CSV file.
  • Record types: record type 1 defines one country of consumption each; every country may appear only once. Further record types exist by kind of sale, for example services (type 2), goods supplied from Germany (type 3), goods supplied from other member states (type 5) and corrections (type 6).
  • Fields per sales line: country of consumption, type of VAT rate (STANDARD or REDUCED), VAT rate, net amount, tax amount. The decimal separator is the point.
  • Tax amount: the calculated amount may deviate by at most 5.00 euro.

The BZSt shows a sample file in the import help. For goods supplied from Germany a line there looks like this: 3,BG,STANDARD,20.00,5.00,1.00 (record type, country, rate type, rate, net amount, tax amount). Which record type fits you depends on the kind of your sales: goods from Germany, goods from a warehouse in another EU country and services each have their own record type.

Checklist: what should OSS return software do?

  1. Break sales down by country and VAT rate. The BZSt requires the details separately for each EU member state and by tax rates.
  2. Show net amounts and tax in euro. Foreign currency is converted at the ECB rate of the last day of the tax period.
  3. Separate domestic sales from OSS. Domestic sales belong in the advance return, not in the OSS return (see which sales go into the OSS return).
  4. Create a file in the BZSt layout or give you figures to type in. Check the file yourself before importing it.
  5. Keep screen and file consistent. What you see should be what is in the file.
  6. Know corrections. A submitted return is in principle corrected only together with a later return (see correcting an OSS return).
  7. Keep records ready. The records must be available electronically to the BZSt on request, and the retention period is ten years.
  8. Support nil returns. Even without sales a return is due.
  9. Do not forget the payment. The tax must have reached the federal treasury by the end of the following month (see paying the OSS VAT).

Which mistakes come up most often?

  • Importing a file unchecked. The BZSt is not liable for errors caused by the import function.
  • Wrong encoding. Since version 2.0 the file must be UTF-8.
  • Listing a country more than once under record type 1. Every country may appear only once.
  • Importing gross amounts. The tax base is the net amount.
  • More than 6000 lines in one file. Split the file.
  • Forgetting the nil return. Even without sales the return is due.

How VAT GPT helps

VAT GPT calculates the OSS return from your sales data and creates the OSS file from it. In three steps:

  1. Upload: You upload your Amazon or eBay CSV reports and your invoices. The AI reads amounts, countries and tax rates. VAT GPT flags invoices with low confidence for manual review.
  2. Check: VAT GPT separates German VAT from OSS VAT and shows you the OSS amounts per country. You check and confirm.
  3. Send: With VAT GPT Pro, the OSS return goes directly to the BZSt, using your ELSTER certificate. For a tax amount above zero, VAT GPT creates a PDF confirmation after the submission for your records.

The amounts on screen and the lines of the file come from the same data. There is Free (basic features, free of charge), Go (30 days free with all Pro features) and Pro (€49 per month or €444 per year, each including VAT). Try for Free Now

Frequently asked questions

Do I have to use software for the OSS return? No. You can fill in the form in the BZStOnline portal by hand. The import function is optional (BZSt).

How do I report OSS sales to the BZSt? Electronically in the BZStOnline portal, by form or CSV import (BZSt).

Do I need a certificate? Yes, for the login to the portal. An existing certificate of the ELSTER portal can be used (BZSt).

Which CSV version applies? Version 2.0, UTF-8 encoding, at most 6000 data lines (BZStOnline portal, import help).

How long must I keep the records? Ten years (BZSt).

Is the BZSt liable for errors in the import? No. The import function is used at your own risk (BZStOnline portal, import help).

Is there a DATEV interface? DATEV describes its own export. More in the article OSS return and the DATEV export.

Further reading

Not tax advice: the content does not replace individual advice.

Sources