Guide

OSS Report and BOP CSV Export: File Your OSS Return from Shopify

Updated 2026-07-02

Selling to consumers in other EU countries from your Shopify store usually means dealing with the One Stop Shop (OSS): a quarterly VAT return that lists your sales by destination country and rate. Faktwise handles the groundwork for you. Once OSS is switched on, the app tags qualifying B2C orders, applies the destination country’s standard VAT rate, and collects everything into a quarterly report. And if you file in Germany, you can download a BOP CSV in the official import format and import the figures into your OSS-EU return in the BZSt-Online-Portal instead of typing them in by hand. This guide walks through the report, the import, and the honest limits of the export.

The OSS report page in Faktwise with the BOP CSV download for the BZSt portal

OSS and the BOP portal in one minute

The One Stop Shop is an EU scheme that lets you report VAT on cross-border B2C sales through a single tax authority instead of registering in every country where your customers live. German merchants file that return each quarter in the BZSt-Online-Portal, BOP for short, the online portal of the Bundeszentralamt für Steuern (Germany’s federal central tax office). That portal is exactly what the Faktwise import file is built for.

If OSS is new territory for you, our guide to EU OSS VAT for Shopify merchants covers registration and the basics step by step.

Step one: switch OSS on in Faktwise

Faktwise only applies the OSS logic after you enable it in the app’s Settings. From then on, B2C orders shipped to other EU countries are invoiced at the destination country’s standard VAT rate, with the matching note printed on the invoice.

Two honest caveats before you flip that switch:

What the quarterly report shows

The OSS page in the app shows a quarterly summary of your OSS sales, grouped by destination country and VAT rate. Each row carries three figures: the net amount (revenue before tax), the VAT on it, and the number of documents behind it. That mirrors exactly how the OSS return wants the data: one amount per country and rate.

Two downloads: summary CSV and BOP CSV

From the report you can download two files:

If you are OSS-registered in another member state rather than Germany, the BOP CSV will not fit your local portal, but the report and the summary CSV still hand you the per-country, per-rate figures every OSS return is built from.

Importing into the BZSt portal

The routine in the portal is short: log in to BOP, open the OSS-EU return for the quarter that just ended, and upload the BOP CSV through the import function. The portal takes the amounts into the return.

Then comes the step that matters most: check the figures in the portal before you submit. Compare them against the summary CSV or the report in the app. The import saves typing and avoids transposed digits, but the return you file is still your responsibility.

What the export deliberately leaves out

So there are no surprises at quarter end, these are the limits:

A quarter-end checklist

  1. Open the OSS report in Faktwise and sanity-check the quarter: do the countries and rates match what you expect?
  2. Download both files: the summary CSV for your records, the BOP CSV for the portal.
  3. Review any rows listed separately (for example negative country balances) and note what needs manual handling in the portal.
  4. In BOP, open the OSS-EU return, import the BOP CSV, and add any prior-quarter corrections by hand.
  5. Check every figure in the portal, then submit.

Handled this way, the quarterly OSS return shrinks from an afternoon of retyping to a short, well-prepared routine. If you want to see the report with real order data, try the demo or install Faktwise from the Shopify App Store. One thing to keep in mind as you set this up: Faktwise is software, not tax advice. For the decision whether OSS is right for your business, and for edge cases in individual countries, your tax advisor is the right person to ask.