I've spent 5+ years building payments and automation for other people's businesses. Quietly. No audience - just shipped systems.
Time to open the workshop. Who I am and what you'll get here π
@prayag_sonar Yes, it was really nice. I bought $100 claude a year ago, and didn't want to spend another $20 on perplexity, so I just unsubscribed. Probably it still does its job better then claude to search something, but claude is enough for me
@aSteveChun Retyping orders across systems is the one I keep running into too. The part that surprised me is how often it's not a missing integration but a field mismatch nobody wants to own. What made you land on those three?
If Pay at Con is going through a draft order, that is the whole explanation: drafts leave inventory untouched unless the reserve-inventory option is ticked when the draft is created, and the stock only moves when the draft converts to a paid order. Reserving at creation is what stops the count from drifting in the first place.
Does Pay at Con create an actual order in admin, or does it stop at a draft?
@mroentnkr@Smurfette196307@JesterJum@QuickBooks the feed dying silently is usually the bank moving to OAuth, not QB itself. the old link doesn't ask to be re-authorised, it just stops. worth re-linking once before assuming it's gone for good. How often are you doing the drive run?
The "Idempotency-Key" header. Same key + same params for 24h -> Stripe replays the stored response instead of executing again.
One rule: derive the key from your order id. A random key per retry = no protection at all.
Working example: https://t.co/Hh84jYCs99
(lib/outbound-idempotency.ts)
Webhook dedupe won't save you from this one.
Your payment request to Stripe times out. Did the charge go through? You don't know. Most code retries blindly - and charges the customer twice.
Stripe has a built-in fix that AI-generated code almost never uses π