Live data from Hacker News

My Stripe Tax Story

gist.github.com

171–180 of 299 posts

Re: My Stripe Tax Story

#171
post #98

Earlier quoted context omitted.

The goal of Stripe is to make things simple. I shouldn’t have to implement a webhook to discover that none of my invoices are actually being paid. I’d expect a notification email to be sent to the account until that is explicitly turned off.

If you're writing software, and you develop a new feature without testing the failure path, then I don't think it's possible to make any safe assumptions about what failure should or shouldn't do.

I agree with you on general basis, but in this case it seems that Stripe provides a dashboard containing key data. It's not unreasonable to expect that critical payment failures would be displayed as well.

It's always a risk to make assumptions, but I don't think this specific assumption was unreasonable.

Re: My Stripe Tax Story

#172
Stripe: "Upon checking, it appears that the concern has been escalated to our specialist who handles the concern for you."

What a way to avoid saying "problem", "bug", "issue" or any other term that might be perceived negatively in a lawsuit.

Re: My Stripe Tax Story

#173
The fact that it took the writer three months (!) to spot this problem sets up a situation (IMO) in which swearing for effect in a chat session is out of the question. It's partly on him.

Anything to do with money and tax internationally is complex, and it should be monitored at least until you know it works, e.g. put dates in your diary to check your first international customers paid the right tax?

I must say, the Stripe chat session support people are heroes 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't think they deserved the fake-swear or some of that tone.

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.

There's also a sandbox -- is the writer saying there was no way to find this out through testing in the sandbox?

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.

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's experience.

The reality is that Stripe's documentation is heroically excellent (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.

[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't but this is my fantasy. A stateful Stripe Connect mock would be useful though; I had to add one to my app.

Re: My Stripe Tax Story

#175
post #55

Earlier quoted context omitted.

> he sits down at his computer every night at home, logs into the ERP system, and reviews sales and receipts Sorry, what? How is this OK or even normalized - he should not have to check every single receipt every night. You hire people to do that, and if they cannot do it right, you hire someone else. As OP mentioned, it wasn't a gradual thing, and when you have a lot of customers, it can easily slip through. Even yo…

My dad is not next to me to reply, but your rebuttal patterns a conversation that he and I had many times over the years, when I was first getting my start in business and tried to tell him he was too old fashioned in his business methods. The bottom line is that you absolutely have to be involved in all levels of your business if you want to be successful and don’t want to be taken advantage of by the unscrupulous.…

> The bottom line is that you absolutely have to be involved in all levels of your business if you want to be successful and don’t want to be taken advantage of by the unscrupulous.

I am a highly anxious person, and it can be debilitating.

But when you're talking about taking payments and arranging the collection of tax, I reckon it's wise to treat your anxiety like a colleague. Give it the best chair; make sure it has lunch, and not too much coffee. And listen.

Re: My Stripe Tax Story

#176
Thanks for sharing, I was considering using them (and I was even in the beta) but the product seemed way lacking and I didn't want to pay the extra fees - so I stayed on my custom implementation.

For small businesses, you probably know better than Stripe what taxes you need to pay (no wonder how complicate they may be).

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.

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't sell to EU customers some services just because of this).

Re: My Stripe Tax Story

#177
post #159

Earlier quoted context omitted.

> Using Stripe Tax to only handle tax for customers in the home region of the company when the company also sells outside the home region seems like a strange goal. It's a common goal. When becoming compliant with sales tax laws, it makes sense to prioritize the states/countries where the business has a physical presence. https://en.wikipedia.org/wiki/Sales_tax#Enforcement_of_tax_o...

Better yet, if you don't have a physical presence in the USA (eg: the item was shipped from Canada), then the obligation of remitting the appropriate taxes often falls to the purchaser: https://www.avalara.com/blog/en/north-america/2016/12/guide-...

Incorrect, this is out of date.

It's your responsibility but only over a threshold (and the rules / amount are different in every US state)

Re: My Stripe Tax Story

#178
post #99

Earlier quoted context omitted.

Could you explain why a big sale just before closing is an indicator of fraud? I don't understand.

In a brick-and-mortar business, closing time is when employees (i.e, non-owners) are in a hurry to get the store cleaned up and shut down so that they can go home. They’re tired and they might feel pressured to just get the sale done. Scammers know this and so closing time is a good time to come in and try to pass off a fake credit card with a stolen number. Weekends, when many less-seasoned employees work, is anothe…

That's also the only time (closing time and weekends) for anyone with a job to buy stuff, no?

Assuming normal closing hours of 18:00-20:00 o'clock of course.

Re: My Stripe Tax Story

#179
post #110

Earlier quoted context omitted.

> 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. I work in eCommerce and occasionally there will be something like a script or config gets messed up and an issue with billing will happen. And being the "expert" I'm usually the one called to fix it. I wish I could…

Well, I am sorry but in my eyes this just shows bad product quality, bad transparance and missing understanding of basic business stuff on the side of the product. The only reason for software to be existing is to NOT mandate users to check stuff manually.

> The only reason for software to be existing is to NOT mandate users to check stuff manually.

Software exists so users don't have to do stuff manually. But people should absolutely check on things periodically. That doesn't mean it's always necessary to check every single transaction, but spot and sanity checking is mandatory diligence, IMO. I pay my CPA to do my taxes so I don't have to do them myself, but of course I sanity-check the end result before signing off on it.

And OP made a huge change to how he was invoicing/taxing his customers, and then didn't verify that things were working properly after making the change? That's just irresponsible.

Stripe's documentation and API could probably stand to improve here, but that's the nature of products and API UX: never perfect. I do think it's pretty lame that Stripe's support and product people were evasive and did a bad job of admitting that the product had some rough edges that need to be improved.

But... c'mon. Not checking something as basic as "are my customer's payments being processed properly" after making a large change to the payment processing pipeline, and only finding out something was wrong, three months later, after an honest customer asked why they weren't being billed? That's pretty bad.

Re: My Stripe Tax Story

#180
post #53

Earlier quoted context omitted.

One more thing to add to this: scrutinizing transactions isn’t just for catching bad stuff. It’s also a way to spot the good. For my dad, it’s a way to spot up-and-coming salespeople who are punching above their weight, for noticing high-dollar sales to repeat customers and making sure that those folks are well cared-for. It also tells him what bikes are selling well and helps him make strategic decisions for buying.…

To be fair, in this case, the author was tracking his KPIs, and those suggested that all was hunky dory, but what he wasn’t tracking were the actual payments being received against invoices that never converted to an open state. In this case, the invoices were left in a draft state on Stripe’s side. And who could’ve expected that they’d need to occasionally check for draft invoices? It seems like it wasn’t made clear…

That feels weird to me. If some dashboard is telling me "nice, your revenue is growing!", but the money actually flowing into the bank account doesn't look right, I'm going to investigate. Immediately. I'm not going to just trust those metrics when the actual real-world measure doesn't match.
Post reply on HN