Orders6 min read
EU OSS and IOSS VAT Worksheet From Shopify Orders, Step by Step
Build the quarterly OSS or monthly IOSS VAT worksheet from your Shopify orders with Columna: what each column means, what is left out and what to check before filing.
In this guide
Every quarter, a shop that sells to consumers in other EU countries under the One-Stop Shop (OSS) has to report its sales per member state of consumption and per VAT rate. Shops outside the EU that ship low-value goods under the Import One-Stop Shop (IOSS) do the same every month. Shopify knows all of the numbers, but it does not hand them to you in the shape the return asks for.
This guide shows how to produce that worksheet from your Shopify orders with Columna, what every column means, what the report deliberately leaves out, and what you still have to check before you or your accountant file.
What the report gives you
The EU OSS / IOSS VAT report is a template in Columna: Order Export & Sheets that groups your orders into one row per combination of:
- Scheme: OSS or IOSS.
- Member state of consumption: the country the goods went to.
- VAT rate (%): the rate Shopify charged on the order lines.
- Type: Sales or Refunds.
For each row you get the Taxable amount (net of VAT, after discounts), the VAT amount, the Currency and the number of Orders behind it. Those are the figures an OSS or IOSS return asks for, already summed.
The report is computed in your browser from the orders Columna reads from Shopify. Nothing about it is stored on our side, and it is included in every Columna plan.
Step 1: Check your store address first
The scheme is not a setting in the report. Columna reads it from your Shopify store address:
- If the store address in Settings > Store details is inside the EU, sales are reported as OSS.
- If it is outside the EU, they are reported as IOSS.
If the address is missing, the report stops with the message “Add your store address in Settings > Store details.” Fix the address in Shopify admin and run the report again. If you are registered under a scheme that does not match your store address, the worksheet is not the right tool for that return.
Step 2: Open the template and pick the period
In Columna, open Templates, then the Accounting tab, and find EU OSS / IOSS VAT report. Then:
- Click Export report on it. The Orders page opens with the report already selected.
- Set the date range to the period you report: a calendar quarter for OSS (for example 2026-07-01 to 2026-09-30), or a calendar month for IOSS.
- Click Export, choose CSV or Excel, and click Export again. Excel is easier if someone will add formulas; CSV is easier to import into accounting software.
Orders are read and summed in your browser, so keep the tab open until the download finishes on a store with many orders.
Step 3: Read the columns
Here is what each column contains and where the value comes from.
| Column | What it holds |
|---|---|
| Scheme | OSS when the store address is in the EU, IOSS when it is outside |
| Member state of consumption | The shipping country of the order, or the billing country when there is no shipping address |
| VAT rate (%) | The rate Shopify charged on the item or shipping line; shipping is reported at the rate charged on it |
| Type | Sales, or Refunds for money returned in the period |
| Taxable amount | Amount excluding VAT, after discounts; when your prices include tax, the VAT is taken off |
| VAT amount | VAT charged (or refunded) in that group |
| Currency | Your store currency |
| Orders | How many orders make up the row |
Two details matter when you copy the figures into the return.
Refunds are reported in the period they happen. A refund issued in October on an order placed in August shows up in the October to December worksheet, as a negative row of Type Refunds. That matches how corrections usually work on an OSS return, but check how your tax authority wants earlier periods corrected.
Amounts stay in your store currency. The report does not convert currencies. If your store does not sell in euro, convert the totals yourself, normally at the European Central Bank rate published for the last day of the reporting period. Ask your accountant which rate your registration country expects.
What the report leaves out, on purpose
An OSS or IOSS return is only about distance sales to consumers in other EU countries. So the report skips orders that do not belong in it:
- Domestic sales: orders shipped to the country the store is in. Those go on your normal national VAT return.
- Non-EU destinations: orders shipped outside the EU.
- Tax-exempt orders: for example B2B orders where a valid VAT number was entered and the reverse charge applies.
- Test orders, and orders that were voided or whose payment expired.
- Gift cards, because no VAT is due when a gift card is sold.
- IOSS orders whose goods are worth more than 150 EUR before VAT and shipping, because import VAT is then due at the border.
Columna can only check the 150 EUR limit in euros when the customer paid in EUR or your store currency is EUR. Otherwise it marks the row IOSS (check 150 EUR limit) instead of guessing. Look at those orders by hand before you file.
Known limits
The worksheet is honest about what it cannot see:
- Northern Ireland is not reported separately. If you ship goods there under the EU rules for Northern Ireland, split those orders out yourself.
- Refunds that are not linked to a line item or to shipping (for example a goodwill refund typed as a plain amount) are left out, because there is no rate to put them under.
- Very large orders are read up to 5 refunds of 10 items each. If you have orders refunded piece by piece more than that, check them in Shopify.
Step 4: Cross-check before you file
A worksheet is not a filed return, and the person filing should still reconcile it. A quick routine that catches most problems:
- Open Shopify’s own taxes report for the same period and compare the total VAT across EU countries. Small differences usually come from refunds booked in a different period or from orders Columna skipped for a reason listed above.
- Sort the worksheet by Member state of consumption and look for countries you did not expect. A wrong default shipping country in a customer profile shows up quickly this way.
- Check that each VAT rate makes sense for that country. A row at your home country’s rate for a foreign destination usually means tax settings in Shopify need attention, not the report.
- If any row says IOSS (check 150 EUR limit), open those orders and decide each one.
Keep it as part of the quarter-end routine
Because the template is saved in Columna, the routine at the end of each quarter is three clicks: pick the date range, choose the format, export. Save the file next to your return so you can show where every figure came from.
If you also send order totals to your accountant every month, the same app covers that: a saved template with one row per order, exported to Excel, or emailed to you on a schedule with Pro so the file is waiting for you.
The worksheet does the adding up. Deciding what goes on the return, and filing it, stays with you or your accountant, and this guide is not tax advice. What it removes is the hours of filtering orders by country and rate in a spreadsheet, and the mistakes that come with it.