Model 349: which transactions are reported and how to extract them from WooCommerce

Consultoria EHERO

5 minutos de lectura

Model 349 is the information return that records intra-EU transactions: what you have sold to businesses in other EU countries with VAT exemption and what you have bought from EU suppliers. It does not pay anything, but it must match: the tax office cross-checks your 349 with those of your European customers and suppliers, and if they do not match, a formal request arrives. This explains what is reported and how to extract it from WooCommerce without rebuilding it manually.

Which transactions are reported in 349

Intra-EU supplies and acquisitions of goods and services between registered operators are reported. In an online store, in practice:

  • VAT-exempt supplies to EU businesses: each sale where you applied reverse charge because the customer had a valid VAT ID.
  • Acquisitions from EU suppliers: what you buy from wholesalers in other EU countries, very common in dropshipping.

Sales to private individuals are not reported — those go through OSS — nor are domestic transactions or those outside the EU.

The key word is exempt: if a sale to a European business included VAT because you did not validate the VAT ID, that transaction is not intra-EU for 349 purposes and should not appear. The reverse is also true: if you applied the exemption, it has to be included.

Deadlines and frequency

The frequency depends on the volume of intra-EU transactions. In a small or medium-sized store, the usual filing frequency is quarterly, within the first twenty calendar days of the month following the quarter. Once certain thresholds are exceeded, it becomes monthly.

The specific thresholds and deadlines are set by the tax authority and should be confirmed with your advisor each year, because they change.

The data you need from each transaction

For each counterparty, you must report the VAT ID with its country prefix, the name, the transaction code, and the total amount for the period. In other words: it is not transaction by transaction, but aggregated by customer and by type of transaction.

That means you need, for each exempt order, three things: the exact VAT ID as validated, the country, and the base amount. If the VAT ID was saved with a typo or was not saved at all, that transaction cannot be reported correctly.

Why the validation log matters here

When a discrepancy arises, the question is not how much you sold: it is why you considered that transaction exempt. A record saying “on March 14, VIES was checked for this VAT ID and returned valid, company X” settles the discussion. Without that record, the exemption is just your claim.

How to extract it from WooCommerce

WooCommerce stores orders, not tax criteria. Extracting 349 from the order list means filtering those sent to another EU country, distinguishing business from private customer, checking that each one was exempt, and grouping by VAT ID. Manually, every quarter.

EHERO Woo VAT generates the draft with those data already grouped by counterparty, because it has been recording them in each order. Your advisor reviews and files it; they do not rebuild it.

If you also handle invoicing in Holded, the amounts should match between the store and the ERP: that is what EHERO Woo Holded is for.

The mistakes that trigger requests

Reporting a transaction that the customer did not report. This usually means the VAT ID was not actually registered as an intra-EU operator. Validating against VIES at the time of sale prevents this.

VAT ID copied incorrectly. One extra digit or forgetting the country prefix and the transaction does not match. Saving the VAT ID exactly as validated removes the problem.

Forgetting acquisitions. If you buy from a European wholesaler, those purchases also go in 349. This is the most common omission in dropshipping stores.

The transaction codes

Each line in 349 has a code that identifies the type of transaction. The ones that appear in an online store are basically:

  • E — Intra-EU supplies: your VAT-exempt sales to EU businesses.
  • A — Intra-EU acquisitions: your purchases from EU suppliers.
  • S — Services supplied intra-EU.
  • I — Intra-EU acquisitions of services: this includes everyday things like your hosting or advertising supplier’s invoice if they are in another EU country.

That last one is the one most often forgotten in small stores: digital services you contract from European companies are also intra-EU transactions and must be reported. The full list of codes and the cases for each one are in the Spanish tax agency’s 349 form page.

Corrections: what to do when something changes

If in a later quarter you return goods, cancel a sale, or discover that an amount was wrong, you do not correct the old 349: you report the correction in the period when it becomes known, identifying the period it relates to.

For a store, this means returns of intra-EU orders must be traceable. If the original order is recorded as exempt and is later refunded, that movement has to reach the return.

Why the tax office cross-checks it and what it sees

349 is informational: nothing is paid when it is filed. Its purpose is to allow cross-checking with the VIES system at European level. Your German customer reports the intra-EU acquisition they bought from you; you report the supply. If the two amounts do not match, the discrepancy is flagged.

The most common discrepancies are not fraud: they are timing differences — you report it in the quarter of the order and your customer in the quarter of receipt — or a misspelled VAT ID. Both are resolved with documentation, and the documentation starts with the validation record.

349 only works if the data is there from the start

EHERO Woo VAT records each VIES validation and groups transactions by counterparty, so the 349 draft is generated with the real data from each order.

See EHERO Woo VAT · Complete guide to intra-EU VAT

TAGS

There are no tags to display.

SHARE ARTICLE

Do you want to stay up to date with all the latest news?

Follow us on our social networks so you don't miss anything!

Subscribe to our newsletter

Get exclusive deals and updates.

Get 10% OFF your first order!