vendure-ecommerce / vendure-plus-issues

Report issues on Vendure Plus plugins here
0 stars 1 forks source link

EU compliant single purpose vouchers #9

Open koljam opened 1 year ago

koljam commented 1 year ago

Single purpose vouchers for gift cards in the EU are subject to VAT at the time of purchase if the tax rate of the final purchase is known, while multi-purpose vouchers are only subject to VAT when used to purchase taxable goods or services.

I wrote a "small essay" on this topic in this issue over here. Quoting from there:

Multi-purpose vouchers should work with the current implementation. They are similar to how gift cards used to be handled: a form of (down-)payment. Single-Purpose vouchers on the other hand come with more problems:

There is a really lengthy discussion over at Shopify regarding this issue. They don't seem to handle single-Purpose vouchers yet.

When using gift cards as a payment method, the total tax amount doesn't get reduced. And since we already paid tax when the customer bought the gift card, we end up paying tax twice.

I think the best option would be to handle gift cards by adding them as a special line item, which has a tax rate (the same tax rate, that has been used for buying the gift card). By setting the tax rate for the gift card you decide between single-purpose vouchers and multi-purpose vouchers. Multi-purpose would probably be the way to go for people outside the EU.

Another benefit of using lines: This should work with any payment plugin, invoices, bookkeeping etc. without the need of additional customisation since they all use lines.

michaelbromley commented 1 year ago

Hi Kolja, Thanks for the research you have done on this topic! Unbelievable that a platform the size of Shopify still doesn't get this right.

So that I understand this right: your suggestion is to implement gift card payment as a negative OrderLine, rather than a payment method as it currently is?

If so we could perhaps use the existing Surcharge mechanism.

koljam commented 1 year ago

Yea it boggles my mind...

Yes, using surcharges should work. The most important thing is, that the gift card needs to reduce the taxable amount - like a discount.

The easiest way would probably be to add a surcharge with the same tax rate which was used when buying the gift card. I will write out a quick calculation, also for myself because I still find it difficult to wrap my head around this stuff:

Single Purpose Voucher

Transaction 1 Product: Gift Card Value: 100€ Taxrate: 19% VAT: 19€

Transaction 2 Product: Bike Value: 150€ Taxrate: 19% VAT: 28.5€

Surcharge: Giftcard Value: -100€ Taxrate: 19% VAT: -19€

Total: 50€ Including: 9.50€ VAT Total amount of tax paid by seller: 9.50€ + 19€ = 150€ * 19% = 28.50€

Multi Purpose Voucher

Transaction 1 Product: Gift Card Value: 100€ Taxrate: 0% VAT: 0€

Transaction 2 Product: Bike Value: 150€ Taxrate: 19% VAT: 28.5€

Surcharge: Giftcard Value: -100€ Taxrate: 0% VAT: 0€

Total: 50€ Including: 28.50€ VAT Total amount of tax paid by seller: 28.50€ = 150€ * 19%


Does this calculation check out with the current price calculation strategy and with the tax line strategy? If yes, using negative surcharges should work for both kinds of vouchers.

michaelbromley commented 1 year ago

I think your tax calculations might be off. Some examples of correct calculation:

VAT rate price ex VAT price inc VAT note
20% 100 120 price inc VAT = 100 * 1.2
20% 83.33 100 price ex VAT = 100 / 1.2
19% 84.03 100 price ex VAT = 100 / 1.19

So in your example transaction 1, if the gift card value is EUR 100 @ 19% VAT, then the ex-VAT price is 84.03 and the VAT part is EUR 15.97.

koljam commented 1 year ago

Oh no, yes, I did it the wrong way around 🤦‍♂️

Gift Cards VAT rate price ex VAT price inc VAT VAT
Gift Card (Single Purpose) 20% 100 120 20
Gift Card (Multi Purpose) 0% 120 120 0
Transaction 1 VAT rate price ex VAT price inc VAT VAT
Bike 20% 300 360 60
Surcharge Gift Card (SP) 20% -100 -120 -20
Total -- -- 240 40

or

Transaction 2 VAT rate price ex VAT price inc VAT VAT
Bike 20% 300 360 60
Surcharge Gift Card (MP) 0% -120 -120 0
Total -- -- 240 60

Using the (hopefully) right numbers I come to the same conclusion.

michaelbromley commented 1 year ago

I'll need to spend some time to explore how it could work to implement the gift card payment as a negative surcharge - there will possibly be some unforeseen edge-cases this creates which need to be investigated.

In the mean time, did you ever consider the "just sell a book" hack to make it so that you can legally offer multi-use vouchers?

koljam commented 1 year ago

Hey Michael, yes I will probably do that. Also I will probably wait with my launch until 2.0.0 is out so I get a fresh new start.