Separate supplies of goods from reverse charge
When physical goods move from Germany to a business in another EU member state, the transaction may qualify as a tax-exempt intra-Community supply and the buyer accounts for intra-Community acquisition VAT. For certain cross-border services, reverse charge and the wording that the recipient is liable for VAT may apply instead.
Important: this is a completely separate tax scenario. It has nothing to do with the OSS scheme, which only applies to B2C distance sales to private customers. If you serve both cases, you need a clean separation. Read how to set up OSS separately in the OSS guide.
The three conditions for the tax exemption
The 0 % treatment is tied to clear conditions. If one is missing, you owe German VAT—even if the customer is a business.
- The buyer is a business in another EU country (not Germany, not a third country).
- The buyer holds a valid VAT ID confirmed through the validation procedure.
- The goods demonstrably move physically from Germany to the other EU country (proof of arrival).
- Both VAT IDs and an unambiguous reference to the tax-exempt intra-Community supply appear on the invoice.
Validating the VAT ID: the qualified confirmation procedure
A VAT ID alone is not enough: it must be valid at the time of supply. Via the EU VIES system (in Germany through the Federal Central Tax Office), the qualified confirmation procedure checks whether the ID, company name and address match. Document the confirmation in an audit-proof way; it is your evidence in a tax audit.
If you rely on an invalid or unrelated ID, the tax authority may deny the exemption. Shopify can capture the VAT ID in an order field or customer metafield. zrapp detects that value and uses it for classification but does not perform qualified VIES validation in the webhook tax decision.
Detecting and posting reverse charge in Shopify automatically
zrapp evaluates country, customer data and a supplied VAT ID and technically classifies the order as domestic, EU B2C/OSS, EU B2B or export. This is a posting proposal based on available data, not confirmation of business status or movement of goods.
The handover runs via webhooks straight into sevdesk or Lexware Office. See the guides on connecting Shopify to sevdesk and connecting Shopify to Lexware Office. If you only need the finished invoice as PDF/ZUGFeRD, the automatic invoicing module helps.
Metafield writeback: invoice data back into the order
So you can always see in Shopify which order was posted as reverse charge, zrapp writes the invoice ID, number and tax status back into the order via metafield writeback. The tax scenario stays visible directly on the order, without having to search across two systems.
sevdesk receives matching tax and country tags. Alongside the transfer log and invoice metafields, this improves traceability. VAT-ID and movement-of-goods evidence still has to be retained separately and unchanged.
Distinction: no reverse charge in these cases
Not every cross-border sale is reverse charge. If you sell to private customers in the EU, the OSS scheme applies with the destination country's local rate above the EU-wide threshold of €10,000. If you are a small business under §19 of the German VAT Act, you generally invoice without VAT, a different mechanism than reverse charge.
Third-country supplies too (e.g. Switzerland, with VAT rates of 8.1 % / 2.6 % / 3.8 %) do not fall under reverse charge but under export supply. Details on the small-business scheme are in the article Small business scheme §19 and Shopify.
