Support » Plugin: WooCommerce EU VAT Assistant » FAQ – OSS/IOSS regulations from the 1st of July, 2021 (Updated 1st July 2021)

  • Plugin Author Diego

    (@daigo75)


    This topic covers the aspect of the regulations that apply to merchants whose sales fall under the new IOSS VAT regime, coming into effect on the 1st of July, 2021. The information comes from the answers given to users who enquired about this topic, and have been put together in this single topic, for convenience.

    We must clarify that we are not accountants, nor tax advisors, therefore the following doesn’t constitute official tax advice, nor legal advice. We strongly recommend to consult your accountant to confirm the correct approach to take in your specific business, as we won’t be able to guarantee the accuracy of our answers, not take any responsibility in case of compliance issues. You are free to use the information and solutions provided below, at your own risk.

    General question: will the EU VAT Assistant be updated provide features specific to the IOSS regime, coming into effect on the 1st of July 2021?

    Answer
    The EU VAT Assistant can be used, to a certain extent, even after the 1st of July. However, please keep in mind that it’s designed primarily for digital products, and doesn’t implement features specific to physical goods, or to the element of shipping. It’s already possible, with some custom filters, to cover some the rules applicable to the shipping of goods, such as the VAT exemption over 150 EUR (or 135 GBP, for the UK). More about this below.

    10K VAT MOSS registration
    Regulation link: https://ec.europa.eu/taxation_customs/business/vat/modernising-vat-cross-border-ecommerce_en

    Regulation summary

    The abolition of the “distance sales threshold” and the creation of a unique and common threshold of EUR 10,000 throughout the EU up to which B2C EU cross-border supplies remain subject to the VAT rules of the Member State of dispatch, and above which supplies become subject to the VAT rules of the Member State of destination

    Question: does the EU VAT Assistant keep track of the sales and inform the merchant?

    Answer
    We are aware of the threshold regulations, as they have been in place for sales of digital services for a while now. As of today, we don’t have a plan to introduce a feature to keep track of the cumulative sales to see when that threshold is reached.

    Based on our understanding, the process is the following:
    1. As long as a business is under 10K of B2C EU sales, it can apply the VAT rules of the source country. This is not compulsory, and a business can opt to join the VAT OSS system immediately.
    2. As soon as the business reaches 10K of B2C EU sales, it has to apply the new regime. This means performing a couple of steps:

    1. Registering for the VAT OSS system. This is a manual process.
    2. Configuring the VAT rates for the 27 EU countries, for the applicable tax classes. This is also a manual process, as the EU VAT Assistant doesn’t change existing VAT rates (that’s not a planned feature, either. It’s up to the merchant to keep the rates up to date).

    After some consideration, we came to the conclusion that the manual work would described above (see #2.1 amd 2#2.) have to be done anyway, and that the transition to the VAT OSS system is usually a once-off operation. Once a business reaches the 10K of sales, it would make little sense to go back to the pre-threshold regime the year after (i.e. a business doesn’t go back and forth from OSS to “source VAT”, as that would add administrative work).

    We opted to leave out any automatic switching from one regime to the other. A business can simply run one of the included reports to have an idea of how close they are to the threshold (the EU VAT Assistant shows the amount per country, one just has to make a sum), and start the registration ahead of time. When the registration is complete, they can simply change the VAT rates in the tax settings and the EU VAT Assistant will track the country-specific sales as it normally does.

    In conclusion, we determined that the little benefit brought by a “sales tracking” feature would not justify the work required to implement it, and we put it aside for now (i.e. it won’t be added to the EU VAT Assistant).

    VAT exemption thresholds
    The new IOSS regulations require the application of VAT to all sales made to extra-EU countries, when such sales don’t exceed 150 EUR. The UK has a similar rule, where the sales to EU customer by a UK merchant should be subject to VAT when they are under 135 GBP. When the order amounts are above 150 EUR (EU rule) or (135 GBP) UK rule, then the VAT is handled at the destination, and the order should be exempted from it.

    Question: does the EU VAT Assistant check the order totals and apply VAT exemptions as needed?

    Answer
    The short answer to this question would be that the EU VAT Assistant doesn’t perform this kind of check, but it’s possible to introduce them with a simple filter.

    As we explained in other threads, and as described on the plugin page, we wrote the EU VAT Assistant specifically to handle the VAT MOSS regulations, which apply to digital products. The aspects related to the sales of physical goods, such as different VAT regimes depending on the delivered goods, are outside the the plugin’s scope. Due to that, the EU VAT Assistant won’t check the cart totals, nor apply an exemption if the cart total is above a certain amount (e.g. 135 GBP for the UK, or 150 EUR for the EU).

    We’re working on a solution that will replace the EU VAT Assistant, which will include better support for physical goods. In the meantime, special rules can still be handled with some custom filters, which can be used to apply a VAT exemption when the cart total is over a certain amount.

    How to calculate the order totals for the VAT exemption
    Based on the documentation we have received, the thresholds after which an order should be shipped without VAT are 150 EUR for EU countries, and 135 GBP for the UK. One aspect that caused confusion is what elements of an order counts towards the calculation. Different sources report different information, therefore we rely on official sources.

    Both the EU and the UK rules indicate that the order total should be calculated on the intrinsic value of the goods being sold, excluding shipping costs and insurance. Based on our understanding, the intrinsic value also excludes discounts applied to the order, as the discount doesn’t reduce the actual value of the goods.

    Based on the above, the formula to calculate the order total, to apply the VAT exemption, would be the following:
    cart total before tax and discounts - shipping costs - insurance costs

    Below are some examples of filters that calculate the order threshold based on the above assumption, and set a VAT exemption when such a threshold is exceeded.

    Snippet #1 – Apply a VAT exemption when selling goods worth more than 150 EUR to EU customers

    
    /**
      * Apply a VAT exemption for orders shipped to EU countries, whose value is above 150 EUR.
      * 
      * @param bool $customer_vat_exemption
      * @param string $vat_country
      * @param string $vat_number
      * @return bool
      */
    add_filter('wc_aelia_eu_vat_assistant_customer_vat_exemption', function($customer_vat_exemption, $vat_country, $vat_number) {
      if(!$customer_vat_exemption && \Aelia\WC\EU_VAT_Assistant\WC_Aelia_EU_VAT_Assistant::instance()->is_eu_country($vat_country)) {
        // Calculate the cart total threshold of 150 EUR to the active currency
        // @link https://wordpress.org/support/topic/faq-eu-vat-assistant-and-multiple-currencies/
        $cart_total_threshold = apply('wc_aelia_eu_vat_assistant_convert', 150, 'EUR', get_woocommerce_currency());
        
        // If the cart subtotal is above 150 EUR, apply a VAT exemption. The subtotal
        // is the sum of the price of each product, excluding VAT. This subtotal does
        // not include shipping costs, unless they are part of the product prices (in
        // which case, they do count towards the threshold).
        if(WC()->cart->get_subtotal() > $cart_total_threshold) {
          $customer_vat_exemption = true;
        }
      }
    
      return $customer_vat_exemption;
    }, 50, 3);

    Snippet #2 – Apply a VAT exemption when selling goods worth more than 135 GBP EUR to UK customers

    /**
      * Apply a VAT exemption for orders shipped to the UK, whose value is above 135 GBP EUR.
      * 
      * @param bool $customer_vat_exemption
      * @param string $vat_country
      * @param string $vat_number
      * @return bool
      */
    add_filter('wc_aelia_eu_vat_assistant_customer_vat_exemption', function($customer_vat_exemption, $vat_country, $vat_number) {
      if(!$customer_vat_exemption && ($vat_country === 'GB')) {
        // Calculate the cart total threshold of 135 GBP to the active currency
        // @link https://wordpress.org/support/topic/faq-eu-vat-assistant-and-multiple-currencies/
        $cart_total_threshold = apply('wc_aelia_eu_vat_assistant_convert', 135, 'GBP', get_woocommerce_currency());
        
        // If the cart subtotal is above 135 GBP, apply a VAT exemption. The subtotal
        // is the sum of the price of each product, excluding VAT. This subtotal does
        // not include shipping costs, unless they are part of the product prices (in
        // which case, they do count towards the threshold).
        if(WC()->cart->get_subtotal() > $cart_total_threshold) {
          $customer_vat_exemption = true;
        }
      }
    
      return $customer_vat_exemption;
    }, 50, 3);

    Question: What about Northern Ireland? Should the VAT exemption be applied when selling to it?

    Answer
    It is our understanding that there are two different regimes applicable to customers from Northern Ireland.
    1. Sellers from the UK and the EU apply VAT as they do normally, without thresholds.
    2. Sellers from outside the UK and the EU apply VAT to orders whose value is under 135 GBP, and a VAT exemption when the amount is above.

    The main challenge arises from the fact that Northern Ireland is not an actual country, but it’s part of the UK. Due to that, there isn’t a specific country code assigned to it. It should be possible to cover this gap with as follows:

    1. Use the following code snippet to make Northern Ireland a separate country:

    
    add_filter('woocommerce_countries', function($countries) {
      // "XI" is a special ISO code assigned to Northern Ireland. It can be used to handle that area as 
      // a separate country. It's also possible to validate VAT numbers starting with XI using the VIES system
      $countries['XI'] = __('Northern Ireland', 'woocommerce');
      return $countries;
    });
    

    2. Go to WooCommerce > Settings > Tax and edit the appropriate tax classes, adding a VAT rate for country code “XI”.

    This setup should be sufficient for sellers from the EU and the UK, and will have the following effect:
    1. Northern Ireland will appear in the list of countries at checkout
    2. WooCommerce will apply the corresponding VAT to the order, automatically.
    3. Customers from Northern Ireland will be able to enter their VAT number, starting with “XI”, and get a VAT exemption.

    Sellers from outside the EU need to perform an additional step
    Since Northern Ireland has its own ISO code, the snippet written for the UK has to be changed slightly to take that into account. The following snippet applies an exemption for orders over 135 GBP shipped to the UK or Northern Ireland:

    Snippet #3 – Apply a VAT exemption when selling goods worth more than 135 GBP EUR to customers from the UK and Northern Ireland

    /**
      * Apply a VAT exemption for orders shipped to the UK and Northern Ireland, whose value is above 135 GBP EUR.
      * 
      * @param bool $customer_vat_exemption
      * @param string $vat_country
      * @param string $vat_number
      * @return bool
      */
    add_filter('wc_aelia_eu_vat_assistant_customer_vat_exemption', function($customer_vat_exemption, $vat_country, $vat_number) {
      if(!$customer_vat_exemption && (in_array($vat_country, ['GB', 'XI']))) {
        // Calculate the cart total threshold of 135 GBP to the active currency
        // @link https://wordpress.org/support/topic/faq-eu-vat-assistant-and-multiple-currencies/
        $cart_total_threshold = apply('wc_aelia_eu_vat_assistant_convert', 135, 'GBP', get_woocommerce_currency());
        
        // If the cart subtotal is above 135 GBP, apply a VAT exemption. The subtotal
        // is the sum of the price of each product, excluding VAT. This subtotal does
        // not include shipping costs, unless they are part of the product prices (in
        // which case, they do count towards the threshold).
        if(WC()->cart->get_subtotal() > $cart_total_threshold) {
          $customer_vat_exemption = true;
        }
      }
    
      return $customer_vat_exemption;
    }, 50, 3);

    The above should be sufficient to cover all the scenarios that we have been described.

    • This topic was modified 1 year, 1 month ago by Diego. Reason: Formatting
    • This topic was modified 1 year, 1 month ago by Diego. Reason: Fixed title
  • The topic ‘FAQ – OSS/IOSS regulations from the 1st of July, 2021 (Updated 1st July 2021)’ is closed to new replies.