The same failed payment destroyed one customer's data and left the next one's alone
We had a bug that only fired sometimes, and "sometimes" turned out to be a coin flip on webhook arrival order. Here's the setup. Our billing code ha…
Tech news from the best sources
We had a bug that only fired sometimes, and "sometimes" turned out to be a coin flip on webhook arrival order. Here's the setup. Our billing code ha…
Architecting Bulletproof SaaS Billing with Stripe Building a SaaS product is a marathon, but billing is where developers often trip over their own s…
A prompt-cache write pays for itself after a single re-read within the TTL: the write bills 1.25x the input rate, the read bills 0.1x, so one hit al…
This is a story of how you receive a higher bill than expected and how GitHub's Billing Controls help clarity and predictability. Let's begin our st…
Last time, in Accepting Payments with Stripe , I covered the part everyone assumes is the hard bit: taking a card and moving money. It isn't, really…
Creating a B2B SaaS application involves a number of challenges. One of the challenges facing entrepreneurs and businesses is the time required to d…
«У нас есть рекуррентные платежи, значит подписки уже работают». Обычно именно с этого начинается история появления собственной таблицы subscription…
Move originally planned for Monday would have heavily increased power users' costs.
В какой‑то момент у меня накопилось несколько VPS у разных провайдеров. Не десятки, но уже достаточно, чтобы каждый месяц л…
When a card payment fails in Stripe, you get a short string back — insufficient_funds , do_not_honor , authentication_required . Most teams glance a…
AI API pricing comes down to six decisions, in order: what to meter, which primitive to charge for, what to charge per unit, how to structure tiers,…
If you were on Hacker News yesterday, you saw it. A detailed post-mortem from a merchant who lost thousands of dollars to friendly fraud — customers…