VAT for non-EU e-commerce companies

I found the LINEPROPAL_UPDATE trigger.

I thought it didn’t existed because I didn’t see it in the demo triggers file.

This means that if you are a non-EU supplier of electronically delivered services, you did not have to charge VAT on supplies to EU customers.The proposed taxation framework contains a number of elements designed to make the operation of the tax as simple as possible and, in particular,to ensure that it is not disruptive or onerous for suppliers of digital services.The most important VAT area is the EU, and the application of the tax is more sophisticated there than in other countries.For cross-border fulfilment of goods we can advise you so that there are no or minimum hold-ups of goods at borders due to inadequate customs and VAT documentation or to avoid charge-backs so customers do not return orders due to unexpected VAT bills on deliveries.

Hi,

Sorry to open this dead topic but after all this time I was again looking of a solution regarding this subject and decided to test the SERVICE_ARE_ECOMMERCE_200238EC rule on the last stable version 3.2.3

Using this conditions:
- Company outside the EU with VAT Management as: VAT is not used.
- EU customer register as private individual
- Service created with 0% VAT

At first it didn’t work so I’ve moved, in the core/functions.lib.php the VAT Rule 6 to the first place and it worked, but only when the services are added from the list of services, if a new service is created on the invoice page, no VAT (customer country rate) is added.

When SERVICE_ARE_ECOMMERCE_200238EC is activated it’s not possible to create a new or edited any service or product, the page doesn’t finish loading.

After talking with a lawyer friend, the conditions for the SERVICE_ARE_ECOMMERCE_200238EC rule should be:

- In the company VAT Management: VAT is not used
This rule only applies to non-EU companies, companies that by default do not need to charge VAT.

AND

- Customer is in the EU and does NOT supply a valid VAT ID (checked when the customer account is created and using the EU VAT checker service)

A valid VAT ID tells us that the customer is able to do VAT returns in his own country, this way no VAT needs to be charged.

Hope this information is helpful in any way.

Thank You

When you say “When SERVICE_ARE_ECOMMERCE_200238EC is activated it’s not possible to create a new or edited any service or product, the page doesn’t finish loading.”, can you provid more info on step you do to edit ? which menu entry you used, button, etc. I can’t reproduce problem.

For the rule into functions.lib.php, the rule you describe for SERVICE_ARE_ECOMMERCE_200238EC is:
- In the company VAT Management: VAT is not used
This rule only applies to non-EU companies, companies that by default do not need to charge VAT.
AND
- Customer is in the EU and does NOT supply a valid VAT ID (checked when the customer account is created and using the EU VAT checker service)

It seems it is what we do into function with test
“if (! $thirdparty_seller->isInEEC() && $thirdparty_buyer->isInEEC() && ! $thirdparty_buyer->isACompany())”

So what i understand is that i only need to move the rule 6 at begin of function. Right ?

This is what I did:
1.
Dolibarr was setup with a non-EU company and where VAT is used (after thinking about this VAT must be enabled, I’l explain it later)

I’ve created a zero VAT rate for the company in the VAT rates table.

I moved the VAT rule 6 to first place in core/lib/functions.lib.php

I’ve activated the SERVICE_ARE_ECOMMERCE_200238EC switch.

When I try to create a new service or product I get this error (img1.jpg)
Fatal error: Call to a member function isInEEC() on a non-object in E:\Users\LD\MyApps_nbprojs\dbarr\htdocs\core\class\html.form.class.php on line 3006

To create a service I have to turn the SERVICE_ARE_ECOMMERCE_200238EC switch off.


The conditions for the VAT E-Commerce rules be aplied should be:

- A Non-EU company supplier with VAT enabled
AND
- A EU Customer (company or private) that doesn’t supply a valid VAT Number (this could be made, for example, by adding a “Valid VAT Number” checkbox close to the VAT number field on the “New Customer” form) this way when a new customer is added and after the VAT number is checked by the VIES service as valid, this rule and VAT shouldn’t charged.

For the supplier company VAT must be used because so the TAXES modules can be used. All VAT amounts must be returned every 3 months to the tax office where the company is registered and the reports must be sent by EU country. A new kind of report should be added in this module too (when the switch is active), where the VAT amounts should be listed by EU countries, something like:

Country | Total Sales with VAT charged | VAT rate charged | Total VAT amount

Than you once again.

You’re right. I think i have found and fixed bug into dev branch.
Hoping with 3.3, we will be closer of target.

Ok thank you!

I’ve install the last dev and it’s working when adding services but I’ve tried with the members module and after I created a new member, and validated that member I’ve tried to link it to a dolibarr third party already created and I got this error:

( ! ) SCREAM: Error suppression ignored for
( ! ) Xdebug: user triggered in E:\dbarr\htdocs\core\lib\functions.lib.php on line 2164
Call Stack

Time Memory Function Location

1 0.0036 493208 {main}( ) …\fiche.php:0
2 1.1114 5704664 CommonObject->getCanvas( ) …\fiche.php:68
3 1.1117 5705088 dol_print_error( ) …\commonobject.class.php:1990
4 1.1138 5730008 xdebug_print_function_stack ( ) …\functions.lib.php:2164
Dolibarr has detected a technical error.
This is information that can help diagnostic:
Date: 20130114111134
Dolibarr: 3.4.0-alpha
Level of features: 0
PHP: 5.4.3
Server: Apache/2.2.22 (Win32) PHP/5.4.3

Requested Url: /dbarr/adherents/fiche.php
Referer: http://localhost/dbarr/adherents/fiche.php?action=editthirdparty&rowid=1
Menu manager:

Database type manager: mysql
Request for last database access in error: SELECT rowid, canvas FROM llx_adherent WHERE entity IN (1) AND rowid = 1
Return code for last database access in error: DB_ERROR_NOSUCHFIELD
Information for last database access in error: Unknown column ‘canvas’ in ‘field list’

XDebug informations:
File: E:\dbarr\htdocs\core\class\commonobject.class.php
Line: 1990
Function: getCanvas

- The link to the third party is actually done and when a new subscription is created the invoice is also created in the third party associated.

I’m just mentioning this because I don’t know if this error might be related or not with the SERVICE_ARE_ECOMMERCE_200238EC switch being ON.

- Is there a way that the amount added in the new subscription form be considered only the subscription price without VAT? VAT should be added to this amount if VAT should be charged, like it’s done in services. (maybe adding a switch in the module setup: typed subscription prices include VAT? yes/no)

- Why is that a third party can only be associated with one member in the subscription module? For example, imagine a club where the father, mother and kids are members, all have their own membership card but all the subscriptions invoices should be issued to the father.

Thank you