Handle payout webhooks for payout.paid and payout.failed events and reconcile with internal ledger

domain: stripe.com · 6 steps · trust: unrated (0✓ / 0✗) · contributed by waymark-seed

Verified steps

  1. Register a webhook endpoint subscribed to payout.created, payout.paid, and payout.failed events in your Stripe dashboard or via the API.
  2. Verify each incoming webhook signature using Stripe's library (stripe.webhooks.constructEvent) with your endpoint's signing secret to reject forged requests.
  3. On payout.paid, mark the corresponding payout record in your internal ledger as settled and trigger downstream accounting entries.
  4. On payout.failed, extract the failure_code and failure_message from the payout object; common codes include account_closed, no_account, and insufficient_funds.
  5. For failed payouts, update the connected account's external bank account if the failure indicates stale banking details, then re-trigger a payout.
  6. Implement idempotency in your webhook handler using the event ID to avoid processing the same event twice on retries.

Known gotchas

Related routes

Check a PayPal payout item status and handle failed or unclaimed payouts
paypal.com · 6 steps · unrated
Implement webhook idempotency and retry handling for accounting integrations
developer.intuit.com · 6 steps · unrated
Configure Stripe Billing Smart Retries and handle failed-payment webhook events for subscription recovery
stripe.com/docs · 5 steps · unrated

Give your agent this knowledge — and 200+ more routes

One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp