{"id":1437,"date":"2026-01-28T22:18:16","date_gmt":"2026-01-28T21:18:16","guid":{"rendered":"https:\/\/newcraft.dev\/posts\/canary-islands-vat-exemption-for-shopify-show-widget-to-canarian-b2b-customers\/"},"modified":"2026-05-22T10:18:25","modified_gmt":"2026-05-22T08:18:25","slug":"canary-islands-vat-exemption-for-shopify-show-widget-to-canarian-b2b-customers","status":"publish","type":"marketing-post","link":"https:\/\/newcraft.dev\/nl\/posts\/canary-islands-vat-exemption-for-shopify-show-widget-to-canarian-b2b-customers\/","title":{"rendered":"Canary Islands VAT Exemption for Shopify: Show Widget to Canarian B2B Customers"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>TL;DR:<\/strong> Spanish Shopify stores can show the VAT exemption widget to Canary Islands visitors while hiding it from mainland Spain. For checkout VAT removal, EU Tax Exemption can also handle Ceuta and Melilla by delivery postcode. The checkout flow can also support a small set of other EU member-state territories that are outside the EU VAT area, such as Heligoland, B\u00fcsingen, Mount Athos, Livigno and Campione d&#8217;Italia.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Canary Islands VAT Problem<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you run a Shopify store in Spain, you&#8217;ve likely encountered this frustrating situation: you want to hide the VAT widget from Spanish consumers (who pay normal IVA), but Canarian businesses need to see it for VAT exemption.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The problem? Shopify sees mainland Spain, the Canary Islands and other Spanish special territories under the same country code: <strong>ES<\/strong>. That is fine for shipping, but it is not specific enough for VAT handling.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With our new <strong>Region Exceptions<\/strong> feature, you can finally show the <a href=\"\/posts\/embeddable-vat-widget-shopify\/\">VAT exemption widget<\/a> to visitors from the Canary Islands while keeping it hidden for mainland Spanish shoppers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why Are the Canary Islands Different?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Canary Islands (Islas Canarias) have a special tax status within Spain:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n  <thead>\n    <tr>\n      <th>Region<\/th>\n      <th>VAT Status<\/th>\n      <th>Tax System<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Mainland Spain<\/td>\n      <td>EU VAT Area<\/td>\n      <td>IVA (21%)<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Canary Islands<\/strong><\/td>\n      <td><strong>Outside EU VAT<\/strong><\/td>\n      <td>IGIC (7%)<\/td>\n    <\/tr>\n    <tr>\n      <td>Ceuta &amp; Melilla<\/td>\n      <td>Outside EU VAT<\/td>\n      <td>IPSI<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Because the Canary Islands are outside the EU VAT area, businesses in Las Palmas, Tenerife, Gran Canaria, and other islands may need different VAT handling when purchasing from mainland EU suppliers. This is why many merchants use a dedicated <a href=\"\/posts\/shopify-vat-reverse-charge\/\">reverse charge<\/a> or tax-exclusion flow instead of treating every Spanish address the same.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ceuta and Melilla create a similar Shopify problem. They are also outside the normal Spanish VAT area, but they use their own postcode ranges instead of Canary Islands postcodes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There are similar VAT-excluded territory cases in other EU member states too. Germany has Heligoland and B\u00fcsingen, Greece has Mount Athos, and Italy has Livigno and Campione d&#8217;Italia. The storefront Region Exceptions feature is focused on visibility before checkout, while checkout VAT removal should use the delivery address entered by the buyer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How Region Exceptions Work<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Setting up Canary Islands VAT exemption takes three steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n  \n<li>Go to <strong>Settings<\/strong> in the EU Tax Exemption app<\/li>\n\n  \n<li>Enable <strong>&#8220;Hide for domestic&#8221;<\/strong> under Storefront Widget<\/li>\n\n  \n<li>Select <strong>&#8220;Canary Islands (Spain)&#8221;<\/strong> from the Except Regions dropdown<\/li>\n\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s it. Our app automatically detects visitors from the Canary Islands and shows them the VAT validation widget:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n  \n<li><strong>Mainland Spain visitors<\/strong> \u2192 Widget hidden (domestic shoppers)<\/li>\n\n  \n<li><strong>Canary Islands visitors<\/strong> \u2192 Widget shown (outside EU VAT area)<\/li>\n\n  \n<li><strong>Other EU countries<\/strong> \u2192 Widget shown (standard <a href=\"\/posts\/shopify-vat-exemption-eu-businesses\/\">B2B VAT exemption<\/a>)<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If region detection fails for any reason, the widget is shown as a fallback \u2014 ensuring no legitimate B2B customer misses the opportunity to validate their VAT number.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Who Needs This Feature?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is perfect for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n  \n<li><strong>Spanish wholesale stores<\/strong> selling B2B across Spain and Europe<\/li>\n\n  \n<li><strong>EU stores based in Spain<\/strong> that want clean checkout experiences for domestic consumers<\/li>\n\n  \n<li><strong>Any merchant<\/strong> with Canarian B2B customers who currently can&#8217;t access VAT exemption<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Already using our <a href=\"\/posts\/why-a-b2b-checkout-button-makes-vat-exemption-actually-work\/\">B2B checkout button<\/a>? Region Exceptions works seamlessly with it \u2014 Canarian businesses can validate their VAT and proceed to tax-free checkout.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Which Businesses Qualify?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Spanish businesses in the Canary Islands that trade with mainland Spain or Europe have a Spanish VAT number \u2014 this is what they&#8217;ll enter in the widget. The app validates the number and removes the VAT from their purchase, just like any other B2B transaction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your Canarian customers already provide you with a VAT number for their orders, this feature is for them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Testing Without a VPN<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;ve built in test mode so you can verify the feature works without needing a VPN or traveling to the Canary Islands. In the app settings, click &#8220;How it works&#8221; under Region Exceptions to see the test parameters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Add these to your cart URL to simulate different visitors \u2014 you&#8217;ll see exactly what your Canarian customers experience.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">VAT Compliance for Canary Islands Sales<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When selling to VAT-exempt Canarian businesses, you need proper documentation. Our app handles this automatically:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n  \n<li><strong>VIES validation<\/strong> \u2014 Verify VAT numbers against the EU database<\/li>\n\n  \n<li><strong>Order notes<\/strong> \u2014 <a href=\"\/posts\/save-vat-details-shopify-order-note\/\">VAT details saved to each order<\/a><\/li>\n\n  \n<li><strong>Tax-exempt tag<\/strong> \u2014 Filter B2B orders easily in Shopify Admin<\/li>\n\n  \n<li><strong>0% VAT invoicing<\/strong> \u2014 Proper documentation for reverse charge<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For a complete overview of EU VAT requirements, see our <a href=\"\/posts\/complete-vat-guide-eu-shopify\/\">Complete VAT Guide for Shopify<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What About Ceuta and Melilla?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ceuta and Melilla are also Spanish VAT-excluded territories. In checkout, EU Tax Exemption can handle them by delivery postcode:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n  \n<li><strong>51xxx<\/strong> &#8211; Ceuta<\/li>\n\n  \n<li><strong>52xxx<\/strong> &#8211; Melilla<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This is separate from the storefront Region Exceptions flow above. Region Exceptions helps decide when to show the VAT widget before checkout. Checkout VAT removal for the Canary Islands, Ceuta and Melilla is based on the delivery country and postcode, not on IP detection.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Other EU VAT-Excluded Territories in Checkout<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For checkout VAT removal, EU Tax Exemption can also support selected non-Spanish territories that are inside an EU member state but outside the EU VAT area:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n  \n<li><strong>Germany:<\/strong> Heligoland and B\u00fcsingen am Hochrhein<\/li>\n\n  \n<li><strong>Greece:<\/strong> Mount Athos<\/li>\n\n  \n<li><strong>Italy:<\/strong> Livigno and Campione d&#8217;Italia<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This is intentionally handled in checkout based on the delivery address. IP detection is useful for storefront visibility, but the delivery postcode gives a cleaner order trail for VAT decisions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions: Canary Islands VAT Exemption for Shopify<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Which Canary Islands postcodes are supported?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Canary Islands are normally identified by Spanish delivery postcodes starting with <strong>35<\/strong> or <strong>38<\/strong>. That means <strong>35000-35999<\/strong> for the province of Las Palmas and <strong>38000-38999<\/strong> for the province of Santa Cruz de Tenerife.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Which Spanish VAT-excluded territory postcodes can remove VAT in checkout?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The checkout postcode rule supports <strong>35xxx<\/strong> and <strong>38xxx<\/strong> for the Canary Islands, <strong>51xxx<\/strong> for Ceuta, and <strong>52xxx<\/strong> for Melilla, when the delivery country is Spain.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Which non-Spanish VAT-excluded territory postcodes can remove VAT in checkout?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The checkout rule also supports <strong>27498<\/strong> for Heligoland, <strong>78266<\/strong> for B\u00fcsingen am Hochrhein, <strong>63086<\/strong> for Mount Athos, <strong>23041<\/strong> for Livigno, and <strong>22061<\/strong> for Campione d&#8217;Italia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What province is postcode 35000?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>35000<\/strong> belongs to the province of <strong>Las Palmas<\/strong>. For Shopify VAT handling, the important signal is the postcode prefix: <strong>35xxx<\/strong> means a Canary Islands delivery address.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does this article describe IP detection or checkout postcode detection?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This article describes Region Exceptions for showing the storefront VAT widget to Canary Islands visitors. For automatic checkout VAT removal based on the delivery postcode, read our separate guide: <a href=\"\/posts\/canary-islands-vat-exemption-in-shopify-checkout-remove-vat-by-postcode\/\">Spanish VAT-excluded territories in Shopify checkout by postcode<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Do Canary Islands, Ceuta or Melilla customers always need a VAT number?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For normal B2B VAT exemption, a VAT number can still be useful for documentation and validation. For checkout VAT removal based on these Spanish special territory postcodes, the decision is based on the delivery territory rather than VIES validation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does this also cover Ceuta and Melilla?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes for checkout postcode-based VAT removal: <strong>51xxx<\/strong> is treated as Ceuta and <strong>52xxx<\/strong> as Melilla. The storefront Region Exceptions feature described in the main setup steps is still focused on showing the widget to Canary Islands visitors.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Get Started<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Region Exceptions is available now for all EU Tax Exemption app users at no additional cost.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n  \n<li><strong>New users:<\/strong> <a href=\"https:\/\/apps.shopify.com\/tax-exemption\" target=\"_blank\" rel=\"noopener\">Install EU Tax Exemption<\/a> from the Shopify App Store<\/li>\n\n  \n<li><strong>Existing users:<\/strong> Go to Settings \u2192 Storefront Widget \u2192 Except Regions<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Questions? Reach out via the Help button in the app. We can help you set up the right VAT experience for mainland Spain, the Canary Islands, Ceuta, Melilla and other supported VAT-excluded territories.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Show the VAT widget to Canary Islands visitors and understand checkout handling for Spanish and other EU VAT-excluded territories.<\/p>\n","protected":false},"featured_media":1440,"template":"","meta":{"_acf_changed":false,"_breakdance_hide_in_design_set":false,"_breakdance_tags":""},"class_list":["post-1437","marketing-post","type-marketing-post","status-publish","has-post-thumbnail","hentry"],"acf":{"related_apps":""},"_links":{"self":[{"href":"https:\/\/newcraft.dev\/nl\/wp-json\/wp\/v2\/marketing-post\/1437","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:featuredmedia":[{"embeddable":true,"href":"https:\/\/newcraft.dev\/nl\/wp-json\/wp\/v2\/media\/1440"}],"wp:attachment":[{"href":"https:\/\/newcraft.dev\/nl\/wp-json\/wp\/v2\/media?parent=1437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}