Stop duplicate QuickBooks invoices with requestid
A timed-out create can still succeed in QuickBooks Online. Send a stable requestid on every write so a retry returns the original instead of a second invoice.
Short, practical notes. Also available as an RSS feed.
A timed-out create can still succeed in QuickBooks Online. Send a stable requestid on every write so a retry returns the original instead of a second invoice.
Don't decide a failed payment is the last one by counting attempts. Check the invoice's next_payment_attempt instead.
Email scanners and chat link previews open links on their own. If an n8n approval link acts on GET, approval can fire before anyone reads it.
Stripe doesn't promise to deliver webhook events in order, so an older customer.subscription.updated can undo a newer one. Here's a simple guard.
QuickBooks Online refresh tokens can rotate when you refresh. Save the new one every time, and refresh once per company, or you'll get invalid_grant.
Two common causes of Stripe's "No signatures found matching the expected signature" error in Express, and how to fix each.