Mini-rant about Stripe and EU VAT

I’ve been investigating changing from FastSpring to Stripe for payment processing. Stripe’s basic examples are elegant, and easy to implement, but…they seem to pretend the whole EU VAT issue doesn’t exist.

I wrote to Stripe asking if they could point me toward an example workflow of using Stripe that handles EU VAT. Their response was a combination of “we don’t offer that feature” and “that is something your developer can take care of.”

Unfortunately here in the Spain we can’t be so cavalier towards the need to have a workable solution for determining the user’s country and collecting the corresponding VAT.

If anyone does have an ideal workflow for using Stripe AND dealing with VAT, I’d be happy to hear about it!

Hi Steve,

I’m also from Spain, and I’ll use Stripe for my software. Currently, my software is targeted to the local market, so I’ve build it only for charging to spanish users, but I’ve designed all the workflow for international users.

IMHO, the best workflow is: User enters payment details (name, address, country, etc), you validate it, calculate the final price, and then the Stripe payment form is shown.

The important part is calculating the final price. As you may know, you have to charge VAT to all EU residents that haven’t a VAT Id. Also, for validating how much VAT you have to charge, you need at least two “proofs of origin”. They can be the address, the IP (using geolocation), the credit card number, among others. I’ve used the customer’s address and the computer IP. As you may know, you can’t have the credit card number, because if this number “touches” your server, you must comply the PCI regulations.

Now you have the customer address (country) and his IP. If the IP belongs to the same country as the address, you only have to lookup to a DB table storing the country and the VAT % to apply to the price and calculate the final price.

If the customer has a VAT Id, you should validate it using the VIES VAT Validation service (, or something similar. If the validation is correct, you have to apply a VAT of 0% (AFAIK, in the invoice must appear the 0% VAT line).

And that’s all! It seems a lot of work but, IMO, it’s not so hard… The hard thing is to “imagine” the correct workflow and understand VAT rules. But because in Spain entrepreneurs should always charge and declare VAT, we are used to this! :wink:

I hope this helps you. And if you have any suggestion about how to improve the workflow, please share with us! :slight_smile:

1 Like

Bit of a shameless plug but if you’re looking to handle EU VAT with Stripe this is something SendOwl handles out the box. Whether it’ll fit into your needs will depend on what you’re looking to sell/give access to/your buyer flow. But any questions do please let me know.

Our guide on EU VAT management can be found here

1 Like

And if they have a VAT ID and are in the same country as you, you do have to charge VAT (which they can claim back).

VAT is such a mess! I am more than happy to let Avangate handle it.

1 Like

I handle it by declaring all prices “Tax included”. Which means that the invoices will always total to the same amount, no matter where the customer is located.

Based on the origin and VAT ID of the customer there is some VAT included on the invoice or not. The invoices are generated by and they handle all the european VAT rates out of the box.

For sure this means that the final price and income (after tax) vary from customer to customer. This system works however well for me because more than 90% of my customers are businesses outside the EU. And out of the ones located in the EU, only 2-3 are in the same country and do actually need to pay VAT.

Online taxes are definitely a pain and getting worse. Australia is going to apply GST (our VAT) to intangibles (downloads, software, content, services, etc) and abolish the GST free threshold for overseas purchases from 1 July 2017. Suppliers will become liable for collecting 10% GST on items sold to consumers but not businesses (which is odd because businesses normally pay and claim back GST)

Depending on what I read you may be exempt if your turnover is less than $70k/year (which is the threshold for GST registration here) but that applies to your total business so if you’re over that and you make one sale into Australia you become liable for GST.

1 Like

Thanks for the responses.

The reason why I’m considering changing from FastSpring:
A) they only track payments in USD.
B) 70% of my customers are in the eurozone.
C) I’m in the eurozone.
D) The currency conversion rates used by FastSpring are high, almost punitively so.

A + B + C + D together mean that 70% of my sales incur a 3.7% currency conversion fee + 4.9% FastSpring commission + US$0.95 FastSpring commission + a vague, variable currency conversion fee = roughly 12% of the pre-tax price.

So I’m thinking it is time to fix that leak in my company’s sales. Even if I lose the pleasure of having another company take care of all the VAT hassles.

1 Like

Even if I lose the pleasure of having another company take care of all the VAT hassles.

Well, this is one of my “internal discussions”… Handling VAT is a bit messy, and external companies like FastSpring or Avangate do all the hard work for you… But, on the other side, if you build it “handmade”, using Stripe or another payment processor, there is more work but you can do more customization… But, on the other side, “full-stack” payment companies are more used to this processes, and they know problems, tips and tricks that you still don’t know…

It’s difficult, it’s really difficult to take a decision…

1 Like


Looks really good. I valued your VAT guides.

I’ve taken more or less the same approach as @mcasas - I’ve got a custom user registration and billing details system that will record the purchaser details and then calculate the correct total before displaying that to them and letting them pay by PayPal or Stripe.

A few disadvantages:

  • Its bit of work to set it setup
  • Legally you need to advertise the price, including VAT, to the user - but how you can do this before you have the information required to know what VAT rate to charge them, and if they even need to pay VAT I have absolutely no idea. I show a “VAT will be added at checkout if applicable” message and then clearly show the price at checkout before any card information is entered.
  • Needing to know the VAT rates of all member states. This one drives me crazy. There should be an official EU API published for this. Technically if you charge the wrong rate there can be an “unlimited fine” (likely you’ll just need to pay the difference, but still…) so if a member state changes and I don’t realise… There are unofficial APIs but there needs to be a central one. Its crazy that there isn’t. I’ve ask HMRC’s API team about it here in the UK and they didn’t sound too interested.
  • If your product falls into a reduced rate or super reduced rate (unlikely, but possible) you need to know about that. Only want of knowing that is to read through the VAT guidelines for member states and each one is different.

VAT is an absolute mess imho.

1 Like

Hi Steve! I built Quaderno to deal with this issue. It’s a billing API on top of some popular gateways like Stripe, Braintree or PayPal. You just need to connect your Stripe account and every time you get paid, we automatically create and send a valid VAT invoice to your customer.

We’re also based in Spain and we sell digital products, so we know pretty well how taxes work in the EU. Let me know if you have any questions. Happy to help.


Quaderno looks really good.

1 Like

Hello, Steve! Stripe is indeed a pretty good option, given the simple & easy to integrate service, but it tends to lack in terms of more advanced features and benefits for business management. If you are looking for a long-term efficient solution we suggest you take a look at what other companies in this industry can offer you and pick the most balanced service for you.
A good example of such providers is PayPro Global – a truly global ecommerce solution designed especially for software, online services and digital products vendors. Our services & API completely cover the new EU VAT regulations and we have automated a lot of the time-consuming financial aspects of online sales. We understand the extra hassle these aspects generate and so we’re offering all our customers reliable tools and specialized support to successfully manage them.
If this sounds like an interesting alternative for your business we’d be happy to take our discussion further so don’t hesitate to contact us.
Good luck!

Hi Steve , old 2015 thread , but was curious what VAT + payment processing setup you ended up with ?

Stripe + Quaderno. Quaderno’s VAT-aware checkout offers what Stripe should be offering.

1 Like

18 months later and Stripe check out is still not VAT aware. Its a useless tool for anyone selling to more than one country. Such a shame the rest of it is great. Steve the tip on Quaderno was a lifesaver for me and its just what I needed. Txs

1 Like

when I asked Fastspring what their actual currency fees were - they would not tell me, nor would 2checkout - these companies are ripping their customers off on exchange rates… no wonder they didn’t want to say. I am using revolut to handle the banking / currency conversions all at midmarket rates - no margin just a modest monthly fee. Sell in USD /EUR and convert back to GBP at no markup.

I recommend checking out Paddle as an alternative to FastSpring and 2checkout. Especially if you are in the UK or the Eurozone.

I’ve just discovered this discussion and I’m curious — when you say “EU VAT”, do you mean selling to individuals (VAT MOSS)?

Selling to businesses is fairly straightforward (reverse charge), and mostly involves making sure that your invoices have the right numbers and the right incantations (Poland is annoyingly strict as to invoices). I use Braintree and my own invoicing system, as I couldn’t find any online service that would issue correct invoices.

VAT MOSS is a catastrophe and I haven’t found anyone who manages it for you correctly. Everything I looked at was either outright incorrect or skimmed over details. It’s one of the main reasons why I do not sell B2C subscriptions, only B2B.

when you say “EU VAT”, do you mean selling to individuals (VAT MOSS)?

When I started this thread in 2015, I was selling to consumers. So yes, I mean to individuals.

Quaderno does a great job of this.