Hi everybody,
I'm building a service (EU-based) with recurring subscriptions (B2B and B2C) using Stripe only, but I can't figure out how to handle tax rates and sending proper invoices, which is something Stripe is lacking of.
What’s the stack/tools you use in order to determine the right tax rate to apply (plus keep record of the pieces of evidence), vat/tax validation for B2B (and keep track of validation in case of tax control etc..), and in order to be compliant with invoices internationally (thus showing subtotal, tax rate also converted into the customer’s currency etc..) ?
Lastly, I would need to set thresholds in sales for countries like Australia, United States, Canada, Norway, South Africa, Switzerland, Japan and New Zealand, so in case to block those countries and not have to register there.
I’ve checked out soooo many SaaS businesses, also the big ones, and the majority doesn’t even ask for the customer’s country during the payment process. I wonder what they’re all doing to be compliant, if they are at all.
I’ve looked into Quaderno to try to cover all the issues, but I’ve encountered no other service using them and I do not like that my customers receive the invoice directly from a Quaderno’s email address, instead of mine.
I’m currently looking into Recurly and Chargebee that, for roughly the same price of Quaderno, offer much more, but haven’t figured out if they’re invoice compliant.
Thanks for the help 🙏
I'm going to assume you are selling a digital service.
A sales invoice within the EU needs to contain the following information:
Your business name, address and, if you have one, company incorporation number. If you are a limited company rather than a sole trader or a partnership, you also need to list your directors. This information normally appears at the bottom of the invoice in very small type. At the top of the invoice, space is usually given over to a company logo.
If you are VAT registered, you need to display your VAT number.
You need to display your customer's name and address (personal if B2C, business if B2B).
If selling B2B across EU boundaries, you can usually get away with not charging VAT if you know and display the customer VAT number on your invoice. However, rules are complex (goods and services have different rules) so read up on them. Also, if your sales are under the normal VAT threshold for your country but you make a single cross-border digital sale, you must register for VAT. There is, in the UK, a scheme called MOSS which is intended to simplify matters. Other countries may have similar schemes.
If selling B2C, you must charge VAT if you are VAT registered or you sell to another EU country.
By the way, you charge VAT at the applicable rate in the customer's country, not your own. So a UK company selling a digital service to a German customer must charge VAT at whatever the applicable German rate is, not the UK rate.
You need to show a unique invoice reference number for possible tax audit purposes and also so you can resolve customer disputes. You must show a tax point date which is normally the earlier of invoice date, payment or date of supply (the Government wants its pound of flesh ASAP).
You normally show a line item net cost, VAT element and gross cost. Alternatively, you can show an all-in price but, if you do, your Government will assume that the all-in price already includes VAT.
So:
Item £100
VAT £20
Invoice Total £120
Or
Invoice Total £120 - £20 VAT assumed and must be accounted for.
It's easier to split the elements out both to accommodate VAT rate changes and so you can put the net invoice amount in your sales accounts and the VAT element in your Sales VAT account so you know how much you owe. (Don't forget that, if you are VAT registered, you can usually reclaim the VAT charged to you by your suppliers so you need to track that separately as well. Each quarter you work out your sales VAT, deduct your purchase VAT and pay over / reclaim the difference).
That's pretty much an invoice absolutely must have. Anything else is down to you. Don't forget to use the invoice as a marketing tool in its own right with your logo, slogan, website address, contact details etc. displayed prominently.
All services like Quaderno do is know the current VAT rates and offer specialist help if you are not sure whether to charge VAT for your products or services. There's nothing in principle to stop youfrom building your own database table for invoicing and exporting your sales to a book-keeping program for your accountant to play with. Most book-keeping programs can accept imports in a variety of formats.
Services like Paddle essentially act as a reseller so the sales are made by them and they perform all the VAT / Sales tax returns to the relevant national authorities. They remit the net invoice money to you in return for a fee.
The reason that most big companies don't all do this is because there have been a lot fo changes to international sales tax rules to catch up with the age of the internet. Countries do not yet have direct means of catching those who don;t follow the rules but there may be indirect methods such as returns made to national governments by your payment processor. I don't know enough about that to know whether foreign governments really are advised of payments.
Thank you very much for you extensive answer Thomas. Many good and helpful information here.
I think in the case you do an all-in price you are still required to show the breakdown of net, vat rate, gross price.. https://ec.europa.eu/taxation_customs/business/vat/eu-vat-rules-topic/vat-invoicing-rules_en
Regarding VAT, I did also read online (http://ec.europa.eu/taxation_customs/sites/taxation/files/resources/documents/taxation/vat/traders/invoicing_rules/explanatory_notes_en.pdf) that you need to show in the invoice the vat amount in the customer's currency. Do you perhaps know about this and in case how do you handle it?
In your case, how do you collect and store all the pieces of evidence required for the VAT MOSS? Do you use an external app (e.g. Quaderno) or do you keep them in your database and export when needed as @mkarnicki suggested?
Same for VAT validation (if a customer is B2B or B2C), how do you validate VAT numbers and keep the records of your look up in the VIES database?
Not necessarily. From that same page:
Simplified invoice
Date of issue
Supplier’s VAT identification number
Type of goods or services supplied
VAT amount payable – or the information needed to calculate it
So you can create an invoice with an inclusive price and the words "includes VAT at x%" - which then provides enough information to calculate the amount of VAT payable.
Best practice is to show the VAT element separately just because it simplifies reporting for the supplier, the customer and the relevant tax authorities but, provided all parties can work out what the VAT element of an invoice is, you have complied with the law.
Re. your second reference document, the answer is "it depends". In the UK, if I were to invoice a German customer, I could choose either to send him a sterling invoice (which he would pay at whatever rate his payment processor converted at) OR I could choose to invoice him in euros.
The first case is easy. My accounting would be:
Balance Sheet
VAT Payable £20 debit
Customer Ledger £100 debit
Profit & Loss
Sales £100 credit
The payment would be:
Balance Sheet
Customer Ledger £100 credit (to clear the balance)
Cash : £100 debit (cash received)
If I chose to invoice my German customer in euros, however, then I would need to show the conversion rate I had used either directly on my invoice adn within my accounts when I recorded the invoice there.
I can use any reasonable means to convert the sterling into euros but I must be consistent and I may need to obtain the approval of my tax authority. In the UK, there are standard methods but the last time I worked in accounting (a long time ago!), my company used the spot rate in a national newspaper which was acceptable to HMRC and gave us an audit trail (pre-internet!).
So say I chose the daily spot rate for conversion, then I would write that up in my accounting procedures to say that is how I establish the rate.
For this example, I have just entered the sterling amounts into Google.
Sales €111.21 (£100)
VAT €22.24 (£20)
Total €133.45 (£120)
Note on invoice: Invoice converted from sterling to Euro @ spot rate £1 = €1.11 on 06-SEP-2018.
In MY books of account, I still record this as £100 sales, £20 VAT and a customer ledger debt of £120 because a book of accounts is only ever kept in one currency.
The VAT payable figure of £20 will be paid over to HMRC as part of my next VAT settlement (normally done quarterly).
When the customer pays, he will, of course, pay me in Euros.
Let's pretend that £1 now equals €1.3.
Let us also pretend that there are no other processing fees for this transaction. We are purely dealing with the settlement of the invoice.
Obviously I have to clear my customer ledger in pounds sterling. The customer does not owe me any money now he has paid what I asked him for.
So,my customer has paid me €133.45 but my bank has converted that at 1.3. There is thus a difference between the invoice (£120 = €133.45) and the payment (€133.41 now equals £156.00 instead of £120).
This is how you deal with it:
Balance Sheet
Customer Ledger : £120 - credit - clears the balance owed.
Bank: £156 - debit : this is how much sterling I received.
Profit & Loss
Currency exchange gains / losses account - £36 credit
If the currency movement had gone the other way, I would have posted the difference as a debit to my currency gains & losses account to reflect the fact that I had lost money on the exchange rate movement.
This page from the UK Government sets out the rules for the UK in somewhat clearer terms than your second document. I imagine the rules in other countries will be very similar.
https://www.gov.uk/guidance/foreign-currency-transactions-vat-and-tour-operators.
In my case, the question does not yet arise as I haven't launched my product yet. When I do launch (soon! soon!), I will be excluding EU customers until at least next April. It seems silly to me to become embroiled in MOSS for a small number of potential customers and then discover that the whole thing might change next year when the UK formally leaves the EU.
Once the position is known, however, I will simply design my database and business logic to make sure I am compliant and then raise my invoices as normal, generate the appropriate reports and file the relevant submissions / payments in accordance with whatever scheme is in place next year.
For me, customer VAT numbers are not an issue because I will be dealing B2C, not B2B. If you are B2B, then the usual procedure is to ask for the customer's VAT registration number, usually in the form of a scanned copy of their VAT registration certificate. You then enter this as a field in your customer record database and pull it out to print on each invoice for that customer.
This site shows you how to check a VAT registration number is valid: https://www.smallbusinesspro.co.uk/tax/vat-numbers.html
I've just realised that my link points to the same VAT registration database as yours!
So you're given a VAT number by your customer as well as an address. Enter the VAT registration number and see what comes up!
If a customer is a non-commercial customer, i.e., an individual, the question of their VAT registration number does not come up because they won't have one. They simply have to suffer the cost of the tax.
Many good points, solid comment Thomas. I just wanted to add:
You have to tell the country of the customer, but for B2C sales I believe you don't have to provide full address on the invoice. I don't have an article for you to point at, but the comment doesn't provide one to claim the opposite :)
For the record, VAT MOSS is a European wide program. If you're charging VAT and are not registered in VAT MOSS, you MUST register for VAT taxation in ALL of the countries in EU you provide services to. So... best to register in VAT MOSS, and make sure you can tell which invoices matches which incoming bank transfer, or you can say bye bye to your privilege of using VAT MOSS (which is roughly what Thomas said above). It's sufficient for one VAT audit to go wrong and you're kicked from MOSS.
I wasn't sure if MOSS operated in other EU countries so thanks for the clarification. I assumed there would be a similar scheme but didn't know if it would have the same name in other languages.
Governments are a right royal, parasitical pain in the arse.
Sure, no problem. Here's a link that might be useful to others:
https://europa.eu/youreurope/business/vat-customs/moss-scheme/index_en.htm
Cheers! Oh goodie! Bedtime reading!
You should use Chargebee. (Or an alternative like Recurly, but I only know Chargebee).
About the invoice compliancy. I’m not a lawyer. You can always get on a sales call or ask their support. As far as I know my invoices contain everything that they should.
It sits on top of Stripe and handles invoices and VAT like it should.
In this comment here on IH, @PatrickC said that they will handle VAT soon. It’s 2 months ago, I don’t know when it will happen.
At stackdraft.io I use Braintree (without PayPal integration) for card processing. Then I use https://invoiceocean.com/ via API to create the invoices. The users can download invoices from a long pseudo-random link in their billing settings, but you could also just e-mail them the attachment.
InvoiceOcean claims to take the burden of generating country-compliant invoices, so I don't have to worry about that, but I do use tax rates (also for VAT MOSS) purposes from the
https://github.com/mpociot/vat-calculator
package. (Laravel + Laravel Cashier + Laravel Spark [meh] with vat-calculator + InvoiceOcean).
For the record, this site
https://fakturownia.pl/
is the same as InvoiceOcean mentioned above, but because the product came from Poland, it's the same thing for lower price (global prices are simply higher).
I've also researched Quaderno, Recurly and Chargebee, but either their provision based fees were too high or eventually didn't fit my needs, so I went with partially custom solution, but still using a 3rd party to create those PDFs for me.
HTH,
Michal
May I ask why specifically not using PayPal?
Sure. I've read terrible, terrible reviews of PayPal support quality as well as PayPal in general. Many people have backed out of accepting PayPal, because there were too many chargebacks (probably many caused by fraudulent cards). PayPal also often blocks funds without notice and holds them god knows how long, while they investigate your case.
In general, even if I'm loosing 15% or so clients (made up percentage), I decided it'll give me peace of mind if I don't have to deal with PayPal directly. And Braintree support has been pretty amazing (although the Risk Review triggered after first purchase was... well, meh. I wrote about it in a different IH thread in detail).
That's very interesting thank you! Admittedly I have been using PayPal on one of my services for years and I never really had any problems. I guess I might have just been lucky(and with a low volume of transactions) because I did hear a lot of similar stories indeed.
I'm glad you haven't experienced issues with PayPal and let it stay that way :). I'm just too afraid to use it. If customers really pound on the doors and beg, I might change my mind. Until then, just staying on the safe side - purely based on opinions I've read online.
Lucky you, Simone :)
Hi Michal,
thank you very much for your answer.
So if I understood correctly, you use https://github.com/mpociot/vat-calculator to retrieve the data/tax rates etc and send them over to the invoice service. correct?
How do you store the pieces of information needed for VAT MOSS?
Do you also sell in countries outside EU where you need to charge and file taxes? if so, how do you handle that?
You're most welcome. Sure, let me follow-up with more details.
Yes, I use that package to determine:
if customer is a business & outside of EU - done, it's called "reverse charge", there's no tax (I'm no tax attorney, this may be a bit generalized and not cover whole world)
if customer is a business & inside of EU (but not in my country) - if they provide valid VAT identification number (can check if it's valid using vat-calculator, which talks to VIES system API) - done, it's also "reverse charge", there's no tax
if the customer is not a business and they're from EU, I apply the appropriate VAT rate (that I get from vat-calculator) and - correct - I submit that VAT rate, nett price, units sold, and whatever else required, to Fakturownia/InvoiceOcean via the API.
Assuming I pass correct data to the invoicing service, I trust whatever invoice they issue will comply with that country. (That's how I was sold on their service).
is it a business?
if so, what's their VAT/tax ID?
where are they from - I ask for billing address
confirm their location by fetching the credit/debit card metadata from Braintree (similar to Stripe, Braintree can tell you the country code of where the card was issued)
for VAT MOSS, you need to proofs of location. In my case, if billing address matches the card issuing country, I assume data is correct. If not, too bad - currently I don't collect more "proofs of location", this was already relatively complex to implement.
I store users billing address, VAT/tax ID, etc, in PostgreSQL database. I also replicate some of that info to Braintree. Actually I may remove that info from my system one day. While I trust my security know-how, it's definitely safe to store data in Braintree's "Vault" as they call it. Anyway... the credit card details are submitted via an iframe to Braintree, so they never touch my servers.
Once a month I generate a "VAT MOSS report" for my accountant by going through all issued invoices using the Fakturownia API. Based on that, they will tell me how much EUR I have to pay, via one transfer, and then that institution splits the taxes between proper EU countries.
Yes, I currently sell worldwide. For instance, I know that in.. I think Norway I would have to earn more than.. (can't remember) say 5000 EUR/mo to have to register for tax filling, so I'm not concerned about that right now. I haven't explored all worldwide countries so I wouldn't be surprised if there's 2 or 3 I may have to register for tax filings, but usually that happens after you reach some treshold.
I do my taxes and I want to do everything by the law, but in all honesty - I've seen large companies not following the law (hey splice.com, why don't you issue me invoices at all?), so while you should make sure you get things right, don't let yourself rip all your hair out on the way. Take it easy, step by step, and you'll get there.
Hope that answered your questions. Happy to discuss those "Other countries" if you have some news I should be aware of :).
https://europa.eu/youreurope/business/vat-customs/moss-scheme/index_en.htm
That's a good idea. I was also thinking of storing those information inside Stripe, maybe attached to any customer's receipt as metadata...so you can easily export them when needed.
Btw, I read online that you need to show in the invoice the vat amount in the customer's currency. Do you have any idea about this and in case how do you handle it?
Here’s my research for countries that need attention (not sure everything is correct nor complete)
Andorra = above 40.000 EUR (excl. VAT) for B2C
Australia = above 75000AUD (47.413 Euros) for B2C in a 12 month period (regardless of where the service is performed)
Bahamas = above 100000 Bahamian Dollars (BSD) (87.547€) on annual turnover for B2C and B2B
Belarus = no threshold for B2C (so registration required)
Canada = if the value of the taxable supplies made in Canada or outside Canada by the vendor and any associated entities exceeds 30,000 Canadian dollars (CAD) (20.076€) in the last four consecutive quarters or in a single quarter.
Colombia = no threshold for B2C and B2B (so registration required)
Egypt = above 500,000 Egyptian pounds (EGP) (24.422€) for B2C and B2B
Ghana = above 120,000 Ghanaian cedi (GHS) (21.797€) for B2C and B2B
Iceland = above 2million ISK (477.740€) for B2C
India = no threshold for B2C and B2B (so registration required)
Japan = 10 million yen JPY (referring to the 2 fiscal years prior to the current fiscal year) (79.000€) for B2C (it is not clear in japan what is considered B2C and what B2B)
Kenya = 5 million Kenyan shilling KES (42.366,71€) for B2C
New Zealand = 60000 New Zealand dollars NZD (34.729€) for B2C
Norway = 50000 Norwegian Krone (NOK) (5.158€) for B2C
Russia = no threshold for B2C (so registration required)
Serbia = no threshold for B2C (so registration required)
South Africa = 50000 South African rand ZAR (2.994€) for B2C and B2B
South Korea = no threshold for B2C (so registration required)
Switzerland = 100000 swiss francs CHF of worldwide turnover (87,946€) for B2C
Tanzania = no threshold for B2C and B2B (so registration required)
Thailand = 1800000 THB1 (Thai Baht) (47.704€) for B2C and B2B
For the United States I’ve researched the countries where a SaaS business could be taxed (if you do not have any physical presence there but could just run into economic nexus):
Connecticut = $250,000/year in gross revenue AND 200 or more separate transactions on the previous calendar year’s sales
Hawaii = $100,000/year in gross revenue, or makes sales into - Hawaii in more than 200 separate transactions in the previous or current calendar year
Massachusetts = $500,000 in sales over the preceding calendar year, and 100 or more transactions resulting in delivery into Massachusetts in the preceding calendar year
Pennsylvania = Sales into Pennsylvania that exceeded $10,000 in the previous 12-month period
South Dakota = Sales of $100,000 in South Dakota, or more than 200 transactions in the state in a calendar year
Tennessee = Sales exceeding $500,000 in the state in the previous 12 months
Utah = Sales of $100,000 or more in the state, or at least 200 individual sales transactions into the state in the current or last calendar year.
Washington = Sales of $10,000 or more into the state
Unsure about New Mexico and West Virginia as they do tax SaaS but I couldn’t find information on when economic nexus would be hit.
Hope this might be useful to you or anybody in need of such information.
That comment is golden. Upvoted.
You seem to be very serious about taxes worldwide, I sense your product is/will generate high revenue. In my case, looking at these numbers, I'm not afraid I'll break through the thresholds any time soon, so it allows me to focus on the product itself.
I have to admit I'm sad to see India, South Korea and Russia on the "must register" list, but unless I become some huge company, I can't see Indian government chasing me for VAT untaxed B2C invoices for a total of < $100/mo. Actually, this is more than my current global income (and I don't have customers in India yet), so you can tell why I'm not that worried haha :).
Regarding "you need to show in the invoice the vat amount in the customer's currency" - your invoice compliancy question is a great one in general. I don't display in customer's local currency, because this would involve yet another currency conversion and could reflect a different amount that was charged (because I charge in EUR). I think if the customer required invoice in their local currency, I would prefer not to serve that customer, unless it's a wire trasfer of a full year downpayment. I know that's sad, but as a solo-preneur you have your limits. I certainly have mine.
My invoices contain the currency that the card was charged with (currently USD, future EUR will be an option) and my local currency PLN (so it's less work for my accountant).
@csallen Feature request to star amazing comments for future self reference :)
This might help:
https://www.gov.uk/guidance/register-and-use-the-vat-mini-one-stop-shop
https://www.simplybusiness.co.uk/knowledge/articles/2017/02/what-is-vat-moss-a-guide-for-small-businesses/
I would recommend services such as FastSpring or Paddle:
https://fastspring.com
https://paddle.com
We have been exploring various ways to accept payments for https://reactnativestarter.com. We could not resort to Stripe since our legal entity is based in Lithuania, which is not supported by Stripe. So we went to Braintree (we were already using PayPal), but there was no luck too when they found out that founders are from Belarus, which of course was a bit offending for us.
Finnaly we choose https://www.mollie.com/en/ since they are EU based and also support recurring subscriptions.
So far everything works well - we already sold around ten licenses and received a payout to a bank account.
In need of a discrete black hat professional service contact Gabriella on
www.gabywhitehacks.wixsite.com/monsterpheonix
gabywhitehacks @gmailcom
I'm using Paddle for https://www.checkbot.io/. They take 5% + $0.50 on all transactions but deal with VAT, tax and invoices for you. Gumroad and Fastspring do the same and might be worth looking at.