{"id":850,"date":"2025-11-21T14:49:21","date_gmt":"2025-11-21T14:49:21","guid":{"rendered":"http:\/\/wordpress-newcraft-wordpress-c65f4c-91-98-137-5.traefik.me\/?post_type=marketing-post&#038;p=850"},"modified":"2026-02-28T10:59:11","modified_gmt":"2026-02-28T09:59:11","slug":"shopify-checkout-remove-vat","status":"publish","type":"marketing-post","link":"https:\/\/newcraft.dev\/nl\/posts\/shopify-checkout-remove-vat\/","title":{"rendered":"Remove VAT from Shopify Checkout for Business Customers"},"content":{"rendered":"\n<p>EU business customers expect to buy without VAT. When your Shopify checkout doesn&#8217;t offer that, you lose sales to competitors who do. Removing VAT from Shopify checkout for business customers requires VAT number collection, VIES validation, and automatic tax removal working together. The <a href=\"https:\/\/newcraft.dev\/apps\/eu-vat-b2b-exemptions\/\">EU Tax Exemption app<\/a> handles the entire process so your B2B buyers get the right price at checkout.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"the-vat-problem-in-checkout\">The VAT Problem in Checkout<\/h2>\n\n\n\n<p>A French company places an order worth \u20ac850 in your cart. They go to checkout and see: <strong>\u20ac1,028.50<\/strong> (incl. 21% VAT).<\/p>\n\n\n\n<p>They know they don\u2019t have to pay VAT. Reverse charge &#8211; they handle VAT in France. But Shopify just leaves that \u20ac178.50 VAT there.<\/p>\n\n\n\n<p>What happens?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>40% drop off (too expensive, too unclear)<\/li>\n\n\n\n<li>30% email your support (\u201chow do I get VAT off?\u201d)<\/li>\n\n\n\n<li>20% order and ask for refund afterwards<\/li>\n\n\n\n<li>10% just order with VAT (your problem later)<\/li>\n<\/ul>\n\n\n\n<p>The result: lost orders, frustration and extra work. And this while you simply need to remove that VAT according to <a href=\"https:\/\/europa.eu\/youreurope\/business\/taxation\/vat\/cross-border-vat\/index_en.htm\" target=\"_blank\" rel=\"noopener\">EU regulations<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-shopify-doesnt-do-this-automatically\">Why Shopify Doesn\u2019t Do This Automatically<\/h2>\n\n\n\n<p>Shopify is made for retail &#8211; selling to individuals. The tax engine does three things:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Recognizes customer\u2019s country<\/li>\n\n\n\n<li>Applies correct VAT rate<\/li>\n\n\n\n<li>Calculates total amount<\/li>\n<\/ol>\n\n\n\n<p>What it <strong>doesn\u2019t<\/strong> do:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Distinguish between individual and business<\/li>\n\n\n\n<li>Validate VAT numbers<\/li>\n\n\n\n<li>Apply VAT exemption for businesses<\/li>\n<\/ul>\n\n\n\n<p>You need to solve this yourself.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"three-ways-to-remove-vat\">Three Ways to Remove VAT<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"option-1-customer-tags-free-but-limited\">Option 1: Customer tags (free but limited)<\/h3>\n\n\n\n<p><strong>How it works:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Customer creates account<\/li>\n\n\n\n<li>You manually give them \u201ctax exempt\u201d tag<\/li>\n\n\n\n<li>From now on they pay no VAT<\/li>\n<\/ol>\n\n\n\n<p><strong>The big problem:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Only works for existing customers with account<\/li>\n\n\n\n<li>New business customers pay VAT on first order<\/li>\n\n\n\n<li>60% of B2B buyers use guest checkout<\/li>\n<\/ul>\n\n\n\n<p><strong>Real-world example:<\/strong><\/p>\n\n\n\n<p>New German wholesale customer finds you via Google. Orders \u20ac2,000. Sees \u20ac2,420 (with VAT). Thinks: \u201cToo expensive\u201d or \u201cThis doesn\u2019t make sense\u201d. Doesn\u2019t order.<\/p>\n\n\n\n<p>You miss the sale.<\/p>\n\n\n\n<p>Later he emails: \u201cI\u2019m a business, why VAT?\u201d Now you have to explain that he first needs to create an account, then you give tag, then he can reorder.<\/p>\n\n\n\n<p>Chance this happens? Small.<\/p>\n\n\n\n<p><strong>When it works:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You have 5-10 regular B2B relationships<\/li>\n\n\n\n<li>They order monthly<\/li>\n\n\n\n<li>They\u2019re OK with creating account<\/li>\n<\/ul>\n\n\n\n<p>For all other cases: not practical.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"option-2-shopify-scripts-expensive-and-complex\">Option 2: Shopify Scripts (expensive and complex)<\/h3>\n\n\n\n<p><strong>Requirements:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Shopify Plus (\u20ac2,000+\/month)<\/li>\n\n\n\n<li>Ruby knowledge<\/li>\n\n\n\n<li>Maintenance with every Shopify update<\/li>\n<\/ul>\n\n\n\n<p><strong>Example script:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if customer &amp;&amp; customer.tags.include?('B2B')\n  Input.cart.line_items.each do |line_item|\n    line_item.change_line_price(\n      line_item.line_price * 0.79, <em># Remove 21% VAT<\/em>\n      message: \"B2B - Excl. VAT\"\n    )\n  end\nend<\/code><\/pre>\n\n\n\n<p><strong>Why this isn\u2019t ideal:<\/strong><\/p>\n\n\n\n<p><strong>Technical:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Scripts don\u2019t validate VAT numbers<\/li>\n\n\n\n<li>You have to track who is B2B yourself<\/li>\n\n\n\n<li>Doesn\u2019t work for guest checkout<\/li>\n\n\n\n<li>Breaks with Shopify updates<\/li>\n<\/ul>\n\n\n\n<p><strong>Compliance:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No VIES validation = not compliant<\/li>\n\n\n\n<li>No automatic documentation<\/li>\n\n\n\n<li>During audit: no proof<\/li>\n<\/ul>\n\n\n\n<p><strong>Costs:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u20ac2,000\/month for Shopify Plus<\/li>\n\n\n\n<li>Developer costs for setup\/maintenance<\/li>\n\n\n\n<li>Total: \u20ac2,500+ setup, \u20ac2,100+ per month<\/li>\n<\/ul>\n\n\n\n<p><strong>Note:<\/strong> Shopify is phasing out Scripts. Checkout Extensibility is the future, but doesn\u2019t yet have full tax features.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"option-3-eu-tax-exemption-app-recommended\">Option 3: EU Tax Exemption App (recommended)<\/h3>\n\n\n\n<p>The <a href=\"https:\/\/apps.shopify.com\/tax-exemption\" target=\"_blank\" rel=\"noopener\">Tax Exemption App<\/a> solves the core problem: automatically remove VAT for valid business customers, in real-time, during checkout.<\/p>\n\n\n\n<p><strong>The difference:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Traditional<\/th><th>With EU Tax Exemption App<\/th><\/tr><\/thead><tbody><tr><td>Customer sees \u20ac1,210<\/td><td>Customer sees \u20ac1,210<\/td><\/tr><tr><td>Customer thinks: \u201cToo expensive\u201d<\/td><td>Customer enters VAT number<\/td><\/tr><tr><td>Customer leaves site<\/td><td>VAT disappears \u2192 \u20ac1,000<\/td><\/tr><tr><td>Or: orders and emails later<\/td><td>Customer orders directly<\/td><\/tr><tr><td>You have to refund<\/td><td>Done<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>What happens behind the scenes:<\/strong><\/p>\n\n\n\n<p><strong>Second 0:<\/strong> Customer arrives at checkout<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Total: \u20ac1,210 (incl. VAT)<\/li>\n\n\n\n<li>Widget appears: \u201cVAT number (optional)\u201d <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1760\" src=\"http:\/\/wordpress-newcraft-wordpress-c65f4c-91-98-137-5.traefik.me\/wp-content\/uploads\/2025\/11\/dqQ0zH8-1-scaled.png\" alt=\"\" class=\"wp-image-861\" srcset=\"https:\/\/newcraft.dev\/wp-content\/uploads\/2025\/11\/dqQ0zH8-1-scaled.png 2560w, https:\/\/newcraft.dev\/wp-content\/uploads\/2025\/11\/dqQ0zH8-1-300x206.png 300w, https:\/\/newcraft.dev\/wp-content\/uploads\/2025\/11\/dqQ0zH8-1-1024x704.png 1024w, https:\/\/newcraft.dev\/wp-content\/uploads\/2025\/11\/dqQ0zH8-1-768x528.png 768w, https:\/\/newcraft.dev\/wp-content\/uploads\/2025\/11\/dqQ0zH8-1-1536x1056.png 1536w, https:\/\/newcraft.dev\/wp-content\/uploads\/2025\/11\/dqQ0zH8-1-2048x1408.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/figure>\n\n\n\n<p><strong>Second 3:<\/strong> Customer types: <code>DE123456789<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>App sends number to VIES database<\/li>\n\n\n\n<li>VIES responds: \u201cValid\u201d<\/li>\n<\/ul>\n\n\n\n<p><strong>Second 4:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>VAT disappears from screen<\/li>\n\n\n\n<li>New total: \u20ac1,000<\/li>\n\n\n\n<li>Green message: \u201d\u2713 VAT exemption applied\u201d<\/li>\n<\/ul>\n\n\n\n<p><strong>Second 5:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Customer pays \u20ac1,000<\/li>\n\n\n\n<li>Order comes in<\/li>\n\n\n\n<li>Validation documented<\/li>\n<\/ul>\n\n\n\n<p>No extra steps. No refund. No support tickets.<\/p>\n\n\n\n<p><strong>Setup in 5 minutes:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Install<\/strong> &#8211; <a href=\"https:\/\/apps.shopify.com\/tax-exemption\" target=\"_blank\" rel=\"noopener\">Click here<\/a> and follow wizard<\/li>\n\n\n\n<li><strong>Customize<\/strong> &#8211; Choose colors and texts that match your shop<\/li>\n\n\n\n<li><strong>Test<\/strong> &#8211; Do a test order with VAT number<\/li>\n\n\n\n<li><strong>Live<\/strong> &#8211; Done<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"live-example\">Live Example<\/h2>\n\n\n\n<p>See how it works for a customer: <\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-embed-handler wp-block-embed-embed-handler\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/youtube.com\/watch?v=tiX0UXyoNig%3Fsi%3DAUXWcpEkki7b_mGx\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"common-mistakes\">Common Mistakes<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mistake-1-remove-vat-for-everyone\">Mistake 1: Remove VAT for everyone<\/h3>\n\n\n\n<p>Some merchants think: \u201cJust make VAT 0% for EU\u201d.<\/p>\n\n\n\n<p><strong>Why this is wrong:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You must calculate VAT for individuals<\/li>\n\n\n\n<li>Only businesses with valid VAT number get exemption<\/li>\n\n\n\n<li>Otherwise: tax evasion<\/li>\n<\/ul>\n\n\n\n<p><strong>Consequence:<\/strong> Back taxes + fine during audit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mistake-2-let-customer-email-after-order\">Mistake 2: Let customer email after order<\/h3>\n\n\n\n<p>\u201cJust order, we\u2019ll handle VAT later.\u201d<\/p>\n\n\n\n<p><strong>What happens:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Customer orders \u20ac5,000 + \u20ac1,050 VAT = \u20ac6,050<\/li>\n\n\n\n<li>You have to refund \u20ac1,050<\/li>\n\n\n\n<li>Cash flow problem with large orders<\/li>\n\n\n\n<li>Extra administration<\/li>\n\n\n\n<li>Bad experience for customer<\/li>\n<\/ul>\n\n\n\n<p><strong>Better:<\/strong> Correct price directly in checkout.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mistake-3-trust-customer-without-check\">Mistake 3: Trust customer without check<\/h3>\n\n\n\n<p>\u201cIf they say they\u2019re business, I believe them.\u201d<\/p>\n\n\n\n<p><strong>Risk:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Individuals can pretend to be business<\/li>\n\n\n\n<li>During audit you must have VIES proof<\/li>\n\n\n\n<li>No proof = you still pay VAT<\/li>\n<\/ul>\n\n\n\n<p><strong>Correct:<\/strong> Always validate via VIES.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mistake-4-no-documentation-kept\">Mistake 4: No documentation kept<\/h3>\n\n\n\n<p>\u201cI checked it, don\u2019t need to save it right?\u201d<\/p>\n\n\n\n<p><strong>Reality:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Retention period 7 years<\/li>\n\n\n\n<li>Tax authorities can check anytime<\/li>\n\n\n\n<li>Without proof: back taxes + fine<\/li>\n<\/ul>\n\n\n\n<p><strong>Solution:<\/strong> Automatic system that logs everything.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vat-exemption-for-specific-situations\">VAT Exemption for Specific Situations<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"wholesale-with-regular-customers\">Wholesale with regular customers<\/h3>\n\n\n\n<p><strong>Scenario:<\/strong> You sell to 20 regular resellers in the EU.<\/p>\n\n\n\n<p><strong>Problem with customer tags:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You have to manually tag 20 customers<\/li>\n\n\n\n<li>New wholesale customers pay VAT on first order<\/li>\n\n\n\n<li>For each new customer: manual process<\/li>\n<\/ul>\n\n\n\n<p><strong>With EU Tax Exemption App:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>First order: customer enters VAT number<\/li>\n\n\n\n<li>Next orders: automatically recognized<\/li>\n\n\n\n<li>Dashboard: overview all wholesale orders<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mix-b2c-and-b2b\">Mix B2C and B2B<\/h3>\n\n\n\n<p><strong>Scenario:<\/strong> You sell to both individuals and businesses.<\/p>\n\n\n\n<p><strong>Solution:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Widget is optional<\/li>\n\n\n\n<li>Individuals leave it empty \u2192 pay VAT<\/li>\n\n\n\n<li>Businesses fill in number \u2192 no VAT<\/li>\n\n\n\n<li>No confusion, everyone sees correct price<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"international-marketplace\">International marketplace<\/h3>\n\n\n\n<p><strong>Scenario:<\/strong> Customers from all 27 EU countries.<\/p>\n\n\n\n<p><strong>Challenge:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Each country has different VAT number format<\/li>\n\n\n\n<li>Different languages<\/li>\n\n\n\n<li>Different VAT rates<\/li>\n<\/ul>\n\n\n\n<p><strong>EU Tax Exemption App:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Automatically recognizes all EU formats<\/li>\n\n\n\n<li>Multilingual widget (6 languages)<\/li>\n\n\n\n<li>Applies correct exemption per country<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"costs--roi\">Costs &amp; ROI<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"scenario-15-b2b-orders-per-month\">Scenario: 15 B2B orders per month<\/h3>\n\n\n\n<p><strong>Without automation:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Support time: 15 \u00d7 20 min = 5 hours \u00d7 \u20ac30 = <strong>\u20ac150<\/strong><\/li>\n\n\n\n<li>Processing refunds: 3 hours \u00d7 \u20ac25 = <strong>\u20ac75<\/strong><\/li>\n\n\n\n<li>Lost sales (estimated 25%): 4 orders \u00d7 \u20ac75 margin = <strong>\u20ac300<\/strong><\/li>\n\n\n\n<li><strong>Total loss: \u20ac525\/month<\/strong><\/li>\n<\/ul>\n\n\n\n<p><strong>With EU Tax Exemption App:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>App costs: <strong>\u20ac9.99\/month<\/strong><\/li>\n\n\n\n<li>Time saved: 8 hours<\/li>\n\n\n\n<li>Extra conversion: +4 orders = +\u20ac300 margin<\/li>\n\n\n\n<li><strong>Net profit: \u20ac290\/month<\/strong><\/li>\n<\/ul>\n\n\n\n<p><strong>ROI:<\/strong> 2,900% per month<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"compliance-requirements\">Compliance Requirements<\/h2>\n\n\n\n<p>For legal VAT exemption you must:<\/p>\n\n\n\n<p>\u2705 Validate VAT number via <a href=\"https:\/\/ec.europa.eu\/taxation_customs\/vies\/\" target=\"_blank\" rel=\"noopener\">VIES database<\/a> \u2705 Validate before delivery \u2705 Keep proof minimum 7 years \u2705 Document per order: number, date, status<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"frequently-asked-questions\">Frequently Asked Questions<\/h2>\n\n\n\n<p><strong>Does VAT exemption work with discount codes?<\/strong> Yes. Order: first VAT off, then apply discount.<\/p>\n\n\n\n<p><strong>What about VIES database downtime?<\/strong> EU Tax Exemption App has fallback. You can manually validate and this is logged.<\/p>\n\n\n\n<p><strong>Can I hide the widget for individuals?<\/strong> The widget is always visible but optional. This is actually good &#8211; so business customers know they can get VAT exemption.<\/p>\n\n\n\n<p><strong>How fast does validation work?<\/strong> Real-time, 1-2 seconds. Customer sees the new amount immediately.<\/p>\n\n\n\n<p><strong>Does this work with Shopify POS?<\/strong> No, only online checkout. For POS you need other solutions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"next-steps\">Next Steps<\/h2>\n\n\n\n<p>You\u2019ve now seen three options to remove VAT. Which fits you?<\/p>\n\n\n\n<p><strong>Customer tags<\/strong> \u2192 Max 5 regular customers, small volume <strong>Shopify Scripts<\/strong> \u2192 You have Plus and developer budget <strong>EU Tax Exemption App<\/strong> \u2192 5+ business orders\/month, want automation<\/p>\n\n\n\n<p>For most merchants automation is the only practical solution.<\/p>\n\n\n\n<p><strong>Start today:<\/strong> <a href=\"https:\/\/apps.shopify.com\/tax-exemption\" target=\"_blank\" rel=\"noopener\">Install EU Tax Exemption App \u2192<\/a><\/p>\n\n\n\n<p><strong>Learn more:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/newcraft.dev\/posts\/shopify-vat-exemption-eu-businesses\/\">Complete VAT exemption guide<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/newcraft.dev\/posts\/how-to-add-vat-number-field-shopify\/\">How to add VAT number field<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/newcraft.dev\/posts\/best-shopify-vat-app-comparison\/\">Compare best VAT apps<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions: Removing VAT from Shopify Checkout<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Discover how to automatically remove VAT in Shopify checkout for B2B customers. Compliant, fast and without manual work.<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"_acf_changed":false,"_breakdance_hide_in_design_set":false,"_breakdance_tags":""},"class_list":["post-850","marketing-post","type-marketing-post","status-publish","hentry"],"acf":{"related_apps":""},"_links":{"self":[{"href":"https:\/\/newcraft.dev\/nl\/wp-json\/wp\/v2\/marketing-post\/850","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=850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}