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 · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
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
Known 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
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?