magento / magento2

Prior to making any Submission(s), you must sign an Adobe Contributor License Agreement, available here at: https://opensource.adobe.com/cla.html. All Submissions you make to Adobe Inc. and its affiliates, assigns and subsidiaries (collectively “Adobe”) are subject to the terms of the Adobe Contributor License Agreement.
http://www.magento.com
Open Software License 3.0
11.48k stars 9.29k forks source link

Magento Tax system needs updating to support modern sales tax collection at point of sale for multiple tax systems. #31745

Closed gwharton closed 1 month ago

gwharton commented 3 years ago

Description (*)

The Magento TAX system needs updating to reflect modern Sales Tax collection at point of sale for multiple countries.

Expected behavior (*)

Countries worldwide are modernising their sales tax systems, shifting more towards collecting sales taxes at the point of sale for international sales, and requiring sellers to register for tax in multiple countries, rather than just collecting sales tax in their home country and relying on collecting sales tax at the point of import for international sales.

From 1st January 2021, every country in the world who sells goods to the united kingdom must now register with the UK government for VAT and collect sales tax (UK VAT) at the point of sale and remit this to the UK government. Whilst it is possible to setup a tax rule to cover this, the invoice needs to state the GB VAT ID, and not the tax id of the stores local tax system.

The same will apply from 1st July 2021 for all sales to the EU 27 countries. Any seller, selling goods to any EU country will need to register with a TAX office somewhere within the EU, and collect sales tax (The appropriate sales tax for the buyers country) and remit this to the tax office in the EU country where the seller registered. Again, tax rules can be used for this, but the VAT ID needs to be displayed for the invoices based on where the order is being sent.

Norway currently runs the same scheme when selling goods over a certain threshold from anywhere in the world to norwegian buyers, the seller must register for tax with the norweigan govt, and state your norwegian tax id on the invoices.

So it would appear that we need new functionality

  1. Instead of storing a TAX id for the whole shop, you should have a "Tax Registration" table where you can add the tax system name/tax Id/tax ID Label for each system that the seller is registered in.
  2. Be able to specify Tax Registration (from above) for each TAX rule, so the correct tax ID can be included on the invoice, depending on which tax rule was triggered. You should be able to have multiple tax rules linked to a single Tax Registration. 3 Should continue to work with existing VAT implementation for automatic detection of Intra-EU customers and auto group placement.
  3. Be able to specify the label aswell as the number as not everywhere uses VAT Number as the label, for example GST Reg No : VEOC Reg No : VAT Reg No :
  4. The correct TAX ID needs to be displayed on the invoice depending on where the product is going/which tax systems the seller is signed up to collect tax for/which tax rule is triggered.

Or do we just add all the VAT ID's to the invoice and let the buyer work it out!!!

Benefits

Improved support for the changing worldwide tax systems.

Additional information

m2-assistant[bot] commented 3 years ago

Hi @gwharton. Thank you for your report. To help us process this issue please make sure that you provided the following information:

Please make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce. To deploy vanilla Magento instance on our environment, please, add a comment to the issue:

@magento give me 2.4-develop instance - upcoming 2.4.x release

For more details, please, review the Magento Contributor Assistant documentation.

Please, add a comment to assign the issue: @magento I am working on this


:clock10: You can find the schedule on the Magento Community Calendar page.

:telephone_receiver: The triage of issues happens in the queue order. If you want to speed up the delivery of your contribution, please join the Community Contributions Triage session to discuss the appropriate ticket.

:movie_camera: You can find the recording of the previous Community Contributions Triage on the Magento Youtube Channel

:pencil2: Feel free to post questions/proposals/feedback related to the Community Contributions Triage process to the corresponding Slack Channel

gwharton commented 3 years ago

Also note the following article which summarises the changes.

https://www.dlapiper.com/en/us/insights/publications/2020/12/uk-vat-changes-sale-of-goods-to-customers/

gwharton commented 3 years ago

Worldwide selling to the UK must register with HMRC UK and collect UK VAT at point of sale for all transactions under 135GBP unless the UK buyer provides a valid UK VAT/EORI number. This is law as of January 1st 2021 . The invoice must include the sellers UK VAT Number. For sales where the buyer presents a valid UK VAT/EORI number then no VAT is charged and the invoice MUST include a declaration saying the VAT must be accounted for by the buyer by reverse charge.

Worldwide selling to the EU must register with an EU VAT office and collect the appropriate EU VAT for the buyers country at point of sale for all transactions under 150EUR unless the EU buyer provides a valid EU VAT/EORI number. This will be law as of July 1st 2021 . The invoice must include the sellers EU VAT Number. For sales where the buyer presents a valid EU VAT/EORI number then no VAT is charged and the invoice MUST include a declaration saying the VAT must be accounted for by the buyer by reverse charge.

It is likely that other countries systems may operate differently, so I recommend a plugin based "Tax Scheme" system where tax systems can be added.

e.g Norway VOEC, Australia GST are also law as of now, if certain sales thresholds are exceeded.

gwharton commented 3 years ago

Also note, that the VIES system will no longer validate UK VAT numbers, so the current system is not capable of putting UK buyers into a "No VAT" customer group. UK VAT numbers will need to be validated by https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/vat-registered-companies-api/1.0

chrome_tP42VqEcAq

This needs thinking about too. If the VAT validation (should be renamed to TAX validation in my opinion) is updated to support different tax schemes from different countries, then we need to rethink the "Valid VAT ID" groups and how this can work with existing intra EU stuff.

This is now a worldwide issue, not some niche EU/UK thing that can be ignored. Everyone worldwide, as of 18 days ago, has a need to validate UK VAT numbers and place customers into special group depending on validation result.

hostep commented 3 years ago

@gwharton: nice summary! Do we have some official documentation from some government or European legislation on this? The blog you linked to is not an official document. Not saying that it is incorrect but I think we need some kind of official documentation to make sure what we are implementing in Magento is correct to the letter of the law.

Also extra requirement:

So I don't know how accurate this is.

gwharton commented 3 years ago

Authoritative information for the UK can be found on the UK Goverment website here https://www.gov.uk/guidance/vat-and-overseas-goods-sold-directly-to-customers-in-the-uk

gwharton commented 3 years ago

And an article on the EU Commission website detailing the EU changes for July 2021. https://ec.europa.eu/taxation_customs/business/vat/modernising-vat-cross-border-ecommerce_en

gwharton commented 3 years ago

The two systems are pretty much the same, apart from the threshold value. They were both supposed to go live on 1st January, but because of Covid, the EU delayed for 6 months, but the UK still went ahead.

gwharton commented 3 years ago

https://github.com/gwharton/autocustomergroup

Interim solution.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed after 14 days if no further activity occurs. Is this issue still relevant? If so, what is blocking it? Is there anything you can do to help move it forward? Thank you for your contributions!

gwharton commented 3 years ago

FFS

devchris79 commented 3 years ago

Its not been our understanding that we must register with an EU VAT office from July, the VAT exemption of low value shipments (22€ or less) is removed at that point, but they importer will be contacted by the courier for fee collection (and probably apply a handling charge).

We ship worldwide and everything was pretty straightforward, unfortunately the changes in shipping have added a huge amount of work. DHL now require a mandatory EORI number among other things when shipping to European businesses, so this is going to have to be added to the website.

The EU allows VAT registering with a member state and VAT can be paid to the one point through the IOSS scheme for shipments up to 150€. The problem with IOSS is that you need to charge VAT at the destination countries VAT rate, in the case of the EU that means keeping track with 27 budgets....

in-session commented 2 years ago

Perhaps a solution: https://www.geissweb.de/eu-vat-enhanced-for-magento-2.html

One of the bigger problems I see here is that there should be a way to handle the taxes like a currency switcher, based on the country of delivery. In principle, the gross prices must correspond to the country of delivery, a multishop that offers 2 languages, for example, it is not possible to also set up the delivery countries with a storeview. Again, it makes no sense to create a storeview for each country. And it is not enough to adjust the prices to the respective country only in the shopping basket. The tax rates currently range from 17-27% on the gross price, so it is a losing proposition if the shop actually has 17% and sells to a country with 27%.

Example calculation with gross price: 1,000 USD / 17% Tax = 854.70 Net price 1.000 USD / 27% Tax = 787,40 Net price Makes a sales minus of -67.29 USD

Perhaps the easiest way to explain this is with the USA. If they decide that the effective prices with tax for the respective state must be displayed in the frontend for the customer. If I'm not mistaken, the VAT here is also between 0 and 10.5%. There should simply be a way to trigger the desired tax rate via the url parameter and thus update the prices in the frontendstore.

hostep commented 2 years ago

@sidolov: do you have any sort of update around this? We asked you a couple of times in the beginning of the year and you send it to some people that had to decide this. Is there already some news around this by now? Or are there any other people inside Magento/Adobe that we can try to contact around this?

gwharton commented 2 years ago

It must be a pretty crushing realisation that Magento does not yet support UK/EU/NO/AU/NZ taxes out of the box for a new user.

in-session commented 2 years ago

Magento will not be able to do everything internationally out of the box, for this, the use of modules is necessary to implement the respective countries. There are far too many different possibilities for this. I think many of the listed points are possible, for example, via an extension like this: https://amasty.com/shipping-suite-for-magento-2.html

The tax rates themselves can be inserted in the backend without any problems. Checking the VAT should also be no problem with the extension, like: https://www.geissweb.de/eu-vat-enhanced-for-magento-2.html https://swissuplabs.com/tax-vat-for-magento-2.html https://github.com/gwharton/autocustomergroup

The biggest challenge is the fiscal price presentation in the frontend, but maybe magento has an idea here?