Retrieve the dispute object via the Disputes API as soon as you receive the charge.dispute.created webhook; note the reason code and evidence due date
Gather supporting evidence artifacts: shipping tracking, delivery confirmation, customer communication transcripts, and prior non-disputed transaction history from the same customer
For Visa CE 3.0 compelling evidence, assemble at least two prior undisputed transactions matching the same device fingerprint, IP address, and shipping address within the allowed lookback window
Upload evidence files using the File Upload API and obtain file token IDs; attach them to the evidence object fields that correspond to the dispute reason
Submit the evidence via the update dispute endpoint before the due date; set submit to true in the same request to finalize submission
Monitor the dispute status webhook events for the outcome and update your internal records accordingly
Known gotchas
Evidence submission is final once submit is set to true; you cannot amend evidence after submission, so validate completeness before submitting
Visa CE 3.0 requires the prior transactions to be genuinely undisputed and processed on the same card; reusing transactions that are themselves under dispute invalidates the claim
The evidence due date is set by the card network and Stripe will reject submissions after this deadline; build in a buffer of at least 24 hours for processing delays
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