Ask HN: How do you handle VAT / Sales Tax accounting as B2C SaaS?

52 points by throw_1VJ51pMb 4 days ago

Hey! I run a B2C SaaS and I use Stripe for all of my sales (subscriptions).

I am looking to learn how others handle their VAT / Sales Tax filing.

I know that the standard answer would be to use Paddle / LemonSqueezy / Polar.sh, but I already have a lot of subscribers on Stripe which makes quick migration non-trivial.

I am especially looking for some reliable accounting companies / accountants that can register and file Sales Tax across US, UK, Canada, Australia, etc. (It does not have to be a global solution).

It's my understanding that solutions like Stripe Tax, Alavara, Quaderno, etc. only help collect the necessary data (which I consider the easier part, at least for digital goods), but do not handle the registration & filing (though I've learned that Quaderno will support filing Sales Tax in the US on your behalf soon).

---

Some jurisdictions are relatively easy to handle (for example, one can handle whole EU by uploading a simple CSV [1] once a quarter and the CSV is easy to generate from Stripe's records).

But unfortunately there are tons of others that are much more complicated and scattered -- for example, due to the economic nexus laws in the US, I now have to file Sales Tax in each individual state where I am over the threshold (and many states have thresholds in low hundreds of transactions, so it's not hard to reach).

[1]: https://www.elster.de/bportal/helpGlobal?themaGlobal=osseust_import

[2]: If you do not feel comfortable commenting here, you can also reach out at z2qmk@pekoi.com (temporary email)

jwr 7 hours ago

EU SaaS solo owner here (about 10 years so far). I gave up on B2C entirely. It's just too much hassle. My accountant starts screaming in horror whenever I mention VAT MOSS. Whenever I looked into the rules, I saw a snake pit with moving snakes.

Additionally, B2C has tight margins, so eating into those hurts a lot.

Whenever I looked at companies like Quaderno, they looked great, but when I actually tried to use them, it turned out that their solutions are far from perfect and often incomplete or simply incorrect (e.g. I would not comply with local laws in my country). This is a common theme: even B2B invoicing, which is far simpler, is not implemented correctly by companies that say they do "invoicing". For example, Stripe invoicing won't do JPK_FA or KSeF in Poland (SAF-T reporting), which pretty much makes it a no-go. Many service providers are also incapable of producing bi-lingual invoices.

I ended up using Braintree (don't make that mistake) and now I'm migrating to Stripe — but for payments only. I have my own subscriptions and invoicing, and I use a local (Polish) company that has an invoicing API to produce JPK_FA/KSeF data.

If I were to even look at B2C, I wouldn't even consider doing anything on my own. I would go with Paddle, carefully considering my margins.

I realize this is not the answer you were looking for but it's a real-life data point.

bfstein 8 hours ago

We use Sphere ( https://www.getsphere.com ), and it’s the only good solution I know of for international VAT that handles everything end-to-end (registration, calculation, filing, and remittance).

We use Stripe Billing, and we actually use Anrok for US sales tax compliance. They’re solid domestically, but they don’t do international registration, filing, and remittance; they only do calculation.

There are also firms like VAT IT (vatcompliance.com) that can do this if you want to work with a more traditional service provider.

  • pqvst 4 hours ago

    Sphere looks quite promising, and I haven't come across them before. Their coverage looks pretty good as well, and pricing sounds reasonable. It looks like they have a Stripe integration. Is that something you're using?

  • LadyCailin 7 hours ago

    Hey, just curious, since you actually might know about this. My country (Norway) has extremely strict import rules. All items must have the VAT paid on them, and if they don’t, you have to pay the VAT plus an administrative fee in order to pick up the item. However, there have been plenty of times where I paid VAT to the store, but then I still get charged VAT upon pick up. According to the postal service, this is because “the company didn’t register their VOEC number electronically for the shipment” and then they tell me to get the company to refund the VAT, and I guess go fuck myself for the administration fee.

    Leaving aside the utter garbage that is the Norwegian postal system, do you know what that means? Is that something that just happens as a matter of course when using Sphere? Is that a common feature among platforms that offer the service? I have no clue how unique Norway is or isn’t in this regard, but I imagine countries in general want to collect VAT for imports.

    • magicalhippo 6 hours ago

      This isn't really related, as I understand it.

      The Norwegian VOEC system[1] is modeled on the EU IOSS system[2].

      As with normal import declarations, missing documentation means you cannot claim any exceptions etc. Thus if the store forgot to register the VOEC number when they shipped the item, the one filing the declaration, say the postal service, has to assume VAT hasn't been paid.

      Now, if this had been a normal customs declaration, one could simply submit a corrected declaration with the correct documentation later. However, since such low-value goods aren't declared using a normal customs declaration, one cannot do this.

      They also don't want spend their resources cleaning up someone else's mess, thus they leave it up to the shop that made the error to fix the problem by reimbursing you the VAT they collected.

      And yes, as a customer this sucks, as the shop often will just shrug and claim they don't know or they did the right thing.

      [1]: https://www.skatteetaten.no/en/person/duties/purchases-from-...

      [2]: https://vat-one-stop-shop.ec.europa.eu/index_en

dinkblam 8 hours ago

i think this matter is confused because it contains two distinct things:

a.) accounting for the VAT owned to dozens different countries and

b.) "remitting": actually paying the VAT to the tax agencies of dozens different countries

many services help with part a.), but i haven't found a single one that helps with part b.) - you can only circumvent the issue by selling on a platform (like the different app stores or "FastSpring" or awful awful "Paddle") that do it for you because they are the merchant-of-record

our solution is to defer all payments for countries that collect VAT (EU plus UK plus like a dozen evil ones [1]) to FastSpring (which collects AND remits VAT), while selling to countries that don't collect VAT via Stripe.

this works well if you are a small company and you fall below the "VAT thresholds" in place by most countries, but if you are big and breach most thresholds this solution is less effective.

[1] AE, AL, AO, BH, BY, CH, CL, CO, CR, DZ, EC, GE, IN, KE, KR, MD, MX, RS, RU, SA, TJ, UG, VN

  • jwr 7 hours ago

    In case someone thinks this stuff is simple and you can go with country codes for VAT: have you heard about countries like AX (Åland Islands, part of Finland)? Do you remember that GB used to be within the EU VAT zone, but now isn't? How about handling XI (Northern Ireland) and the migration of customers from GB to XI? Or (one of my favorites) — do you realize that parts of ES are not within the EU VAT zone (for example, Canary Islands)?

    This stuff is crazy. B2B sales are relatively simple, but B2C is a nightmare.

    • rnewme 3 hours ago

      What makes B2B simpler? Let's say the product was at same price point

      • jwr an hour ago

        You basically don't deal with VAT at all: charge the net amount, mention reverse charge on the invoice and you're done.

        • fhd2 38 minutes ago

          Except when selling to your own country. But there, VAT is easy.

          To expand a bit on the reverse charge procedure: It means the _buyer_ pays VAT. Which makes a lot of sense in B2B, since companies need to look into what local VAT they owe anyway. Adding the reverse charge invoices to that is easy. Not to mention that if they also sell goods or services, they'll end up paying little to no VAT anyway.

  • matt-p 6 hours ago

    What are your issues with paddle? I found them perfectly fine fwiw.

    Why is this related to thresholds if you're using a merchant of record?

    You can't do this on country codes, if you're going to do this I would suggest whitelisting country's you know not to charge vat anywhere inside the country rather than vice versa.

  • jflessau 7 hours ago

    Can you elaborate on your bad experiences with Paddle?

imarkphillips 8 hours ago

What a big question. With so many new sales taxes hitting rhe world its now a nightmare for us global companies, especially in the digital services and the travel industry.

We employ our own bookkeepers (in Africa) who operate a range of accounting systems for each company in the group (5 countries).

As CEO I tend to do the teaching and review but the team does the lodgement. (I am an Australian Chartered Accountant and former tax agent so get the rules fairly easily).

Most lodgements are online. The US is the exception. We also find there are free services for lodging electronically.

A lot of the accounting systems are way overpriced so we don't use many of their up market solutions.

We have built our own invoicing and Billing system this week with AI so expect we'll create more of our own apps over the coming year.

My bookkeeping team has some spare capacity so let me know if we can maybe help you out.

matthewtse 5 hours ago

I recently acquired a SaaS that does business with people in the EU (we bill with stripe), so I decided to continue paying VAT. I do it all by a combination of code, scripts, and by-hand.

We have custom code that determines the VAT rate to charge, and also looks up a customer's VAT number to see if they qualify for VAT exclusion. At the end of each quarter I have a script that calculates the amount of VAT to be paid to each country in the EU, then visit the Ireland VAT OSS site, input the values for each country manually (they don't allow CSV!!!!), then send them a wire using wise.com.

The current scheme is an evolution of what the former founders did. It was a nightmare to get things onto good footing after the acquisition. But once I did it for the first time, the subsequent times are pretty straightforward, and I probably won't touch it again for a long while.

I could probably move towards stripe tax, or paddle/lemonsqueezy, but the migration would be a nightmare. And it's not a good business decision to do a lot of work including risky migrations to move onto a new provider that will charge a larger percentage as a service fee, just to better handle taxes, which I've now largely figured out.

The one advantage to doing all this, is that I actually understand this stuff pretty well now, rather than it being a black box where I just pay a company a lot of money so I don't have to think about it. Open question on if that's actually worth my time. It seems like it is for now.

One opinion I'll offer, is that all these foreign tax agencies are far less organized than you might think. You could probably get away by not paying VAT, for far longer/more revenue than you'd think, and if you do want to be a proper foreign business and pay, there's basically zero verification on if you're paying the right amount, so just try your best??

Feel free to ask me for any advice around VAT/etc. matthew@improvmx.com

  • notpushkin 4 hours ago

    ImprovMX – now that’s a name I haven’t heard in a while!

    Could I ask you why Ireland specifically?

pqvst 4 hours ago

I run a B2C SaaS business. We're an EU company. We use Stripe for all billing, and we use Stripe Checkout and Stripe Tax for all of our tax calculations. We've built our own tools to generate monthly/quarterly tax summary reports from our Stripe payments data.

Luckily most of our business is in the EU, so as an EU company, filing our EU VAT is easy.

We used Avalara for 1 year in order to setup VAT registration in Norway. We chose Avalara because they do in fact provide full service solutions for VAT (registration, filing, and remittance). However, they are expensive and were AWFUL to work with: poor communication/support, no integration with Stripe, and we had to manually generate carefully structured Excel files in order to import our sales data. We cancelled our contract with them after 1 year, but were able to take over the filing account from them and now our in-house accountant does the filing and remittance (which is quick, easy, and MUCH cheaper).

We have considered something like Paddle, but it is difficult to justify the increased fees as our business grows. For the amount of money we'd be spending on Paddle in extra fees vs Stripe, we may as well just use a service provider or hire our own staff.

With Stripe Tax we can easily monitor our thresholds in other countries. There are some countries that technically require registration for even a single transaction in that country, which is ridiculous. I imagine for most companies it is definitely not feasible to register, file, and remit in all of those countries.

pimterry 7 hours ago

How about using Paddle/etc, but just for new subscriptions and just in regions where it's relevant, and handling migration later (or wait for churn to slowly whittle away at it for you)?

I've also used https://payproglobal.com/ quite successfully, which nobody else has mentioned here as a merchant of record option. They're less polished than other options, but they've been a godsend for selling outside the EU + Anglosphere markets: they've managed card fraud far far better, and have a very impressive breadth of the local payment methods that you'll 100% need if you want to sell in those markets.

Also seen some enthusiasm for https://www.creem.io/ recently as an MoR option although I haven't tried them myself.

Oh, and it's worth noting that using an MoR isn't just helpful for sales tax. It's also significantly easier for your own accountancy and local tax filings more broadly: it effectively turns N invoices into 1. Very very easy to handle, process & document.

shibel 8 hours ago

I happen to use Paddle. Happen because Stripe isn’t available in my country and Lemon Squeezy wasn’t around / was very new back then. It’s OK but it really irks me that they don’t really fight chargebacks. (I haven’t had many but the fee they throw on you automatically is so hefty for a B2C.)

Their V1 API (not Paddle “Billing”) is…not the best I’ve used.

  • matt-p 6 hours ago

    The fees come from the bank and are the same on stripe so, that part is just how the game works.

    I see the 'not fighting disputes' from both sides; as a vendor it sucks, but for paddle fighting them is a loose loose game, it would cost them say 50-200$ in time to handle each one and they get some of the liability for it too, also imagine paddle gets really good at fighting chargebacks - where do you think the fraudsters will go to process payments?

  • mezod 8 hours ago

    AFAIK fees are put by banks not the Paddle/Stripe. Stripe also 'charges' $15 for any dispute, even if won.

  • Sytten 7 hours ago

    Agreed on the chargeback fee they really dont give a shit. I have learned to deal with their V1 API, it has a lot of weird quirks. Kinda wish they offered a better upgrade path to the new billing.

papaver-somnamb 7 hours ago

At risk of high-jacking this thread, some Merchants of Record (i.e. Paddle) require biometric authentication of company majority owners, which I find too invasive. Are there any Merchants of Record that don't?

Sure, they handle taxation amongst many other conveniences. But despite their assertions of security and safety, we identified dumps for sale on the darknet of such biometric DB data exfiltrated from (continuing the Paddle example) Onfido. It left a sour note in our mouths and a lingering feeling of distrust, especially after we were recently the target of a spearfishing campaign using data obviously sourced from such auth providers.

  • snide 6 hours ago

    I don't remember seeing anything like this with Lemon Squeezy.

matt-p 8 hours ago

There are people like paddle who handle all this for you, but it's not free.

Before I've just decided to restrict purchases to jurisdictions I can easily handle which isn't great but..

andsoitis 4 days ago

Sounds like you need an accountant.

  • jwr 7 hours ago

    An accountant that will quickly determine the VAT/sales-tax to charge on each transaction presented to the customer? :-)

    Accounting is important, but it's not the solution to the OP's problem. There are also questions of costs and efficiency, especially since we are talking about low-margin B2C sales.

    • notpushkin 4 hours ago

      An accountant plus Stripe Tax? Or just a CSV with tax rates imported into Stripe, if you don’t feel like paying additional % per transaction.

      MoR are great if you want absolutely no liability whatsoever, but especially considering there is no way for other countries to check you’re paying the right amount, I think doing it yourself isn’t too risky. (Not doing it is also a possibility.)

  • throw_1VJ51pMb 4 days ago

    That's exactly I am looking for. But I had some less than ideal experiences before, so I thought it might be a good idea to try to crowd-source some vetted options.

    It's also unlikely that a single accountant will be comfortable filing taxes in all of the jurisdictions (or maybe I will be pleasantly surprised).

    • imarkphillips 8 hours ago

      You're right. Most accountants make their money from local businesses. And global accounting firms charge the earth. It's easier to separate You're bookkeeping from your (expensive) accountants who are better set for strategic advice.

kipple_creator 6 hours ago

Anrok is great! Anrok generates and files US returns. We still have to file EU OSS returns quarterly (based on the Reports created by Anrok), but it's manageable. Stay far away from Avalara... it's unusable and the contracts are predatory IMO. Filing UK VAT has been a mess.

I'm @ a US-SaaS company using Stripe and Quickbooks.

  • RowanH 5 hours ago

    How does Anrok charge? is it based on a per filing basis or %age of rev? If %age can you share broadly speaking what it costs?

encoderer 6 hours ago

If you’re not making at least $1 million a year — don’t worry about this yet.

I know that sounds glib but I firmly believe that the rise of “merchant of record” startups like Paddle with large outbound sales teams has scared the bejeezus out of a whole generation of founders.

andrewrea 4 hours ago

Lot of folks suggesting / commenting on solutions. Wanted to add some nuance on 1. MORs (Merchant of Records) vs global sales tax providers (StripeTax/TaxJar, Avalara, Anrok) and 2. the risk / reward of actually handling these taxes at different stages of your business.

1. Merchants of record can make sense for smaller B2C companies with lots of international revenue that don't want to handle taxes or chargebacks/fraud. But the fees are extremely high and often your company would only be remitting in a few jurisdictions if you were handling this independently. Respectfully, a lot of the MORs are selling fear more than something you actually need for a lot of sellers. If you're already on Stripe, I'd stay there vs going to a Paddle. Prob not worth the fees. StripeTax is good but very expensive and you'll need something else for filing, registration remittance. A bunch of new startups have hit the space in the last couple years (several of which have been mentioned here) that can help with US and/or international calcs, filings, remittance.

Just do your diligence and don't get sold something that's overkill for what your business needs.

2. On that point, not legal advice but from a risk management POV, below a certain amount of revenue ($500k-1M in ARR), it's probably fine to temporarily punt on these taxes or to just collect & remit in your home state / country. You probably won't have nexus in most jurisdictions early on anyway. Additionally, many VAT countries don't tax B2B software so if you primarily sell remotely to other businesses (sounds like you are mostly b2c so not relevant to you) you might not need to worry about VAT in most countries, just US sales tax. Additionally, if you're based in the US, you're probably at higher risk of enforcement here than you are abroad. Washington or New York is more likely to catch up with you than a country in the EU (or vice versa if you're based internationaly). tl;dr - get PMF. And then handle your home country / states first. Don't freak out about this at a lower volume of revenue.

Full disclosure I'm the co-founder of Taxwire.com and we're a startup in this space. We do registrations, filings, remittance, and calculations in Stripe, QBO, and other billing/payment platforms for the US and recently launched VAT as well. So obviously I have some bias on solutions but hopefully the above is helpful.

  • rnewme 3 hours ago

    Ta wire looks interesting. Let me pick your brain here for a moment, my wife is looking to start SaaS soon, she is based in EU but intends to open both EU and Wyoming llc. Wyoming llc would sell B2C, EU llc would then invoice Wyoming llc monthly so she and her future employees can get paid. Since the eu country doesn't have tax agreement with USA the anon llc would be practically invisible to EU, and additionally as foreign owned llc with no employees I believe there is no tax in USA either? What do you think about this approach? Does your advice still hold; start with stripe, do the minimum to have llc working?

foxylad 5 hours ago

We rolled our own VAT/GST handling. We use Stripe to bill the total amount, and generate our own invoices so we can break out the tax as an item. Doing our own tax and invoices means we're not locked in to Stripe, which is pretty good but will enshittify when they have enough of us in thrall. It also means you can do bank transfers which many customers prefer.

VAT/GST handling is not that complicated*, and our system spits out the numbers to fill in UK, AU, NZ and CA tax returns, which can all be done online.

*Except Canada... HERE BE DRAGONS! Each of the 13 provinces/territories has different rates and rules, despite the optimistically named "harmonised sales tax" (HST).

senordevnyc 8 hours ago

What if you just…did nothing. What would happen?

  • mingabunga 5 hours ago

    Exactly! Nothing if you don't ship physical goods. I've been doing this for 24 years and only collecting sales tax for users in my home country. All other countries I just say on my invoice that any sales tax is included in the price. What are the going to do about me not charging sales tax in their country and remitting it? Come and get it?

    • senordevnyc 5 hours ago

      I mean, I do understand if you’re big enough to be a target, but seriously, how is Germany or Taiwan or Argentina or wherever the fuck else going to 1) even know that I (a little US-based SaaS app doing under 8 figures in revenue) exist, 2) know that their citizens are paying me, 3) know how much, and 4) be able to do absolutely anything about it?

      I’m genuinely asking.

      For the pearl-clutchers here, I don’t do anything for GDPR for the same reason. Pass whatever laws you want in your county. Not my problem.

taxdude 5 hours ago

Taxwire.com can handle registrations and filing in US and EU. Also offers a free nexus study.

jongjong 7 hours ago

One of the most horrible aspect of the tax system is that individuals are held responsible for ensuring that they calculate and pay the correct amounts. It's kind of messed up that not only we have to pay tax, but the government doesn't even have the responsibility of telling us how much we owe it or what specific work which it did is covered by the payment.

Every other entity on this planet who wants to obtain money from another entity needs to tell them exactly how much is owed and exactly what goods and services are covered by that payment.

But the government not only doesn't have to report what work it did to warrant the payment, it doesn't even need to tell us the specific amount which we owe it; it's on us to figure that out... Figuring that out is complex and sometimes expensive too; many people can't afford. The gig economy is creating complex tax situations even for poor people. If we calculate incorrectly, then we suffer consequences. It's oppressive.

I know some people will read this and think I'm off on a wild tangent... But my friend, I'm actually addressing the core of the issue here. It's you who is on a wild tangent addressing superficial edge cases. The superficial cases aren't worth discussing; VAT, GST, CGT, income Tax and all other acronyms... Just don't participate in this system. Sell your business, change countries, go on unemployment benefits or whatever until this issue is fixed. How can a rational person operate in this environment? I can't believe some people work for fun. It's the most rigged, boring game ever.

  • rglover 5 hours ago

    You're not on a tangent at all, you're 100% correct.

    It's shameful (in the most absolute sense of the term) that an entire class of people who contribute nothing to the world get to dictate—at the barrel of a gun or threat of imprisonment no less—that we owe them money that they then go and spend carelessly and without accountability (and this is independent of political beliefs—every single politician and bureaucrat is guilty). It's made even worse that they can't be bothered to make it easy to pay them (which is in their best interest). They exist solely to waste time and give otherwise unskilled people something to do.

    I sincerely hope that the younger generations see all of this for what it is and aggressively work to remove it. "Oppressive" is exactly the right term. It hurts the prosperity of the majority in favor of a helpless minority (and no, I don't mean the people who actually need our help like the disabled—I explicitly mean government employees).

    • nocoiner 4 hours ago

      Love how the person who did a “AI-powered code snippets manager and generator and … Mod CSS framework” just casually dismisses millions of people around the globe who ensure safe drinking water, distribution of vaccines, maintenance of nuclear warheads, provision of public health, etc., et fucking cetera, as a class of people who “contribute nothing to the world.”

      Very cool - good luck with Mod. Can’t wait until it changes my life as much as living in a functional, stable society (well, at least until a couple months ago, in my case, lol).

      • rglover 3 hours ago

        You're cherry picking what I've worked on. I've also built a full-stack JavaScript framework that's a far better solution than the current competition and can (if utilized) solve a lot of the issues with software we see today.

        To your point, all of the problems you outline are either created/exacerbated by government or would be better handled by private industry.

        That you reacted emotionally to my comment means I'm far closer to the truth than you might be willing to admit.

      • rnewme 3 hours ago

        Strawman nolifer.

  • notpushkin 4 hours ago

    The reason for that is two-fold. Firstly, there’s a tax accounting lobby in some countries (ahem, TurboTax). Then there’s the fact that when people are afraid they could make a mistake, they tend to pay more, and generally might not even think about what they are paying for in the first place.