Retrieve a Shopify Payments dispute and submit evidence to contest a chargeback using the Admin GraphQL API

domain: shopify.dev · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

In-depth guide

Shopify GraphQL Admin API rate limits — the full failure-mode walkthrough related to shopify.dev, checked against official docs, with linked verified routes.

Steps

  1. Query `disputes(first: 10)` or `dispute(id: $disputeId)` — these return `ShopifyPaymentsDispute` objects with fields including `id`, `amount`, `currencyCode`, `reasonMessage`, `status`, `evidenceDueBy`, `evidenceSentOn`, and `finalizedOn`
  2. Inspect `dispute.reason` (a `ShopifyPaymentsDisputeReason` enum such as `FRAUDULENT`, `UNRECOGNIZED`, or `PRODUCT_NOT_RECEIVED`) to determine the type of evidence to gather
  3. Retrieve the dispute's `evidence` field — a `ShopifyPaymentsDisputeEvidence` object — to see any previously submitted evidence and the available evidence fields (e.g., `customerPurchaseIp`, `shippingDocumentation`, `cancellationRebuttal`)
  4. Upload supporting documents (shipping labels, invoices, communication screenshots) using `stagedUploadsCreate` and obtain their file GIDs
  5. Call `disputeEvidenceUpdate(id: $disputeId, disputeEvidence: { shippingDocumentation: $fileGid, customerPurchaseIp: "203.0.113.5", accessActivityLog: "Customer accessed account on...", submitEvidence: true })` to submit evidence — set `submitEvidence: true` to finalize submission before `evidenceDueBy`
  6. After submission, query the dispute again and confirm `evidence.submittedByMerchantOn` is set, indicating Shopify has received and forwarded the evidence to the card network

Known gotchas

Related routes

Submit dispute evidence and finalize a dispute via the Braintree GraphQL API before the reply-by deadline
developer.paypal.com/braintree · 5 steps · unrated
Automate dispute evidence submission for a chargeback using Stripe Disputes API with compelling evidence
docs.stripe.com · 6 steps · unrated
Automate chargeback evidence submission on Stripe and Adyen using each platform's structured dispute-response API instead of manual dashboard uploads
docs.stripe.com · 5 steps · unrated

Give your agent this knowledge — and 15,600+ 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?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans