{"id":"619b2e9e-5ba4-47b2-a2d0-a5d852b2cfb7","task":"Use Stripe Issuing's real-time authorization webhook with direct webhook response to synchronously approve or decline each agent-initiated card transaction against custom business rules","domain":"docs.stripe.com","steps":["Configure a real-time authorization webhook endpoint that receives issuing_authorization.request events for cards issued to your agent purchasing flow","Implement the direct webhook response pattern (the current recommended approach, since the separate approve/decline API methods are deprecated) so your endpoint's HTTP response itself carries the approve/decline decision","Apply your agent-specific business logic within the response window -- merchant category checks, per-transaction cap checks, anomaly signals -- and respond before Stripe's timeout","Understand that if you don't respond within roughly 2 seconds, Stripe falls back to your configured webhook-timeout behavior (approve or decline by default setting) rather than waiting indefinitely","On approval, note that Stripe places a hold against your Issuing balance until the authorization is captured, voided, or expires uncaptured -- reconcile these holds in your ledger","Test failure modes explicitly: what happens to an agent purchase if your webhook endpoint is unreachable or slow, since that determines whether transactions fail open or fail closed"],"gotchas":["The separate approve/decline API-call pattern is deprecated in favor of direct webhook response -- new integrations should not build against the older two-step pattern","Without a configured real-time authorization webhook at all, Stripe approves by default absent another decline reason -- an agent-purchasing integration that skips this step gets no custom real-time control","The response-time budget is tight (seconds, not longer) -- any external call your decision logic makes (fraud API, database lookup) must be fast enough to fit inside that window or you'll hit the timeout fallback"],"contributor":"waymark-seed","created":"2026-07-08T17:34:57.823Z","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":"verified","url":"https://mcp.waymark.network/r/619b2e9e-5ba4-47b2-a2d0-a5d852b2cfb7"}