{"id":1655,"date":"2026-03-03T07:54:12","date_gmt":"2026-03-03T06:54:12","guid":{"rendered":"https:\/\/newcraft.dev\/posts\/shopify-vat-audit-trail-how-to-prove-tax-exemptions-to-eu-authorities\/"},"modified":"2026-03-03T07:54:12","modified_gmt":"2026-03-03T06:54:12","slug":"shopify-vat-audit-trail-how-to-prove-tax-exemptions-to-eu-authorities","status":"publish","type":"marketing-post","link":"https:\/\/newcraft.dev\/nl\/posts\/shopify-vat-audit-trail-how-to-prove-tax-exemptions-to-eu-authorities\/","title":{"rendered":"Shopify VAT Audit Trail: How to Prove Tax Exemptions to EU Authorities"},"content":{"rendered":"\n<p>\n  <strong>TL;DR:<\/strong> If you sell B2B in the EU without VAT and can&#8217;t prove the buyer&#8217;s VAT number was valid at the time of sale, you owe the tax yourself. The <a href=\"https:\/\/newcraft.dev\/posts\/shopify-vat-exemption-eu-businesses\/\">EU Tax Exemption app<\/a> creates an automatic audit trail for every validation: timestamp, VIES response, company details, and the exemption applied.\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Tax Authorities Actually Ask For<\/h2>\n\n\n\n<p>\n  When a German Finanzamt, Dutch Belastingdienst, or any other EU tax authority audits your B2B sales, they want to see one thing: proof that you had a valid reason to charge 0% VAT.\n<\/p>\n\n\n\n<p>\n  For intra-community supplies under the reverse charge mechanism, that means:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n  \n<li><strong>The buyer&#8217;s VAT number<\/strong> and proof it was valid when you made the sale<\/li>\n\n  \n<li><strong>VIES verification<\/strong> showing the number was active in the EU database<\/li>\n\n  \n<li><strong>The company name and country<\/strong> associated with that VAT number<\/li>\n\n  \n<li><strong>Date of verification<\/strong> to prove you checked before or at the time of the transaction<\/li>\n\n  \n<li><strong>Invoice with reverse charge notice<\/strong> referencing Article 138 or 196 of the EU VAT Directive<\/li>\n\n<\/ul>\n\n\n\n<p>\n  Missing any of these? The tax authority can deny your 0% VAT treatment. You&#8217;ll owe the VAT yourself, plus interest, plus potential penalties. A Belgian case made headlines where a company faced a 20% penalty on undeclared VAT from a single transaction worth over a million euros.\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Shopify Gives You (Not Much)<\/h2>\n\n\n\n<p>\n  Shopify&#8217;s native VAT validation marks a customer as tax-exempt and saves the status to their profile. That&#8217;s it.\n<\/p>\n\n\n\n<p>\n  There&#8217;s no record of when the VAT number was checked. No VIES response stored. No company name verification. No per-order validation snapshot. If a customer&#8217;s VAT number becomes invalid six months after their first purchase and they keep ordering, you have no proof they were valid for order #47 but not for order #48.\n<\/p>\n\n\n\n<p>\n  Even worse, the VAT number itself isn&#8217;t accessible via Shopify&#8217;s Admin API. Your accounting software can see the customer is tax-exempt, but it can&#8217;t tell you which VAT number justified that status. <a href=\"https:\/\/newcraft.dev\/posts\/how-to-get-shopify-vat-numbers-into-your-accounting-software\/\">Getting the VAT number into your accounting tools<\/a> requires storing it on the order, which Shopify doesn&#8217;t do natively.\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What a Proper Audit Trail Looks Like<\/h2>\n\n\n\n<p>\n  Every B2B order in your store should have a paper trail that connects these dots:\n<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n  \n<li><strong>Customer submitted VAT number:<\/strong> DE123456789<\/li>\n\n  \n<li><strong>VIES validation result:<\/strong> Valid, checked at 2026-03-01 14:23 UTC<\/li>\n\n  \n<li><strong>Company name returned by VIES:<\/strong> Mustermann GmbH<\/li>\n\n  \n<li><strong>Company address returned:<\/strong> Musterstra\u00dfe 1, 10115 Berlin, Germany<\/li>\n\n  \n<li><strong>Tax treatment applied:<\/strong> EU Reverse Charge Exemption<\/li>\n\n  \n<li><strong>VAT number stored on order:<\/strong> <a href=\"https:\/\/newcraft.dev\/posts\/vat-number-invoicing-software-integration\/\">As note_attribute for invoicing software<\/a><\/li>\n\n<\/ol>\n\n\n\n<p>\n  This isn&#8217;t optional. EU VAT regulations require sellers to verify and document VAT numbers for every zero-rated intra-community supply. The verification must be traceable and linked to specific transactions.\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Re-Validation Question<\/h2>\n\n\n\n<p>\n  VAT numbers can become invalid. Businesses close, registrations lapse, or countries revoke numbers for non-compliance. If you validated a customer&#8217;s number a year ago, is that still good enough for today&#8217;s order?\n<\/p>\n\n\n\n<p>\n  Most tax advisors recommend re-validating at least with every order, or at minimum quarterly for repeat customers. Some EU member states explicitly require validation &#8220;at the time of supply.&#8221;\n<\/p>\n\n\n\n<p>\n  The EU Tax Exemption app validates against VIES with every checkout. The customer&#8217;s VAT number is checked in real time, and the result is logged with a timestamp. For returning customers, the stored number is re-validated automatically. If a number has become invalid since the last order, the exemption won&#8217;t apply.\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">EC Sales List (ICP Declaration) and Your Records<\/h2>\n\n\n\n<p>\n  Every quarter (or monthly, depending on your country), you submit an EC Sales List reporting your zero-rated B2B sales to other EU member states. In the Netherlands this is the ICP-opgave. In Germany it&#8217;s the Zusammenfassende Meldung.\n<\/p>\n\n\n\n<p>\n  Each line on this list needs to match: a valid customer VAT number, the country, and the total value of supplies. If the tax office cross-references your EC Sales List with VIES and finds a number that was invalid during the reporting period, you&#8217;ll need to explain why you charged 0% VAT.\n<\/p>\n\n\n\n<p>\n  Having a timestamped validation record for every order makes that explanation straightforward. Without it, you&#8217;re in trouble.\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ViDA: What&#8217;s Coming in 2027-2030<\/h2>\n\n\n\n<p>\n  The EU&#8217;s VAT in the Digital Age (ViDA) package is rolling out between 2027 and 2030. For B2B sellers, the key changes include:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n  \n<li><strong>Mandatory e-invoicing<\/strong> for intra-community B2B transactions (starting 2030 at EU level, some countries earlier)<\/li>\n\n  \n<li><strong>Digital Reporting Requirements (DRR)<\/strong> where invoice data is reported to tax authorities in near-real-time<\/li>\n\n  \n<li><strong>Enhanced cross-border audit capabilities<\/strong> with centralized EU data matching<\/li>\n\n<\/ul>\n\n\n\n<p>\n  This means tax authorities will have more data, faster, and better tools to spot missing or invalid VAT numbers. The grace period for sloppy record-keeping is shrinking.\n<\/p>\n\n\n\n<p>\n  Merchants who already have structured, timestamped VAT validation data flowing through their systems will be ready. Those relying on a simple &#8220;tax exempt: yes\/no&#8221; flag on a customer profile will need to rebuild their entire compliance workflow.\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Setting Up Your Audit Trail<\/h2>\n\n\n\n<p>\n  The EU Tax Exemption app handles this automatically. Every validation is logged in the app&#8217;s dashboard with the full VIES response. The VAT number is stored on each order as a <a href=\"https:\/\/newcraft.dev\/posts\/save-vat-details-shopify-order-note\/\">note attribute with all validation details<\/a>. Your invoicing software picks up the number. Your EC Sales List has the data it needs.\n<\/p>\n\n\n\n<p>\n  No manual copying. No spreadsheets. No gaps when your accountant asks for proof. If you want to understand how different <a href=\"https:\/\/newcraft.dev\/posts\/best-shopify-vat-app-comparison\/\">Shopify VAT apps<\/a> handle compliance, our comparison covers the audit trail capabilities of each solution.\n<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>EU tax authorities need proof your B2B customer&#8217;s VAT number was valid at the time of sale. Here&#8217;s how to build that audit trail in Shopify.<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"_acf_changed":false,"_breakdance_hide_in_design_set":false,"_breakdance_tags":""},"class_list":["post-1655","marketing-post","type-marketing-post","status-publish","hentry"],"acf":{"related_apps":null},"_links":{"self":[{"href":"https:\/\/newcraft.dev\/nl\/wp-json\/wp\/v2\/marketing-post\/1655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/newcraft.dev\/nl\/wp-json\/wp\/v2\/marketing-post"}],"about":[{"href":"https:\/\/newcraft.dev\/nl\/wp-json\/wp\/v2\/types\/marketing-post"}],"wp:attachment":[{"href":"https:\/\/newcraft.dev\/nl\/wp-json\/wp\/v2\/media?parent=1655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}