Live data from Hacker News

Stripe Tax

stripe.com

371–380 of 383 posts

Re: Stripe Tax

#371
post #206

This is great! ATM I'm banning all EU end users from purchasing my SaaS unless they're a business because the cost of handling VATMOSS is just not worth it. It also definitely played a role in choosing to do a B2B service over a B2C one. So now the choice is: - File VAT yourself, pay 3.5% + some pennies to Stripe - Pay 5% to Paddle and they file VAT for you Definitely glad to see more competition in this area.

What makes handling VATMOSS costly for an Saas? I deal with the software end of dealing with VAT for a small company that sells downloadable software and technical support for that software. We've not found it costly at all. It took one guy a couple days or so to get registered with Ireland for VATMOSS. To do the quarterly report for filing, I run a fairly simple script I wrote that produces a CSV file with one row p…

Mainly implementing different VAT rates. My accountant also would charge extra to do the EU VAT filing.

Right now I'm just charging no VAT worldwide (and we keep track of the totals in US states to see if we approach limits) or VAT for my country.

Also, given we're a B2B service, most of our customers are actual businesses, so we would be adding complexity to our payment flow for not much gained.

Thanks a lot for vatlayer, that looks great and I will definitely keep it in mind!

Re: Stripe Tax

#372
post #5

I was lucky to be part of the beta for my SaaS ( https://turnshift.app ) and I must say this new feature simplifies things A LOT. Especially as a EU business owner, I previously had to sync every VAT tax rate possible, use a complex workflow to know if a customer needed to pay taxes or not, link tax rates to customers, and create taxes reports for my accountant. Stripe tax does all of that automatically, based on the…

The downside is of course that Stripe takes over more and more of your important infrastructure. A question should always be how to include several suppliers and/or how to change supplier in order not to put all in your eggs in a single basket.

This sounds a little like the big sites I've worked on that spent immense amounts of money on being database-agnostic, "so we can switch from Mysql/Postgres/Oracle to $other if we want".

Nobody ever wanted to switch; the expertise in using one provider created immense inertia. And even when a few folks (fans of $other working side-of-desk) tried to make a proof-of-concept swap, it turned out that the code was anything but agnostic and dependent on the first provider it was built for in pervasive and fundamental ways.

So, too, with service providers and partner businesses. Spending time/money on being able to switch suppliers and keeping all your eggs from being in one basket is a waste of time: you won't switch voluntarily, and if you ever have to switch involuntarily it'll still be about as difficult as it would have been if you hadn't prioritized redundancy/diversity.

Re: Stripe Tax

#373
post #253

Earlier quoted context omitted.

The US could really use some national action on sales taxes. I'd like to see Congress make it so a state can only require remote sellers with no physical presence in the state to collect tax for the state if: 1. Tax rates on remote sales are uniform within a zip code. No more having to deal with "123 Fake Street, Hooterville, 65026" having a different tax rate than "124 Fake Street, Hooterville, 65026". (Worse, I rec…

1. Congress does not have that power, as it would interfere with the states' control of in-state commerce. They could however make that a requirement for requiring out-of-state sellers to comply with sales tax. 2. Same as #1. 3. Rates for sales tax generally change every few years as it requires an unbelievably large amount of notification to sellers, service providers, etc. Where sales tax rates change faster than t…

1. Oops. I forgot to say that this was only to apply for sales taxes on out-of-state sellers.

2. I did remember to mention that for #2.

3. The rates that apply to a particular location in a state might change infrequently, but there are a lot of locations, so even if each location's rates change infrequently there can still be a lot of rate changes within the state each quarter.

For example, in my state (Washington), there are ~1 million 9 digit zip codes listed in the rate data the state makes available. Here is how many of those areas had rate changes compared to the previous quarter starting from 2020:

  2020q1   14930 changed
  2020q2  121464 changed
  2020q3    9084 changed
  2020q4    1779 changed
  2021q1  185365 changed
  2021q2  115306 changed
(This is only counting cases where the zip exists in the rate tables for two consecutive quarters. There are also zips being added and removed which I'm ignoring).

In those 6 quarters many places actually changed more than once, the most extreme being 98520-6503 which changed every quarter.

  2019q4  8.98%
  2020q1  8.80%
  2020q2  8.90%
  2020q3  9.08%
  2020q4  8.90%
  2021q1  9.08%
  2021q2  8.90%
Among all the places whose rate changed sometime in 2020 or 2021 (so far):

  436523 changed 1 time
    4533 changed 2 times
     654 changed 3 times
      84 changed 4 times
       7 changed 5 times
       1 changed 6 times
4. SST would be great if every state did it, but as you note it is voluntary, and as you noted in other comments I believe several states apparently have no interest in joining. If the Feds did it, they could make it mandatory, and they could make it simpler (such as making it purely zip code base5 (hopefully 5 digit only) instead of address based).

With it zip based and updated at most once per quarter, almost all the complexity of dealing with finding rates go away. Heck, I would probably remove the address entry fields from our shopping cart because we sell downloadable goods and tech support for those goods. The only reason we have to ask for address is for sales tax lookup.

What I'm basically suggesting is something similar to the EU's VAT MOSS system. Here's how we deal with VAT for our EU sales. (1) It is one rate per country. I had a local DB with the rates. (2) Once a quarter I make a CSV file that lists country, our sales in that country, the VAT rate of that country, and how much tax we collected. (3) Once a quarter someone in ops uploads that CSV to the Irish tax authorities and we pay them the total of all EU VAT we owe for that quarter. (4) The Irish tax authorities forward the data to the other EU countries along with the tax owed (logically...I'd assume that physically they do something like net out things first. Just as we pay our Italian and German VAT through Ireland, there are others paying their Irish VAT through Germany or Italy, and there is no need to have say Ireland pay Germany at the same time Germany pays Ireland).

I don't see why the states could not do something similar, so that I just send a CSV of state, zip, sales, rate, amount collected to one state along with the total tax collected and let them distribute it. Maybe have the Feds set up a clearinghouse for the states to use that actually deals with netting things out and settling between the states. Might as well then go one step further hand have the sellers just upload directly to the clearinghouse.

Re: Stripe Tax

#374
post #373

Earlier quoted context omitted.

1. Congress does not have that power, as it would interfere with the states' control of in-state commerce. They could however make that a requirement for requiring out-of-state sellers to comply with sales tax. 2. Same as #1. 3. Rates for sales tax generally change every few years as it requires an unbelievably large amount of notification to sellers, service providers, etc. Where sales tax rates change faster than t…

1. Oops. I forgot to say that this was only to apply for sales taxes on out-of-state sellers. 2. I did remember to mention that for #2. 3. The rates that apply to a particular location in a state might change infrequently, but there are a lot of locations, so even if each location's rates change infrequently there can still be a lot of rate changes within the state each quarter. For example, in my state (Washington),…

Addendum: I got curious about that place that changed every quarter, zip code 98520-6503.

That zip covers the odd addresses in the 101-199 address range of E Wishkah ST in Aberdeen WA. The even side of that block is zip code 98520-6508 and only suffered one rate changed in that time.

The 200 block odd side changed twice, the 200 block even side changed once. Going the other way from the 100 block of E Wishkah, the odd side of 100 W changed once, and the even side twice.

Re: Stripe Tax

#375
post #346

Earlier quoted context omitted.

No, you guys are both misunderstanding how the sales sourcing works: it's the address where the sale is deemed to have taken place. For brick-and-mortar sales, that is the physical location of the store: you will be taxed the appropriate rate for the address of the store. Note that this includes includes online orders picked up from a store location, and in-person orders even if the goods are not actually physically…

I understand the current rulings. I am saying they are erroneous. We (who I replied to and myself) understand what is going on. It is not consistent.

You are fundamentally misunderstanding that a sales tax is a tax on the customer not on the seller. This is because sales taxes are fundamentally use taxes with the compliance burden shifted from the customer to the seller.

You can argue against reality all you want, but it won't change decades of history, nor will it change how the world actually works.

Re: Stripe Tax

#376
post #373

Earlier quoted context omitted.

1. Congress does not have that power, as it would interfere with the states' control of in-state commerce. They could however make that a requirement for requiring out-of-state sellers to comply with sales tax. 2. Same as #1. 3. Rates for sales tax generally change every few years as it requires an unbelievably large amount of notification to sellers, service providers, etc. Where sales tax rates change faster than t…

1. Oops. I forgot to say that this was only to apply for sales taxes on out-of-state sellers. 2. I did remember to mention that for #2. 3. The rates that apply to a particular location in a state might change infrequently, but there are a lot of locations, so even if each location's rates change infrequently there can still be a lot of rate changes within the state each quarter. For example, in my state (Washington),…

3. WA DOR publishes all sales tax rate change notices on their website. https://dor.wa.gov/taxes-rates/sales-and-use-tax-rates/local...

In 2020, there were fewer than a 2 dozen rate changes throughout the entire year at the local level, none at the state level, and certainly not any rate changes in a single tax locale occurring multiple times during the year at any level. And this was verified by running tax rate reports for the state of WA in Avalara for each quarter in 2020.

I understand the point you're trying to make, but you're not going to win this argument by making up such blatant falsehoods. (Note that I actually handle the sales tax compliance for my company, including the state of WA, and I am definitely more familiar with sales tax rate changes than you are.)

4. The Feds do not have the power to require states to join the SST as it would violate the states' right to control intrastate commerce.

4a. Zip-coded based taxation is not sufficiently granular. For example, a single zip code in LA can contain multiple municipalities. A number of zip codes cross county and state lines. (9-digit zip codes are more granular, but only areas with sufficient mail volume are assigned the extra 4 digits.)

4b. I don't know what is behind your fascination with updating sales tax rates every quarter. Sales tax rates are generally updated every few years for any given tax location. It only seems like they update more frequently than that because you are conflating local tax jurisdictions with state-level jurisdictions.

4c. I know how VATMOSS works; as I have stated elsewhere I am a tax professional and handle indirect compliance functions for my company.

There is not a single VAT rate per country; there are 3 or more rates, corresponding to the different VAT classifications of goods. Most EU countries have 3 rates; during COVID several of them had as many as 7 rates (as a result of short-term discounted rates on certain types of goods and services).

Furthermore, only a limited number of VAT-subject digital goods and services are handled by the VAT MOSS system; physical goods are not VAT MOSS eligible, and classification/taxation of physical goods is 99% of the complexity of indirect tax regimes.

Additionally, the EU is legally and structurally fundamentally different from the U.S. VAT MOSS is possible in the EU because the member nations are bound to participate in EU economic initiatives as a condition of being a member of the EU (see, for example, the issues leading to Brexit). No similar legal arrangement exists between the American states; moreover, the U.S. Constitution does not grant the central/federal government the power to control commerce within a state.

It is simply not possible to have something like the VATMOSS in the U.S. It would require significant changes to the basic structure of American government. The best we'll get is the SST, and it's very unlikely that states like CA and NY will ever agree to give up control of their own tax systems to a system run by the Midwestern and Southeastern states.

Indeed, the SST exists primarily because most out-of-state sellers to these states would not sell enough to reach the nexus thresholds and so those sales would not be subject to sales tax; the SST is the carrot to get sellers to agree to handle sales tax compliance, and that is why it is mandatory to agree to sales tax for all SST member states as a condition of using the SST. (For example, without getting into specifics, my company's sales to all SST member states combined is less than the sales to CA, or NY, or FL, or CO, or TX, or IL.)

Re: Stripe Tax

#377
post #373

Earlier quoted context omitted.

1. Oops. I forgot to say that this was only to apply for sales taxes on out-of-state sellers. 2. I did remember to mention that for #2. 3. The rates that apply to a particular location in a state might change infrequently, but there are a lot of locations, so even if each location's rates change infrequently there can still be a lot of rate changes within the state each quarter. For example, in my state (Washington),…

3. WA DOR publishes all sales tax rate change notices on their website. https://dor.wa.gov/taxes-rates/sales-and-use-tax-rates/local... In 2020, there were fewer than a 2 dozen rate changes throughout the entire year at the local level, none at the state level, and certainly not any rate changes in a single tax locale occurring multiple times during the year at any level. And this was verified by running tax rate rep…

Washington publishes downloadable CSV files with rates here: https://dor.wa.gov/taxes-rates/sales-and-use-tax-rates/downl...

Here are commands to download the rates for the 7 most recent quarters and lookup the entries for 98520-6503:

  curl https://dor.wa.gov/sites/default/files/legacy/downloads/Add_Data/Zip4Q221E.zip > 21q2.zip
  curl https://dor.wa.gov/sites/default/files/legacy/downloads/Add_Data/Zip4Q121E.zip > 21q1.zip
  curl https://dor.wa.gov/sites/default/files/legacy/downloads/Add_Data/Zip4Q420E.zip > 20q4.zip
  curl https://dor.wa.gov/sites/default/files/legacy/downloads/Add_Data/Zip4Q320E.zip > 20q3.zip
  curl https://dor.wa.gov/sites/default/files/legacy/downloads/Add_Data/ZIP4Q220E.zip > 20q2.zip
  curl https://dor.wa.gov/sites/default/files/legacy/downloads/Add_Data/ZIP4Q120E.zip > 20q1.zip
  curl https://dor.wa.gov/sites/default/files/legacy/downloads/Add_Data/ZIP4Q419E.zip > 19q4.zip
  for i in *zip; do unzip $i; done
  grep 98520,6503 Zip4RatesQ42019-Long.txt
  grep 98520,6503 Zip4RatesQ12020-Long.txt
  grep 98520,6503 Zip4RatesQ22020-Long.txt
  grep 98520,6503 Zip4RatesQ32020-Long.txt
  grep 98520,6503 Zip4RatesQ42020-Long.txt
  grep 98520,6503 Zip4RatesQ12021-Long.txt
  grep 98520,6503 Zip4RatesQ22021-Long.txt
Here is the output:

  98520,6503,1401,0.06500,0.02480,0.08980,20191001,20191231
  98520,6503,1400,0.06500,0.02300,0.08800,20200101,20200331
  98520,6503,1400,0.06500,0.02400,0.08900,20200401,20200630
  98520,6503,1401,0.06500,0.02580,0.09080,20200701,20200930
  98520,6503,1400,0.06500,0.02400,0.08900,20201001,20201231
  98520,6503,1401,0.06500,0.02580,0.09080,20210101,20210331
  98520,6503,1400,0.06500,0.02400,0.08900,20210401,20210630
Washington also has a lookup page here: https://webgis.dor.wa.gov/taxratelookup/salestax.aspx

That also shows it changing, but not as frequently (and always has it in location code 1401, whereas the ZipRates files have that zip sometimes in 1400 and sometimes 1401).

There is also the short format files (just change the "E" in the name to "C" to get them), which give yet another story. They put 98520-6503 in location 1400 or omit it completely. When they include it, they match the rate from the long files.

Re: Stripe Tax

#378
post #377

Earlier quoted context omitted.

3. WA DOR publishes all sales tax rate change notices on their website. https://dor.wa.gov/taxes-rates/sales-and-use-tax-rates/local... In 2020, there were fewer than a 2 dozen rate changes throughout the entire year at the local level, none at the state level, and certainly not any rate changes in a single tax locale occurring multiple times during the year at any level. And this was verified by running tax rate rep…

Washington publishes downloadable CSV files with rates here: https://dor.wa.gov/taxes-rates/sales-and-use-tax-rates/downl... Here are commands to download the rates for the 7 most recent quarters and lookup the entries for 98520-6503: curl https://dor.wa.gov/sites/default/files/legacy/downloads/Add_Data/Zip4Q221E.zip > 21q2.zip curl https://dor.wa.gov/sites/default/files/legacy/downloads/Add_Data/Zip4Q121E.zip > 21q1…

Addendum: I took a look at the boundary file that Washington provides to SST (WAB2021Q3MAY27.zip available here [1]). Here's what that file says about O addresses in the 101-199 range of E. Wishkah ST.

  A,20160701,20170331,101,199,O,E,WISHKAH,ST,,,,,,GRAYS HARBOR COUNTY,98520,6503,,,,,01400,53,53,027
  A,20170401,20170630,101,199,O,E,WISHKAH,ST,,,,,,ABERDEEN,98520,6503,,,,,01401,53,53,,00100
  A,20180401,20180930,101,199,O,E,WISHKAH,ST,,,,,,GRAYS HARBOR COUNTY,98520,6503,,,,,01400,53,53,027
  A,20181001,20191231,101,199,O,E,WISHKAH,ST,,,,,,ABERDEEN,98520,6503,,,,,01401,53,53,,00100
  A,20200101,20200331,101,199,O,E,WISHKAH,ST,,,,,,GRAYS HARBOR COUNTY,98520,6503,,,,,01400,53,53,027
  A,20200401,20200630,101,199,O,E,WISHKAH,ST,,,,,,GRAYS HARBOR COUNTY,98520,6503,,,,,01400,53,53,027
  A,20200701,20200930,101,199,O,E,WISHKAH,ST,,,,,,ABERDEEN,98520,6503,,,,,01401,53,53,,00100
  A,20201001,20201231,101,199,O,E,WISHKAH,ST,,,,,,GRAYS HARBOR COUNTY,98520,6503,,,,,01400,53,53,027
  A,20210101,20210331,101,199,O,E,WISHKAH,ST,,,,,,ABERDEEN,98520,6503,,,,,01401,53,53,,00100
  A,20210401,20210630,101,199,O,E,WISHKAH,ST,,,,,,ABERDEEN,98520,6503,,,,,01400,53,53,027
  A,20210701,99991231,101,199,O,E,WISHKAH,ST,,,,,,ABERDEEN,98520,6503,,,,,01401,53,53,,00100
It has the same bouncing around between SER codes 1400 and 1401 that it does in the earlier files. At first it looks like that depends on whether or not it is listed as being in the county or the city, but notice the last 3 entries all have it in the city but it still bounces around.

When it is listed as in 1400 it has state 53 tax and county 027 tax. When it is listed as being in 1401, it has state 53 tax, no county tax, and place 00100 tax.

The statewide component of sales tax in Washington is 6.5%.

Here are the county 027 tax rates, according to the rates file WAR2021Q3MAY27.zip that Washington provides to SST, found here [2].

  53,00,027,0.02000,0.02000,0.02000,0.02000,20140401,20161231
  53,00,027,0.02300,0.02300,0.02300,0.02300,20170101,20200331
  53,00,027,0.02400,0.02400,0.02400,0.02400,20200401,99991231
Here are the place 00100 tax rates:

  53,01,00100,0.02130,0.02130,0.02130,0.02130,20140401,20161231
  53,01,00100,0.02430,0.02430,0.02430,0.02430,20170101,20190630
  53,01,00100,0.02480,0.02480,0.02480,0.02480,20190701,20200331
  53,01,00100,0.02580,0.02580,0.02580,0.02580,20200401,20290630
Matching the rates and the boundaries files by validity ranges, I get for 101-199 E. Wishkah ST odd addresses for 2019q4 through 2021q2 8.98, 8.8, 8.9, 9.08, 8.9, 9.08, and 8.9, which are exactly the same as what I got earlier from the zip+4 long files.

I have no idea why these are not the same as the results using the Washington interactive lookup gives for those address, nor why Avalara apparently gives different results, now why the results using the zip+4 short files differ from the long files.

You might suggest that it was because I was going by zip+4 rather than address, and tax boundaries do not necessarily follow zip boundaries (even when you use zip+4). But with the files Washington gives SST, I'm going strictly by street address so that cannot be it.

Washington also has street address based files in its own format available to download. I've not looked at those. I probably should, to see if perhaps that is where their own interactive page and Avalara are getting data.

I have previously found inconsistencies in Washington's various tax files and interfaces (and reported them). Perhaps this is another case of that. Perhaps I'll report this one, after doing a little more checking around.

[1] https://www.streamlinedsalestax.org/ratesandboundry/Boundary...

[2] https://www.streamlinedsalestax.org/ratesandboundry/Rates/

Edit: I grabbed the street-based rates from Washington's site. Same result as I got from the zip+4 long and from the boundaries and rates files that Washington provides to SST.

Re: Stripe Tax

#379
post #253

Earlier quoted context omitted.

California is not a member of the SST because it does not currently tax a number of things that are subject to tax under the SST regime. For example, digital goods are taxable in SST states but not in California. Similarly, there are a number of other product categories where CA's taxability classifications do not match the SST's classifications. Generally, the total tax they could collect from remote (non-CA) seller…

The US could really use some national action on sales taxes. I'd like to see Congress make it so a state can only require remote sellers with no physical presence in the state to collect tax for the state if: 1. Tax rates on remote sales are uniform within a zip code. No more having to deal with "123 Fake Street, Hooterville, 65026" having a different tax rate than "124 Fake Street, Hooterville, 65026". (Worse, I rec…

Honestly, I wonder if the level of autonomy we provide to states and lower subdivisions makes sense anymore in an era of one-day delivery and non-in-person sales.

They're buying the same goods, with the same currency, backed with the same warranties, and shipped with the same couriers, but because some of your customers are on the other side of an arbitrary line drawn for a political gambit in the mid-1800s, here's an entire second set of rules and documentation to deal with.

Even if you can somehow convince all the states to play ball, and not tie any sort of standardization process in the courts until six months after the heat death of the Universe, you've got the same problems on different scales with patchworks of local authorities.

If anything, though, what we should be looking for is a uniform national VAT or sales tax, distributed proportionally back to the states/local authorities. It would discourage the "race to the bottom" gaming of special tax regions and exemptions to attract business, and take funding for essential aervices out of the hands of state legislatures. In at least some states, we have real problems because such legislatures will do things like "taxes can only be raised as a ballot initiative with supermajority" as political posturing, then hatch up harebrained schemes like "the courts said we actually have to fund public schools, let's sell off state-owned land as a one-time earner" to kick the can down the road.

Added plus: we could reasonably price goods as tax-inclusive, like in the UK, because the marketing copy can be consistent and accurate everywhere.

Re: Stripe Tax

#380

Earlier quoted context omitted.

The downside is of course that Stripe takes over more and more of your important infrastructure. A question should always be how to include several suppliers and/or how to change supplier in order not to put all in your eggs in a single basket.

This sounds a little like the big sites I've worked on that spent immense amounts of money on being database-agnostic, "so we can switch from Mysql/Postgres/Oracle to $other if we want". Nobody ever wanted to switch; the expertise in using one provider created immense inertia. And even when a few folks (fans of $other working side-of-desk) tried to make a proof-of-concept swap, it turned out that the code was anythin…

At a minimum, implementing an abstraction layer around all external services really is software development 101.

For some services it's also not just being able to switch, it's having more than one used in production. If you manage that then switching is no longer a problem since it's already implemented! That's important for key services.

Post reply on HN