Jump to content

EU taxes for digital products


Recommended Posts

Hi @kongondo,

I would be interested to know to what degree Padloper handles EU taxes for digital products, and what may need to be added by the developer. As I’m sure you know, this varies greatly depending on whether the seller is based in the EU or not, whether the customer is based in the EU or not, and whether it's private (without VAT number) or business (with VAT number).

There is this option »Charge EU Digital Goods VAT Taxes« in the tax settings. As far as I can see, this has no effect yet. Or did I miss something?

Is this still WIP? Or what are your plans?

Thanks!

Link to comment
Share on other sites

Hi @Jan Fromm,

5 hours ago, Jan Fromm said:

There is this option »Charge EU Digital Goods VAT Taxes« in the tax settings. As far as I can see, this has no effect yet.

It does have an effect, unless I recently broke something 😄. I've just tested the below and it works fine.

5 hours ago, Jan Fromm said:

to what degree Padloper handles EU taxes for digital products, and what may need to be added by the developer.

Currently this is limited to the following:

  1. A product has been designated as NOT taxable.
  2. The product is specified as a digital product.
  3. The Charge EU Digital Goods VAT Taxes is ticked.
  4. The customer country is IN the EU (proceed to #6).
  5. The customer country is NOT in the EU (proceed to #7).
  6. (EU Digital Goods) Tax will be charged on this product. (unless it is a manual order and the order or the customer has been exempted from tax).
  7. Taxes will not be charged on this product (unless it was specified as taxable in #1).
5 hours ago, Jan Fromm said:

As I’m sure you know, this varies greatly depending on whether the seller is based in the EU or not, whether the customer is based in the EU or not, and whether it's private (without VAT number) or business (with VAT number).

These complexities (at least currently) would have to be handled by the developer. I'm not sure that we currently have somewhere to hook into. I'll have a look.

Link to comment
Share on other sites

2 hours ago, kongondo said:
  1. A product has been designated as NOT taxable.

That was the trick. Thanks!

Assuming that only digital products are to be sold, would it be enough to only care about the tax rates of EU countries? The other countries could be created without tax rates, right?

2 hours ago, kongondo said:

These complexities (at least currently) would have to be handled by the developer. I'm not sure that we currently have somewhere to hook into. I'll have a look.

Fantastic. Thanks again.

Link to comment
Share on other sites

19 minutes ago, Jan Fromm said:

Assuming that only digital products are to be sold, would it be enough to only care about the tax rates of EU countries? The other countries could be created without tax rates, right?

Theoretically, yes. However, you would need to be aware of any laws similar to the EU Digital Goods regulations.

Not closely related, but I forgot to mention (and you are probably aware of this) that we also have tax overrides that can be applied per category of products or shipping.

22 minutes ago, Jan Fromm said:

That was the trick. Thanks!

Glad you got it sorted.

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

Hi @kongondo,

On 6/23/2022 at 6:55 PM, kongondo said:

These complexities (at least currently) would have to be handled by the developer. I'm not sure that we currently have somewhere to hook into. I'll have a look.

Have you been able to check this?

I am currently thinking about how I could add this functionality. My current idea looks like this:

1) Add new textfield »VAT« to custom customer form

2) Hook processCustomOrderCustomerForm and process VAT validation

3) Hook isChargeEUDigitalGoodsTax
At the moment, digital goods taxes are collected IF
1 It is set in the store settings AND
2 The customer is located in the EU AND
3 It is a digital product
This must be extended by
4 The customer does NOT have a valid VAT number, unless he is located in the same country as the shop owner.

Is this possible? There are some pitfalls for sure, but that would be my approach. Thanks further hints, ideas or doubts!

Link to comment
Share on other sites

9 hours ago, Jan Fromm said:

Have you been able to check this?

@Jan Fromm,

Sorry this slipped through the cracks!

9 hours ago, Jan Fromm said:

1) Add new textfield »VAT« to custom customer form

That would work..., yes.

9 hours ago, Jan Fromm said:

2) Hook processCustomOrderCustomerForm and process VAT validation

This could work. How do you intend to do the validation? I am asking to see where best to hook.

9 hours ago, Jan Fromm said:

3) Hook isChargeEUDigitalGoodsTax

Yes, good idea.

Link to comment
Share on other sites

2 hours ago, kongondo said:

This could work. How do you intend to do the validation? I am asking to see where best to hook.

@Jan Fromm. Just to add to my question, do you want to tell the customer if the validation fails?

Link to comment
Share on other sites

17 hours ago, kongondo said:

This could work. How do you intend to do the validation? I am asking to see where best to hook.

Probably with a SOAP call to the EU VAT Information Exchange System (VIES). 

14 hours ago, kongondo said:

Just to add to my question, do you want to tell the customer if the validation fails?

That would already make sense.

Thanks a lot!

  • Like 1
Link to comment
Share on other sites

Hi @Jan Fromm,

The Hooks are now ready per the latest release today (004). A demo implementation is here (demo 3) in the demo repo.

The hooks are (per demo linked to above):

PadloperProcessOrder::checkCustomOrderCustomerFormForErrors

This will allow you to reject business customer form and return it to them for amendment, .e.g., in case they stated they are a business customer but did not fill in the VAT number or VAT number is invalid. It is better to hook here instead of PadloperProcessOrder::processCustomOrderCustomerForm as it gives you early access to the form. Please have a look at the demo and let me know if you have any questions.

and

PadloperUtilities::isChargeEUDigitalGoodsTax

Please see the demo for an example. This will allow you to apply/exempt EU digital tax per line item in the order based on complex conditions as you state above. Note that this demo is not a robust solution compared to the VAT library you have linked to. For instance, the demo doesn't check for country-specific prefixes in the VAT number.

Please let me know if you have any questions.

Grab version 004 using your purchase link, per usual.

Thanks.

 

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...