TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

My Stripe Tax Story

665 点作者 kareemm大约 3 年前

43 条评论

chrissnell大约 3 年前
My dad owns a successful chain of bicycle stores in Texas. He’s been in business for almost 51 years and he’s one of the largest bike dealers by volume in the country. He has nearly a hundred employees and a bookkeeper. Despite having a proverbial dozen balls in the air at any time and despite having people on the payroll to do bookkeeping, he sits down at his computer every night at home, logs into the ERP system, and reviews sales and receipts. He catches all kinds of crazy things. Credit card fraud (before the chargeback even comes), internal theft, mis-priced items, mistakes, you name it. He has great employees but even the best make mistakes and he’s learned this habit over the decades the hard way. I remember sitting next to him as a kid, watching him pour over cash register journal tapes that were yards long, looking for problems.<p>My point: if you let this kind of fuck-up go undetected for over three months, you have to at least assume some of the blame and acknowledge that you probably could have caught it if you scrutinized transactions. Every good business owner does it.
评论 #30537219 未加载
评论 #30537191 未加载
评论 #30537304 未加载
评论 #30539066 未加载
评论 #30541468 未加载
评论 #30540171 未加载
评论 #30537387 未加载
评论 #30537696 未加载
评论 #30546112 未加载
评论 #30582509 未加载
评论 #30537461 未加载
评论 #30538801 未加载
评论 #30537427 未加载
websap大约 3 年前
I actually thought Stripe did decently here, there were periods of silence which sucks. It&#x27;s odd that you feel they are obligated to explain their internal processes with you?<p>Things they did right: 1. Immediately acknowledge the issue and raise it to a Specialist. 2. Give you a work-around, so that you don&#x27;t need to be blocked. 3. Engage the lead PM, to speak to you, to address your concerns. 4. Fix the documentation first, so others know how to fix this and understand the cases. 5. Take feedback that they need to improve the API. 6. Find which customers had an issue and pro-actively reach out to them. (Isn&#x27;t this what you wanted in the 1st place?)<p>Things that didn&#x27;t go well: 1. Long periods of silence between mails. 2. Lack of a bug bounty, sounds like a pretty big miss on their part and a bug bounty would be nice.
评论 #30539091 未加载
评论 #30539743 未加载
评论 #30538477 未加载
评论 #30542203 未加载
gelatocar大约 3 年前
I also had issues with stripe&#x27;s automatic tax. We use stripe&#x27;s subscriptions with free trials but don&#x27;t collect credit card details up front, preferring to make sign up simple and low friction. Automatic tax is charged at 0.5% of each transaction, and apparently a trial ending is considered a transaction even if the user has no payment method, so we were hit with automatic tax fees for every trial end even if we received no money for them.<p>Overall my experience with stripe has been pretty negative and the large gap between my perception of the quality of their products, and the reality I discovered in actually using them has made me realize how much effort they put in to marketing to developers.
评论 #30537727 未加载
评论 #30537195 未加载
drevil-v2大约 3 年前
There is a massive chasm between Stripe&#x27;s perceived (for a lack of a better term) awesomeness vs the actual reality.<p>I don&#x27;t think I have ever had an actual good experience with Stripe<p>Here is a couple of examples<p>- The account manager assigned to us was absolutely horrible. Would not answer emails. Getting information out of him was like pulling water from stone. And our business is a global company with annual revenues in the hundreds of millions of dollars. He couldn&#x27;t care less.<p>- Stripe support... I have an email thread with these guys that reads like a &quot;who&#x27;s on first base&quot; script. I still read it sometimes for a laugh and make sure I wasn&#x27;t dreaming the whole thing.<p>Boggles the mind that Stripe is worth many tens of billions of dollars. I want to invest in their marketing partners. Those guys are doing a fantastic job.<p>EDIT: If anyone senior from Stripe is reading this; reply back and I might be able to provide you more details. I really want someone at Stripe to read that support email thread and tell me what they honestly think.
评论 #30538022 未加载
评论 #30540696 未加载
评论 #30541259 未加载
评论 #30541683 未加载
edwinwee大约 3 年前
(I work at Stripe.) This was a painful read. I&#x27;m sorry. We could have done a lot better. We&#x27;re working on remediations now, and we&#x27;re sending another, corrected email tonight with the updated CSV file of failed invoices as of March 1st.
评论 #30536632 未加载
评论 #30537228 未加载
评论 #30537360 未加载
dabernathy89大约 3 年前
I&#x27;m not quite understanding the need to put them on blast here. Yes, they should have been more apologetic and they should certainly have escalated your ticket more quickly. But they made the changes you wanted seen: better documentation &amp; better process, and reaching out to customers proactively when they see this problem.
评论 #30536740 未加载
评论 #30537163 未加载
评论 #30536877 未加载
harrisonjackson大约 3 年前
Having shipped a non-zero # of billing bugs with the Stripe API...<p>One of the best things you can do is catch all their webhooks, handle the ones you expect to receive, and raise a serious alarm for ANY others. Then prioritize properly handling those unknown alarms and setup your own notification&#x2F;escalation system as needed for the important ones.<p>If you are short on dev hours, then use something like Zapier to catch the webhooks for you and forward critical ones to you in a way you will acknowledge. This strategy doesn&#x27;t work as well with NEW webhooks so you&#x27;ll still need to do the first option at some point.
评论 #30539133 未加载
chipotle_coyote大约 3 年前
I don&#x27;t know how Stripe&#x27;s dashboard looks&#x2F;works, and whether it easily displays the number of invoices left in &quot;draft&quot; state. But when the author writes about the silent failure here,<p>&gt; No failed API calls (as far as I could tell).<p>I can&#x27;t help but wonder whether that &quot;as far as I could tell&quot; is carrying a lot more weight than it might first appear.<p>Stripe&#x27;s documentation under &quot;Collect taxes for recurring payments&quot; explains,<p><i>Creating or updating a subscription that causes an immediate invoice and payment attempt errors with an HTTP status 400 response. Updating a subscription that does not cause an immediate invoice or payment attempt returns an HTTP status 200 response. However, the customer location validation happens later asynchronously when the invoice is finalized. If the customer location is invalid during invoice finalization, Stripe sends a invoice.finalization_failed webhook. If you don’t take any action, the invoice remains in a draft state.</i><p>Which at least suggests that Stripe&#x27;s API <i>will,</i> in fact, inform you of invoices that fail for precisely this condition.<p>So is it at least <i>possible</i> that the author &quot;built out [their] Stripe Tax integration&quot; either without implementing what would seem offhand to be an extremely important webhook, or implementing it but not surfacing its results in a timely, actionable way?
评论 #30537756 未加载
评论 #30541636 未加载
spamizbad大约 3 年前
I&#x27;ve noticed Stripe products tend to be buggy and&#x2F;or half-finished. What&#x27;s the deal with that? Anyone know why a company with so much talent and great product that seem polished seem to have critical issues?
评论 #30536700 未加载
sbierwagen大约 3 年前
He wasn&#x27;t collecting address information for US customers, so the invoices hung in a pending state. He didn&#x27;t check to make sure the integration was working correctly until a customer emailed him to ask why they hadn&#x27;t been billed three months later, so there were a lot of invoices to clean up, which he apparently found to be very annoying.
评论 #30536495 未加载
评论 #30536624 未加载
评论 #30536198 未加载
janci大约 3 年前
Yes, the documentation was lacking, the consequences were unexpected, the API design was not great to prevent this and the dashboard did not show the problem. They are all Stripe&#x27;s faults.<p>But enabling an auto-magic feature for a business-critical operation (invoicing and taxes) and not even checking if it worked? Sorry to say that but it is utterly irresponsible. Heck, even the invoice numbers must not have matched. And the draft invoices piling up for months must have been visible too.
评论 #30539150 未加载
a13n大约 3 年前
I had a similar horror story with Stripe recently where several customers got billed via payment methods that were explicitly disallowed on the subscription object. This cost us loads in unnecessary fees.<p>When I reached out to support, I also felt insulted and like I was begging my cable company to refund the $5 they owed me. They refused to acknowledge that their product is broken or take any blame.<p>I&#x27;m honestly just waiting for a good Stripe alternative to pop up so they can&#x27;t get away with these product issues and bad customer support policies so easily.
评论 #30544075 未加载
unfocussed_mike大约 3 年前
The fact that it took the writer <i>three months</i> (!) to spot this problem sets up a situation (IMO) in which swearing for effect in a chat session is out of the question. It&#x27;s partly on him.<p>Anything to do with money and tax internationally is complex, and it should be monitored <i>at least</i> until you know it works, e.g. put dates in your diary to check your first international customers paid the right tax?<p>I must say, the Stripe chat session support people are <i>heroes</i> when you consider the breadth of the topic area they are covering, and some of the random chat abuse they must get from confused end user customers, and I don&#x27;t think they deserved the fake-swear or some of that tone.<p>Especially when the writer concedes he could have been productive in the meantime. Some of this stuff just goes with the territory, and they are a business, not magicians.<p>There&#x27;s also a sandbox -- is the writer saying there was no way to find this out through testing in the sandbox?<p>I have had one experience like this where I got a result I did not expect on live compared with the sandbox, which came down to quirks of my sandbox testing.<p>Specifically to do with trying to speed up testing [0]. I was getting payment collection tested within the day, but that meant a setting that affected something that happened at the end of the billing day never showed an impact in testing; on live it always would. That outcome, I think, could have been covered in a footnote like the one that was added after the writer&#x27;s experience.<p>The reality is that Stripe&#x27;s documentation is <i>heroically excellent</i> (a counterpoint to the Hugo story yesterday) but their system is vast and has all sorts of complex real-world interactions. They have shown they are responsive by correcting the documentation going forward.<p><i>[0] About the only thing I wish you could do that you cannot, is accelerate time in the sandbox, to make stuff like this easier to test. I understand why you can&#x27;t but this is my fantasy. A stateful Stripe Connect mock would be useful though; I had to add one to my app.</i>
评论 #30539827 未加载
评论 #30543144 未加载
sleepytimetea大约 3 年前
Is there an extra fee for this Stripe Tax integration extra ? If not a separate fee, will they refund partially given that no alerts or alarms were raised for this behaviour ?<p>All I can say is they probably built this in a hurry and the workflows weren&#x27;t really tested or checked by humans. I call it &quot;But CI is green&quot; syndrome.
评论 #30536507 未加载
danity大约 3 年前
Sad to see Stripe fall to the bean counters instead of staying focused on customers. They were coming out with some cool innovations a few years ago. Even &quot;don&#x27;t be evil&quot; Google is moving in this direction. Not sure why companies always evolve this way. Boeing is another prime example. Apple has maintained its focus on the customer and thrived, bucking the trend, which seems like it would be motivation for others to stay focused on the customer. Especially given when Apple hired the Pepsi guy to run things in the bean counter way, the company nearly died.
评论 #30537235 未加载
评论 #30537305 未加载
评论 #30537367 未加载
tut-urut-utut大约 3 年前
I don&#x27;t understand why would anyone use Stripe Tax? At that price range, suddenly one can also switch to something like Paddle, Gumroad, FastSpring, MyCommerce or some other Merchant of Record.<p>The merchant of Record will then act as a middleman&#x2F;reseller between your SaaS and a consumer, and will take full responsibility not only for calculating, but also collecting and filing taxes in any of the jurisdictions.<p>As a SaaS, all you get from MoR is one payment at a defined schedule. Any errors in tax calculation, reporting, filing are not your problem, it&#x27;s their problem.<p>Stripe Tax costs the same as Merchant of Record, but it doesn&#x27;t do anything they do. Yes, they help you calculate the tax amount, give you the summary, but it&#x27;s you that still need to file taxes correctly everywhere in the world, and it&#x27;s still you that is responsible for Stripe Tax mistakes.<p>Until Stripe can act as a full Merchant of Record, I don&#x27;t see a reason to use them unless one sells only in one (home) country.
评论 #30540160 未加载
rwky大约 3 年前
Things like this are why I do this internally and just use stripe and other payment providers for actually charging the customer. Granted it&#x27;s a pain in the arse but you only need to set it up once and occasionally adjust the tax rates as they change.<p>IMHO stripe has become far too complex and people are relying on them for a critical part of their products without a fallback. I&#x27;ve seen a few occurrences lately where bugs, random account blocks etc have taken Stripe payments offline and suddenly the revenue stream tanks.<p>Always have a backup payment provider!
评论 #30539159 未加载
kevinpet大约 3 年前
That sequence of events is exactly what I&#x27;d expect for a &quot;we screwed up, but not in a way to incur any legal liability&quot;<p>1. Generic answer that &quot;yep, it&#x27;s not working, here&#x27;s how to fix it&quot; 2. Updating documentation to make it better. 3. Somebody saying &quot;what should we do about all the other customers in the same situation? can we just shut up about it?&quot; leading to the last email.<p>And then... yeah, you can&#x27;t directly apologize and take responsibility because that would cost you a fortune (and really, back billing is the right answer, though maybe he could in turn offer his customers a month&#x27;s discount or something). Maybe Stripe could waive some fees for a while or something, but you have to have some limits on hard to use but technically correct situations.
评论 #30537507 未加载
anonymousiam大约 3 年前
Stripe is just awful. I have no experience from the vendor side, but as a customer, I&#x27;ve noticed that they seem to associate a credit card number with an email address. My business credit card is associated with dozens of different email addresses, but Stripe wants to use the one associated with my most recent purchase regardless of what email I provide to them.<p>I get emails coming in to random (but valid) email addresses for purchases I make with vendors using Stripe. For example, I&#x27;ve seen Internet domain renewal charge confirmation notices going to my auto repair email address, and I&#x27;ve seen telecom hardware purchase confirmations going to my Jersey Mikes (sub shop) account email.<p>I suspect that this is another example of &quot;you are the product.&quot;
评论 #30544497 未加载
评论 #30538046 未加载
评论 #30541240 未加载
tarr11大约 3 年前
This is why you need a good bookkeeper who will catch things like this when doing monthly reconciliation.<p>There are so many ways that billing can fail and they all result in cash flow problems which is incredibly stressful.
评论 #30537149 未加载
NorwegianDude大约 3 年前
Upcoming problem: &gt; Canada is the only jurisdiction I run my business, and therefore only need to charge tax to Canadian customers<p>Where your business is located doesn&#x27;t necessarily mean anything. The location of the customer is what usually matters. You&#x27;ll most likely have to register in quite a few places and keep up with tax reporting, payments, and rules everywhere you&#x27;re registered.
aetherspawn大约 3 年前
I used to use Stripe to process payments. One day someone bought a huge item with a stolen card.<p>Stripe sent me an email saying the payment had been “processed”, so I gave them the $3000 item. I later logged in and noticed “processed” meant “processing”, and the stolen card bounced at the bank a week later. They refused to take responsibility for sending me an email that clearly said the payment had been fully processed when it in fact had not been, allowing the item to be stolen.<p>Stripe support mocked me. They refused to cover the money and I never used them again. The only redeeming factor was it logged their IP address in the card logs, so I gave it to the police and they caught someone who had stolen hundreds of other items (but still no recuperation of lost funds for me).<p>I only use PayPal now. Never had an issue with PayPal, and they have always fully insured all transfers. No confusing transaction states that offload responsibility as a payment processor. None of this “we take a huge cut, but actually grant you no protection” garbage.
评论 #30541188 未加载
fleddr大约 3 年前
I don&#x27;t disagree with the point that Stripe should have implemented failure handling in a much better way for something as important as this. Valid point.<p>Still, the post is equally a massive self-own. In what business can you be so lax about cash flow, the most important business metric ever, as to concluding that it &quot;feels&quot; off after some 3 months and then think it will somehow even out over time? And only because you were alerted by a customer?<p>What would happen without that customer? A few more months of tanking financials before you wake up?<p>I must be a dinosaur to believe that order intake&#x2F;management, invoices, tax and payments is something you&#x27;re absolutely on top of, on a daily basis. It&#x27;s the very core of every business. Either you do it or your accountant does it.<p>It doesn&#x27;t matter if you use Stripe or a piece of paper, this is a thing to be on top of. Did I get paid is the #1 business question, nothing else matter in comparison.<p>Further, OP implemented a tax module, didn&#x27;t bother to read the migration guide, and tested nothing. Same problem: an unmanaged business. You should not miss 3 months worth of draft invoices.<p>Still, we all make mistakes, Stripe could definitely have done better as well, so some irrational anger is understandable. Yet I find it very sour how some poor support team is hung out to dry.<p>Disclosing all of this in this amount of needless detail is close to doxing. Next, it is shared far and wide after which many people can pile on to the team. I find that disproportional and in poor taste. You can tell how even when the problem is clear and some acknowledgement is given, it&#x27;s not enough. It&#x27;s as if OP want theirs heads. Revenge.<p>Don&#x27;t humiliate support teams. If you want compensation, be clear about what you want exactly. They aren&#x27;t going to rectify you with a full page ad in the NY Times.
rkagerer大约 3 年前
I consider this a great example of why systems dealing with money should be carefully engineered with sufficient safeguards in place that even reckless kindergarteners could operate with reasonable confidence they can&#x27;t shoot themselves in the foot.<p>This is not a field where you want complexity or cognitive overhead.<p>I&#x27;ve encountered some ugly code while consulting in the payments space and had to educate and advocate (sometimes less gently than that word conveys) with developers concepts like atomicity, rollback, instrumentation, reconciliation, monitoring, diagnosability, etc. even after their creations had misplaced literally hundreds of thousands of dollars. It&#x27;s always easy to blame the user; a good developer&#x2F;architect understands how their code&#x2F;systems can fail and stays on the lookout for edge cases and potential gaps.
tehwebguy大约 3 年前
An aside: It’s so absurd that someone should have to collect tax on behalf of a jurisdiction they aren’t even in. One the worst outcomes of Amazon reaching critical mass was their making agreements with various states and countries, making the tax collection moat wider and wider.
评论 #30548967 未加载
r_hoods_ghost大约 3 年前
So user didn&#x27;t read guide properly, then after turning on a new tax invoicing system didn&#x27;t check that all customers were actually being invoiced for three months... Obviously Stripes fault. &#x2F;s
评论 #30538922 未加载
eek2121大约 3 年前
So, this kind of sent me on an emotional rollercoaster. I empathized with both parties.<p>That being said, my sites have thousands of subscribers. If subscriptions were off by a cent at any point in time, things would have been red flagged, and I would have contacted them (Strip, that is). I do have a backup payment processor, and assuming both are unavailable due to negligence on the providers&#x27; end or my own, I give the users the month for free. I had to do this exactly once in 15 years.<p>Stripe, without a doubt, screwed up, and the writer was correct in taking them to task, however, end users should have been let off the hook. It sounds like the write wanted to back bill them for it.<p>You should absolutely not be tossing this at customers, I would have thanked the customer, then I would have given them several months free while I resolved the issue.<p>Customers should be first. I actually had to archive a site recently due to declines in my ability to update it. The customers involved weren&#x27;t unhappy about my ability to keep it updated, they were unhappy that I was shutting out their ability to support the site.<p>Treat your customers like gold. I promise you won&#x27;t regret. I had someone try to donate thousands to me to keep a site online. I declined and kept the site online and archived for free.
XCSme大约 3 年前
&gt; the tax engine knows that I do not need any additional information for subscriptions that are US-based or based in other countries as I have no obligations to collect tax there<p>Is this true? Don&#x27;t you always have to collect&#x2F;pay local taxes if you are selling stuff in a country? For example, you sell to a customer in Germany, your price must include German VAT.
评论 #30543749 未加载
mytailorisrich大约 3 年前
Payments, invoicing, tax, etc are hard because the logic is complex and many things can fail in many places.<p>Stripe has expanded by offering to take care of that for customers. That has two consequences: (1) obviously that means Stripe has to take care of the complexity with the added problem that each customer has a specific use-case and (2) customers must still make the effort to understand <i>exactly</i> how Stripe&#x27;s system works and implement extensive checks and reports (That&#x27;s always the case with payments but even more as you entrust more business logic to a third party).<p>Not taking (2) seriously will hit you. If you notice an issue because a customer actually took the time to contact you because they have not been charged in several <i>months</i>, it definitely means that you have not followed through on (2) at all.
jokethrowaway大约 3 年前
Thanks for sharing, I was considering using them (and I was even in the beta) but the product seemed way lacking and I didn&#x27;t want to pay the extra fees - so I stayed on my custom implementation.<p>For small businesses, you probably know better than Stripe what taxes you need to pay (no wonder how complicate they may be).<p>Besides, your reasoning that you need to charge only canadian VAT is incorrect. If you sell to EU non business customers you need to charge EU VAT. If you sell over a certain threshold in most US states, you need to charge their sales tax. Australia is also threshold based.<p>Now, my business is small enough I can ignore safely all the threshold for the foreseeable future (sigh) but I do need to track every damn European penny (and I don&#x27;t sell to EU customers some services just because of this).
latchkey大约 3 年前
Tangental side note, I googled profitwell (mentioned in the gist) and the first result is an ad for another competing company (that I won&#x27;t mention) which includes &quot;profitwell&quot; in the title tag. Super shady!
评论 #30537725 未加载
neycoda大约 3 年前
This is a massive screw-up by Stripe, and the fact that you had such a difficult time communicating with them makes it ever more difficult to fix. We need intelligent humans overseeing this software, not a bunch of triggered bots and human script readers. I don&#x27;t know how to get Stripe to fix this other than media embarrassment, which is an incredibly inefficient way to run customer support and QA.
Irongirl1大约 3 年前
Does anyone know if this is just the implementation that came with Stripe&#x27;s purchase of TaxJar? Because perhaps they just bought something that was working and when they merged it with the rest of their operations and expanded into Canada certain bugs became more apparent??
gzer0大约 3 年前
<i>Stripe: &quot;Upon checking, it appears that the concern has been escalated to our specialist who handles the concern for you.&quot;</i><p>What a way to avoid saying &quot;problem&quot;, &quot;bug&quot;, &quot;issue&quot; or any other term that might be perceived negatively in a lawsuit.
gw67大约 3 年前
Thank you for sharing this. I have just found dozens of invoices not charged!
ckdarby大约 3 年前
This started up as a good write up but quickly tanked when the article started to turn into just chat history pasting.
spoonjim大约 3 年前
The part about waiting 3 days for a reply was shocking. If you have a serious problem (with anything) get on the PHONE.
MerelyMortal大约 3 年前
I hope OP is rewarding the customer that noticed and notified OP about the issue.
donalhunt大约 3 年前
Oh man... This is my experience with so many technology providers. &#x2F;sadface
thathndude大约 3 年前
Aside from a Stripe rep estimating a response in 12-24 hours, and then taking 3 days to give out a canned response, it seems like Stripe hasn’t don’t anything wrong.<p>This potential issue was flagged in the documentation.<p>I don’t want to “blame the victim,” but I don’t see Stripe As particularly culpable here.
unobatbayar大约 3 年前
Using GitHub Gist as a blog is such a cool idea that I might just do that.
Shadonototra大约 3 年前
I stopped using Stripe the day i had to pay for the chargebacks, fuck that, paypal is bad, but at least it&#x27;s not that bad
numair大约 3 年前
Before anyone gets too excited to talk about their problems with Stripe on HN, please know that my account is semi-banned and anything I post is flagged as “self promotion” after I wrote a negative piece on Stripe that reached the HN front page.
评论 #30537843 未加载