Guide

File Your German OSS Return Yourself: the Quarterly Workflow for Shopify Merchants

Updated 2026-07-03

Many Shopify merchants never file their own OSS return: they pay an agency or an ongoing tax tool subscription to do it. In many cases that is not necessary. Once the numbers are in order, the quarterly return is a predictable appointment of under an hour. This guide is for English-speaking founders and teams running a German-registered Shopify store, so the filing happens in Germany even if German is not your first language. It walks through the complete workflow in six steps, is honest about what stays manual even with software, and says clearly when doing it yourself is the wrong decision.

The starting point assumed here: you ship from Germany to consumers in other EU countries and are registered for the One Stop Shop with the Bundeszentralamt für Steuern (BZSt, Germany’s federal central tax office). If OSS is still new territory for you, meaning the EUR 10,000 threshold, the destination-country principle and the registration itself, start with the basics guide to EU OSS VAT for Shopify merchants.

Step 1: Know the deadline

The OSS return is due quarterly, each time by the end of the month following the end of the quarter:

Two quirks catch merchants out again and again:

Put the four dates in your calendar as recurring entries, with a reminder one to two weeks ahead. For the second quarter of 2026 that has just ended, that means: file by July 31, 2026.

Step 2: Pull the quarter’s figures

The return asks for a simple structure: one net amount per destination country and VAT rate, plus the VAT due on it. What sounds simple has four pitfalls in practice:

The manual route runs through Shopify exports: export orders and refunds, filter by shipping country, sort out the B2B orders, and sum per country and rate. It works, but it costs an afternoon every quarter and is prone to transposed digits and forgotten credit notes.

Faktwise automates exactly this step: the app continuously assigns each order to the right tax treatment and provides the quarterly totals per country and rate as a ready-made report, together with an import file for the portal. How the report is structured and how the download works is covered in the guide to the OSS report and BOP CSV export.

Step 3: Check plausibility before you go into the portal

Only numbers you have checked belong in the portal. Three quick checks are usually enough:

  1. Do the rows compute? VAT amount equals net times rate, for every row. Deviations point to mixed rates or rounding errors.
  2. Do the countries fit? Do all the countries you actually shipped to appear, and none you never deliver to? A conspicuously high or low country total is a signal to look at the underlying orders.
  3. Does the magnitude fit? Compare the quarter’s total with the previous quarter. A jump with no identifiable reason is suspicious.

For the arithmetic check there is help: our free OSS check checks your finished BOP import file before upload for format errors, country codes, deviating standard rates, and exactly this net-times-rate calculation. Checks 2 and 3 remain a quick look from you, but five minutes of checking spares you a correction filing later.

Step 4: Into the BZSt-Online-Portal, import or type

The return is filed in the BZSt-Online-Portal (BOP, the BZSt’s online filing portal). There you open the OSS-EU return for the quarter that just ended and have two routes:

Step 5: Verify in the portal, then submit

Whether imported or typed: compare the amounts shown in the portal line by line against your checked figures before you submit. Responsibility for the filed return lies with you, not with the tool. After submitting, keep the filing confirmation with your records.

Step 6: Pay, and pay actively

The step that gets missed most often: submitting is not the end of it. The declared VAT is not collected automatically; according to the BZSt, direct debit is not possible in the OSS procedure. You transfer the amount yourself, and it must have arrived at the Bundeskasse (the federal treasury) by the same due date (the end of the month following the end of the quarter). In the payment reference you must state your Kassenzeichen (the payment reference number the BZSt assigns you) and the taxation period, otherwise the payment cannot be allocated. The bank details and further specifics are provided by the BZSt in its OSS section.

Because it is the arrival of the payment that counts, not the transfer order, it is safer to transfer a few bank working days before the due date.

What stays manual even with a tool

Honesty requires saying it: part of the OSS remains handwork, or a decision no software can take off your hands.

When doing it yourself is the wrong way

The workflow described here fits the most common case: shipping from a German warehouse to consumers in the EU. In some setups, however, the OSS return alone is no longer sufficient:

In short: doing it yourself pays off with a simple setup, meaning one shipping country, standard rates, B2C. Once it gets more complex, bring in support before mistakes get expensive.

The quarterly workflow as a checklist

  1. Deadlines in the calendar: April 30, July 31, October 31, January 31, with no shift on weekends.
  2. Pull the quarter’s figures per country and rate: shipping country, B2C only, credit notes included.
  3. Check plausibility; test the finished BOP CSV beforehand with the free OSS check.
  4. In BOP, open the OSS-EU return: import the BOP CSV or type in the rows.
  5. Compare the amounts in the portal line by line, submit, file the confirmation.
  6. Transfer the VAT yourself, with Kassenzeichen and period, arriving by the due date.

FAQ

By when does the German OSS return have to be filed?

By the end of the month following the end of the quarter: April 30, July 31, October 31 and January 31, each for the preceding quarter.

Does the OSS deadline shift if it falls on a weekend?

No. Under the EU rules, the due date applies even when it falls on a weekend or public holiday.

Do I have to file if I sold nothing in a quarter?

Yes. As long as you are registered for the OSS, a Nullmeldung (nil return) must be filed as well.

Is the OSS tax debited automatically?

No. Direct debit is not possible; you transfer the amount yourself with your Kassenzeichen and the taxation period, so that it arrives at the Bundeskasse by the due date.


Faktwise takes on the grunt work of steps 2 to 4 in this workflow: the app detects OSS sales automatically, calculates with the destination country’s standard VAT rate, sums the quarter per country and rate, and creates the BOP CSV for import into the BZSt-Online-Portal. Free up to 5 invoices per month, above that a flat EUR 19/month, with a 14-day trial: try the demo or install Faktwise from the Shopify App Store. And as always: Faktwise is software, not tax advice. Deadlines, payments and tax decisions remain your responsibility; binding information comes from the BZSt, individual advice from your German tax advisor.