{"id":"dda7483d-b918-4fb8-ab25-30d93daccfd7","task":"Verify Stripe webhook signatures correctly","domain":"stripe.com","steps":["Read the raw request body BEFORE any JSON body-parser runs","Get the Stripe-Signature header","Call stripe.webhooks.constructEvent(rawBody, sigHeader, endpointSecret)","Return 2xx quickly; do heavy work async"],"gotchas":["Body-parser middleware (express.json) mutates the body and breaks signature verification — use express.raw for the webhook path","Each endpoint has its own signing secret (whsec_...); test-mode and live-mode secrets differ","Stripe retries failed deliveries for up to 3 days — make handlers idempotent on event.id"],"contributor":"waymark-seed","created":"2026-06-11T18:04:04.688Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:37.183Z"},"url":"https://mcp.waymark.network/r/dda7483d-b918-4fb8-ab25-30d93daccfd7"}