Using Stripe to charge VAT

Hey everyone, is anyone on the forum using Stripe to charge VAT?

I’ve come to the point in my own ecommerce app,, where I need to handle (or consider at least) this and I’ve yet to hear of anyone successfully doing so.

I’ve heard of, but this isn’t useful to me where I allow users to sell their own products, as I need to display the correct breakdown of VAT prior to checkout. Similarly, I’m aware that has better VAT handling, but doesn’t entirely cover all cases (where VAT may be reduced in the EU for example).

Anyone able to offer any insight?

We deal with the VAT calculations, checking the EU VAT numbers and so on on our side and then pass the correct amount to Stripe.

I know lots of boring things about VAT, so happy to help on specific questions.

Thanks @rachelandrew. Glad to hear somebody in the UK is doing what I need to.

With regard to checking VAT numbers, are you using the VIES VAT number validation tool or have you implemented checks your side using some other method?

I want to allow my merchants to specify what product type they’re selling and calculate the VAT using the rates appropriate for that product. I’d imagine this isn’t a concern for you given Perch is presumably classed as a software product and therefore the VAT rate you’re only ever interested in is that of software?

I notice that you’re displaying the charges in $, £ and €. Are you using the exchange rates published by HMRC for these calculations?

The VIES thing is pretty flaky so we’ve started using this: it helps deal with the unreliability of the underlying service. We were getting a tonne of support requests due to failed VAT number lookups before switching and they have now gone way.

Yep we only need to worry about software. Are you aware of the EU VAT changes coming in?

We fix our prices but use the Stripe rate as our reporting rate as they do the transfer from USD, EUR to GBP. We had to make a request to HMRC to ok our use of Stripe’s rate. It took about a month to get approval but what it means is that we don’t have to account for any difference in exchange rate when reporting, which makes life a bit simpler.

1 Like

Thanks for the pointers on changes in EU VAT. That’s frustrating - so where previously if you were under a threshold you didn’t have to register in each state, now you do for digital supplies? Yay!

Forgive my ignorance, but I’m just learning about VAT: when do you do the validation? Do you validate first and then zero-rate B2B EU sales if they have a valid number, or do you charge them VAT anyway and then validate after the sale for your/HMRC’s records? I presume the answer won’t change with the new rules in 2015?

As I understand it, you validate prior to sale in order to confirm that you don’t have to charge VAT. Otherwise, I would think there’s little point in checking the number if you’ve already made a sale against it.

If you register for the one stop shop you don’t need to register in each state. I think we can register from October.

If you want to zero rate them then you need to validate first as you have to submit the VAT numbers as part of your EU VAT report each quarter, they won’t go through if they are not valid and so you would be liable for the VAT.

Thanks - that makes sense.


I’m in the same boat as well, accepting USD, EUR and GBP while charing VAT. However, I use the HMRC published exchange rates as I found them to be quite convenient - and recently published a JSON API to them :-). It does mean tracking two exchange rates (the one for VAT and the one for what hits your bank account in GBP), and possibly taking a hit on the difference between the published VAT rate and the conversion rate from Stripe, but it was fairly simple to set up.

Like @rachelandrew I’ve got my software setup to deal with the VAT, so I simply give an figure to Stripe and they deduct that from the card. The invoice then shows the breakdown.

Interestingly I’ve only ever once had the VIES API flake out on a customer - but perhaps I’m just not trading enough units to hit a problem ;-).

I haven’t got my head around the changes coming in the new VAT rules yet, but more than happy to answer any questions I can if you have any as well.


My main query was to whether there was a one stop shop for implementing VAT on top of Stripe for ecommerce type situations.

Ideally I’d like to be able to allow my merchants to specify the types of item they are selling and have the “magic VAT software” determine if VAT was applicable for their product type / supply / destination country and at what level. My guess is at this point such software doesn’t exist.

I’m not aware of any, but to be honest I didn’t look too much. I’m a library author at heart so have a habit of just writing stuff when it is needed (and then wondering what happened to the last month…).

There are some services that sit on top of Stripe, so there might well be libraries or services that do it.

I’m currently trying to figure out how to know what VAT rate to charge when the new rules come in. I’m not fancying trawling through the VAT documentation for the member states…


Ah, come on, it’s easy. Just codify this 29 page long table of rules and exceptions and you’re done:


Edit: on a more serious note - would VAT calculations work “as a service”?

I’m hoping the “one stop shop” will include that information in an easily consumable format. We’ve already updated our systems to be able to charge the correct % for each country. I’m hoping there will be some easy way to grab the current data and be alerted if anyone changes their rate.

If I find out anything I’ll post back here - I think it is October when we can register for the one stop shop so hopefully things will become clearer.

Ha, I have that document locally and pondering the same thoughts.

With regard to doing VAT calculations as a service - I don’t know that it would. After all, once you know whether VAT applies in a particular type / supply / destination situation then there’s no further need to query that information for sometime. You could buy access to such a service and then query every country you’re going to deal with and cache the results until the VAT rules change. Admittedly then you wouldn’t have any support, but still. Probably works better as a downloadable piece of software.

VAT calculation as a service sounds attractive, but I have no idea how you would go about writing an API interface for the massive range of VAT rules. Could be a mammoth URI!

I’ve pinged HMRC a question about this and I’ll update here with what they say. The MOSS document also suggests that there might need to be a new way of calculating the exchange rate for VAT (use the value at the end of the quarter as published by ECB). I’ve queried that as well.

Running a business is easy. Until you have to deal with VAT across borders…


The service I imagine would allow to submit the customer’s country and a price value - and you state if this is the net price (what lands in your pockets) or gross price (what the end user has to pay). It would then send back the VAT percentage and amount and the other price (net or gross, what you originally did not submit) so you can use all the correct values in your invoices…
Request: country=DE&price=15.00&net=net
Return: vat_percent:19.00,vat_amount:2.85,net_price:15.00,gross_price:17.85

That request would assume that it is for a digital download of software being sold? As your link above shows VAT rates vary dramatically for the goods / services involved. As an example, the VAT rate for consulting or training provided electronically using the new VAT rules will be at the rate where the supplier has their business (place of supply). For a download purchase however the rate will be where the customer is. So the API would need to capture that potentially.

Any calculation API would need to capture a lot of fine detail to be 100% accurate, or be very specific about what it was providing rate information for.


Further to this - I’ve just been pointed to - seems to be a solution to the EU VAT compliance laws coming in in 2015.