{"id":852,"date":"2025-11-21T14:51:32","date_gmt":"2025-11-21T14:51:32","guid":{"rendered":"http:\/\/wordpress-newcraft-wordpress-c65f4c-91-98-137-5.traefik.me\/?post_type=marketing-post&#038;p=852"},"modified":"2026-02-28T10:57:10","modified_gmt":"2026-02-28T09:57:10","slug":"how-to-add-vat-number-field-shopify","status":"publish","type":"marketing-post","link":"https:\/\/newcraft.dev\/nl\/posts\/how-to-add-vat-number-field-shopify\/","title":{"rendered":"How to Add VAT Number to Shopify - Complete Guide 2025"},"content":{"rendered":"\n<p>Shopify doesn&#8217;t have a built-in VAT number field at checkout. That&#8217;s a real problem if you sell to EU businesses that need to claim VAT exemption. This guide shows you exactly how to add a VAT number to Shopify checkout and validate it automatically against the EU VIES database. The <a href=\"https:\/\/newcraft.dev\/apps\/eu-vat-b2b-exemptions\/\">EU Tax Exemption app<\/a> makes the whole setup straightforward.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-add-a-vat-number-field\">Why Add a VAT Number Field?<\/h2>\n\n\n\n<p>You sell to business customers in Germany, Belgium or France. Those businesses need to be able to enter their VAT number to order without VAT. But Shopify doesn\u2019t have a VAT number field in checkout by default.<\/p>\n\n\n\n<p>The result? Business customers pay too much, you get support tickets and have to manually create credit notes. Not ideal.<\/p>\n\n\n\n<p>This article shows how to add a VAT number field &#8211; the right way, with automatic validation and compliance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"two-ways-to-add-vat-number-field\">Two Ways to Add VAT Number Field<\/h2>\n\n\n\n<p>You have two options:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Manual custom field<\/strong> &#8211; Free but a lot of work<\/li>\n\n\n\n<li><strong>EU Tax Exemption App<\/strong> &#8211; Automated and compliant<\/li>\n<\/ol>\n\n\n\n<p>We\u2019ll cover both methods, so you can choose what fits you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"method-1-custom-form-field-diy\">Method 1: Custom Form Field (DIY)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"what-you-need\">What you need<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Shopify admin access<\/li>\n\n\n\n<li>Time to do validations manually<\/li>\n\n\n\n<li>Max 2-3 business orders per week<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"step-1-create-custom-field\">Step 1: Create custom field<\/h3>\n\n\n\n<p>Go to your Shopify admin:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Settings<\/strong> \u2192 <strong>Checkout<\/strong><\/li>\n\n\n\n<li>Scroll to <strong>Form options<\/strong><\/li>\n\n\n\n<li><strong>Add custom field<\/strong><\/li>\n\n\n\n<li>Fill in:\n<ul class=\"wp-block-list\">\n<li>Label: \u201cVAT number (for business customers)\u201d<\/li>\n\n\n\n<li>Type: Text field<\/li>\n\n\n\n<li>Required: No<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>Done. The field now appears in checkout.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"step-2-check-order-notes\">Step 2: Check order notes<\/h3>\n\n\n\n<p>After each order:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the order in Shopify<\/li>\n\n\n\n<li>Check if there\u2019s a VAT number in the notes<\/li>\n\n\n\n<li>No number? Then customer just pays VAT<\/li>\n\n\n\n<li>Has number? Go to step 3<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"step-3-manually-validate\">Step 3: Manually validate<\/h3>\n\n\n\n<p>Open the <a href=\"https:\/\/ec.europa.eu\/taxation_customs\/vies\/\" target=\"_blank\" rel=\"noopener\">VIES website<\/a>:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Enter the VAT number<\/li>\n\n\n\n<li>Check if it\u2019s valid<\/li>\n\n\n\n<li>Take screenshot as proof<\/li>\n\n\n\n<li>Save this with the order<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"step-4-refund-vat\">Step 4: Refund VAT<\/h3>\n\n\n\n<p>If the number is valid:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Calculate the VAT amount<\/li>\n\n\n\n<li>Create a credit note in Shopify<\/li>\n\n\n\n<li>Refund via original payment method<\/li>\n\n\n\n<li>Email customer with confirmation<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"why-this-method-is-difficult\">Why this method is difficult<\/h3>\n\n\n\n<p><strong>Time investment:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>10-15 minutes per order<\/li>\n\n\n\n<li>At 20 orders\/month = 5 hours work<\/li>\n<\/ul>\n\n\n\n<p><strong>Risks:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Forget to check an order<\/li>\n\n\n\n<li>Wrong calculation of VAT refund<\/li>\n\n\n\n<li>No systematic documentation<\/li>\n\n\n\n<li>Bad customer experience (waiting time)<\/li>\n<\/ul>\n\n\n\n<p><strong>Compliance:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tax authorities require proof of VIES validation<\/li>\n\n\n\n<li>Screenshots are not professional documentation<\/li>\n\n\n\n<li>Retention period 7 years &#8211; difficult to organize<\/li>\n<\/ul>\n\n\n\n<p><strong>Conclusion:<\/strong> Only do this if you have &lt; 2 business orders per month.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"method-2-eu-tax-exemption-app-automated\">Method 2: EU Tax Exemption App (Automated)<\/h2>\n\n\n\n<p>The <a href=\"https:\/\/apps.shopify.com\/tax-exemption\" target=\"_blank\" rel=\"noopener\">Tax Exemption App<\/a> automatically adds a VAT validation field and handles everything behind the scenes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"how-it-differs-from-custom-field\">How it differs from custom field<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Custom field<\/th><th>EU Tax Exemption App<\/th><\/tr><\/thead><tbody><tr><td>Customer fills in number<\/td><td>Customer fills in number<\/td><\/tr><tr><td>Number in order notes<\/td><td>Number validated real-time<\/td><\/tr><tr><td>You check manually<\/td><td>App checks automatically<\/td><\/tr><tr><td>You refund<\/td><td>VAT removed directly<\/td><\/tr><tr><td>No documentation<\/td><td>Automatically documented<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"installation-in-3-steps\">Installation in 3 Steps<\/h3>\n\n\n\n<p><strong>Step 1: Install the app<\/strong> (30 seconds)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to <a href=\"https:\/\/apps.shopify.com\/tax-exemption\" target=\"_blank\" rel=\"noopener\">Tax Exemption App<\/a><\/li>\n\n\n\n<li>Click \u201cAdd app\u201d<\/li>\n\n\n\n<li>Log in with your Shopify account<\/li>\n\n\n\n<li>Click \u201cInstall\u201d<\/li>\n<\/ul>\n\n\n\n<p><strong>Step 2: Configure the widget<\/strong> (5 minutes)<\/p>\n\n\n\n<p>You see the configuration screen with these options:<\/p>\n\n\n\n<p><strong>Position<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Above cart items<\/li>\n\n\n\n<li>Below cart items<\/li>\n\n\n\n<li>Before customer details<\/li>\n<\/ul>\n\n\n\n<p>Choose what fits best with your checkout flow.<\/p>\n\n\n\n<p><strong>Texts<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Label: \u201cVAT number\u201d<\/li>\n\n\n\n<li>Placeholder: \u201cDE123456789\u201d<\/li>\n\n\n\n<li>Help text: \u201cEnter your VAT number for business purchase\u201d<\/li>\n\n\n\n<li>Success: \u201d\u2713 Valid number &#8211; VAT exempted\u201d<\/li>\n\n\n\n<li>Error: \u201d\u2717 Invalid number &#8211; Check your input\u201d<\/li>\n<\/ul>\n\n\n\n<p><strong>Design<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Primary color (buttons): #000000<\/li>\n\n\n\n<li>Background: #FFFFFF<\/li>\n\n\n\n<li>Text color: #333333<\/li>\n\n\n\n<li>Border: 1px solid #CCCCCC<\/li>\n\n\n\n<li>Border radius: 4px<\/li>\n<\/ul>\n\n\n\n<p>Customize until it matches your webshop branding.<\/p>\n\n\n\n<p><strong>Step 3: Test<\/strong> (2 minutes)<\/p>\n\n\n\n<p>Open your webshop in incognito:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Add product<\/li>\n\n\n\n<li>Go to checkout<\/li>\n\n\n\n<li>Test with valid number: <code>NL002065958B01<\/code> (example)<\/li>\n\n\n\n<li>Check if VAT disappears<\/li>\n\n\n\n<li>Test with invalid: <code>NL000000000B00<\/code><\/li>\n\n\n\n<li>Check if error message appears<\/li>\n<\/ol>\n\n\n\n<p>If both tests work \u2192 you\u2019re done!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"what-customers-see\">What Customers See<\/h3>\n\n\n\n<p><strong>Before input:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Product: \u20ac100\nVAT (21%): \u20ac21\nTotal: \u20ac121\n\n&#91;  VAT number (optional)  ]\nEnter your VAT number for business purchase<\/code><\/pre>\n\n\n\n<p><strong>After valid number input:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Product: \u20ac100\nVAT (21%): \u20ac0 &#91;VAT exempted]\nTotal: \u20ac100\n\n\u2713 Valid VAT number - VAT exemption applied<\/code><\/pre>\n\n\n\n<p><strong>After invalid number input:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Product: \u20ac100\nVAT (21%): \u20ac21\nTotal: \u20ac121\n\n\u2717 Invalid VAT number - Check your input<\/code><\/pre>\n\n\n\n<p>Immediately clear for the customer what\u2019s happening.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"video-see-it-live\">Video: See it Live<\/h3>\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<h3 class=\"wp-block-heading\" id=\"dashboard--documentation\">Dashboard &amp; Documentation<\/h3>\n\n\n\n<p>After your first orders:<\/p>\n\n\n\n<p><strong>Overview page:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Number of validations today<\/li>\n\n\n\n<li>Total number of validated customers<\/li>\n\n\n\n<li>Success rate (valid vs invalid)<\/li>\n\n\n\n<li>Most recent validations<\/li>\n<\/ul>\n\n\n\n<p><strong>Validations list:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Order number (clickable to Shopify order)<\/li>\n\n\n\n<li>Customer name<\/li>\n\n\n\n<li>VAT number<\/li>\n\n\n\n<li>Country<\/li>\n\n\n\n<li>Status (\u2713 Valid \/ \u2717 Invalid)<\/li>\n\n\n\n<li>Date &amp; time<\/li>\n\n\n\n<li>Automatically saved 7 years<\/li>\n<\/ul>\n\n\n\n<p><strong>Export function:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CSV export for bookkeeping<\/li>\n\n\n\n<li>Filter on date range<\/li>\n\n\n\n<li>Filter on country<\/li>\n\n\n\n<li>Filter on status<\/li>\n<\/ul>\n\n\n\n<p>Perfect for your accountant or tax audit.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"common-problems\">Common Problems<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"widget-is-not-visible\">\u201dWidget is not visible\u201d<\/h3>\n\n\n\n<p><strong>Cause:<\/strong> Theme compatibility or cache<\/p>\n\n\n\n<p><strong>Fix:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Clear browser cache (Ctrl+Shift+Delete)<\/li>\n\n\n\n<li>Test in incognito mode<\/li>\n\n\n\n<li>Check if app \u201cEnabled\u201d in admin<\/li>\n\n\n\n<li>Check compatibility in app settings<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"vat-is-not-removed\">\u201dVAT is not removed\u201d<\/h3>\n\n\n\n<p><strong>Cause:<\/strong> Number is invalid or wrong format<\/p>\n\n\n\n<p><strong>Fix:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Check format per country (see table below)<\/li>\n\n\n\n<li>Test number on <a href=\"https:\/\/ec.europa.eu\/taxation_customs\/vies\/\" target=\"_blank\" rel=\"noopener\">VIES website<\/a><\/li>\n\n\n\n<li>Ask customer to verify number<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"wrong-language-is-shown\">\u201dWrong language is shown\u201d<\/h3>\n\n\n\n<p><strong>Cause:<\/strong> Language detection wrongly set<\/p>\n\n\n\n<p><strong>Fix:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>App dashboard \u2192 Settings \u2192 Language<\/li>\n\n\n\n<li>Choose specific language (manual)<\/li>\n\n\n\n<li>Or: \u201cAuto-detect\u201d for international customers<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vat-number-formats-per-country\">VAT Number Formats per Country<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Country<\/th><th>Format<\/th><th>Example<\/th><th>Length<\/th><\/tr><\/thead><tbody><tr><td>Netherlands<\/td><td>NL + 9 digits + B + 2 digits<\/td><td>NL123456789B01<\/td><td>14<\/td><\/tr><tr><td>Belgium<\/td><td>BE + 10 digits<\/td><td>BE0123456789<\/td><td>12<\/td><\/tr><tr><td>Germany<\/td><td>DE + 9 digits<\/td><td>DE123456789<\/td><td>11<\/td><\/tr><tr><td>France<\/td><td>FR + 2 chars + 9 digits<\/td><td>FRXX123456789<\/td><td>13<\/td><\/tr><tr><td>Italy<\/td><td>IT + 11 digits<\/td><td>IT12345678901<\/td><td>13<\/td><\/tr><tr><td>Spain<\/td><td>ES + 9 chars<\/td><td>ESX1234567X<\/td><td>11<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><em>All 27 EU countries supported by EU Tax Exemption App<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"best-practices\">Best Practices<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1-make-the-field-optional\">1. Make the field optional<\/h3>\n\n\n\n<p>Individuals don\u2019t need to enter a VAT number. They just order with VAT.<\/p>\n\n\n\n<p>Business customers see the field and can choose to fill it in.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2-give-clear-instructions\">2. Give clear instructions<\/h3>\n\n\n\n<p><strong>Good:<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u201cBusiness customer? Enter your VAT number for purchase without VAT\u201d<\/p>\n<\/blockquote>\n\n\n\n<p><strong>Bad:<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u201cVAT number (optional)\u201d<\/p>\n<\/blockquote>\n\n\n\n<p>Clear text works better for customers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"3-test-regularly\">3. Test regularly<\/h3>\n\n\n\n<p>Test monthly if:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Widget still visible (after theme updates)<\/li>\n\n\n\n<li>Validation still works (VIES is sometimes offline)<\/li>\n\n\n\n<li>Design still correct (after checkout updates)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4-inform-your-customers\">4. Inform your customers<\/h3>\n\n\n\n<p>Add info to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>FAQ page: \u201cHow to buy as business?\u201d<\/li>\n\n\n\n<li>Footer: \u201cBusiness ordering\u201d<\/li>\n\n\n\n<li>Email signature: \u201cBusiness customer? Use VAT number at checkout\u201d<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"frequently-asked-questions\">Frequently Asked Questions<\/h2>\n\n\n\n<p><strong>Can I make the field required?<\/strong> Yes, in app settings. But I don\u2019t recommend this &#8211; individuals can\u2019t enter a VAT number.<\/p>\n\n\n\n<p><strong>Does this work with Shopify Markets?<\/strong> Yes, EU Tax Exemption App works with all Markets and currencies.<\/p>\n\n\n\n<p><strong>What about Shopify Checkout Extensibility?<\/strong> EU Tax Exemption App is compatible with the new checkout. Updates happen automatically.<\/p>\n\n\n\n<p><strong>Can I save multiple VAT numbers per customer?<\/strong> Yes, if a customer has multiple numbers (multiple locations) they\u2019re all saved.<\/p>\n\n\n\n<p><strong>Does this work for Shopify Plus?<\/strong> Yes, EU Tax Exemption App works for all Shopify plans: Basic, Shopify, Advanced and Plus.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"when-which-method\">When Which Method?<\/h2>\n\n\n\n<p><strong>Choose custom field if:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You have &lt; 2 business orders per month<\/li>\n\n\n\n<li>Budget is absolutely zero<\/li>\n\n\n\n<li>You have time for manual work<\/li>\n<\/ul>\n\n\n\n<p><strong>Choose EU Tax Exemption App if:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You have 2+ business orders per month<\/li>\n\n\n\n<li>You want to save time<\/li>\n\n\n\n<li>You want to be compliant<\/li>\n\n\n\n<li>You want professional checkout<\/li>\n<\/ul>\n\n\n\n<p><strong>Ready to start?<\/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>More guides:<\/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 setup<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/newcraft.dev\/posts\/shopify-checkout-remove-vat\/\">Remove VAT from checkout<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/newcraft.dev\/posts\/shopify-business-customer-no-vat\/\">When not to charge VAT<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions: Adding a VAT Number to Shopify<\/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>Learn how to add a VAT number field to your Shopify checkout. Step-by-step explanation for automatic validation and VAT exemption.<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"_acf_changed":false,"_breakdance_hide_in_design_set":false,"_breakdance_tags":""},"class_list":["post-852","marketing-post","type-marketing-post","status-publish","hentry"],"acf":{"related_apps":""},"_links":{"self":[{"href":"https:\/\/newcraft.dev\/nl\/wp-json\/wp\/v2\/marketing-post\/852","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=852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}