Skip to main content

// disputes (Dispute Shield)

Don't lose chargebacks you can win.

Fraud-score every order before it bills. Catch pre-disputes via Ethoca, Verifi CDRN, and Visa RDR. Auto-assemble evidence per reason code, draft the rebuttal, submit through Shopify Payments — Stripe and PayPal on the roadmap — all on the audit plane.

Ethoca · Verifi · RDR Visa CE 3.0 Shopify Payments live
dispute · case #d_91204
processor      : shopify_payments
reason_code    : 10.4 (product not received)
amount         : €119.00
window_closes  : 2026-05-29T23:59Z

evidence_pack  : assembled (CE3.0 eligible)
  ├─ order_payload      : o_88421
  ├─ fulfillment_chain  : 4 events
  ├─ customer_comm      : 3 outbound, all sent
  ├─ tracking_watch     : w_4810 (proactive)
  └─ prior_undisputed   : 2 (CE3.0 ✓)

rebuttal       : drafted (judge=0.94)
auto_submit    : YES (RDR auto-approval)

status         : SUBMITTED
prediction     : win 0.83

// fraud scoring

Score every order before it ships.

Six signal classes compose the fraud score for every order — weighted, calibrated to your store's actual chargeback history. The score lands in fraud_scores; risky orders route to the fraud review queue and are held before fulfilment until you clear them.

device_fingerprint

w=0.18

Browser, OS, screen, fonts — entropy-scored, cross-checked against prior fraud cases.

ip_reputation

w=0.16

VPN / proxy / residential, geolocation distance from billing address, prior abuse history.

velocity

w=0.22

Order rate from this email / card / address — bursts get scored, distributed attacks too.

email_reputation

w=0.14

Domain age, disposable / catchall flag, prior chargeback history across the merchant network.

card_history

w=0.18

BIN risk, country mismatch, prior dispute filings, issuer-side flags.

behavioral

w=0.12

Time on site, cart edits, checkout speed, copy-paste signatures of bot flows.

fraud_scores · row #fr_91204
order_id        : o_88421
score           : 0.84   HIGH
disposition     : MANUAL_REVIEW

signals         : {
  device        : 0.71   (mismatched fingerprint)
  ip            : 0.68   (residential VPN)
  velocity      : 0.92   (4 orders / 10min)
  email         : 0.45   (catchall, 7d old)
  card          : 0.81   (BIN flagged, FR→IT)
  behavioral    : 0.62   (suspicious tempo)
}

calibrated_to   : 90d store history
threshold_hi    : 0.75 (review queue)
identity_cluster: c_207 (2 alias emails, 1 phone)

action_queued   : held pre-fulfilment + operator ping

Identity clusters connect the dots a single order hides: the same customer behind alias emails and phone numbers is linked into one cluster, so a repeat disputer's third "first order" scores like what it is.

// the real product

The disputes inbox, evidence and all.

A real screenshot of the dashboard — demo store data. Every case with its evidence status and deadline, and the win rate up top.
app.magistry.io/dashboard/disputes
The Magistry disputes inbox — chargeback cases with evidence status, deadlines, and the store's win rate

// pre-dispute alerts

Refund before the chargeback files.

Issuers send pre-dispute warnings — Ethoca, Verifi CDRN, Visa RDR. Magistry listens for them and acts inside the response window, before the dispute becomes a chargeback you have to fight.

Ethoca

Mastercard

Inbound issuer-side alert when a customer files a dispute. We auto-refund or counter within the response window, before the chargeback lands.

Verifi CDRN

Visa

Consumer Dispute Resolution Network — early warning from the issuer. Same auto-route: refund inside window, or queue evidence for rebuttal.

Visa RDR

Visa

Rapid Dispute Resolution. Pre-authorized refund rules fire automatically when criteria match — never wait for a human to click.

Every inbound alert lands in dispute_alerts with vendor, reason code, response window, and routing decision — auto-refund, auto-rebut, or human review. Same audit plane shape as every other Magistry write.

// tracking watcher

Order-Not-Received prevention.

The most common chargeback reason is one you can prevent. Tracking Watcher monitors fulfillment events on every shipment — when an order stalls past your store's threshold, the customer gets a proactive update before they ever doubt the package is coming.

// what it watches

  • Carrier last-ping time vs your stall threshold per lane.
  • Customs holds, last-mile failures, return-to-sender events.
  • Address mismatch warnings caught before the package leaves.

// what it does

  • Drafts proactive customer email — language-gated, brand-voice held.
  • Sets policy-defined trace SLA — refund or replace if no movement by date.
  • Logs a tracking_watches row — future dispute gets that history attached as evidence.
tracking_watches · w_4810
order_id      : o_88421
carrier       : DHL
ship_date     : 2026-05-19
last_ping     : 2026-05-21T08:14Z
stall_age     : 4d 2h

threshold     : 72h (set per EU lane)
status        : STALL_DETECTED

action        : proactive_outbound drafted
                cs_outbound_drafts#d_4810
sla_decision  : refund-if-no-move-by 2026-05-28

attached_evidence_for_future_dispute = true

// evidence + rebuttal

The packet writes itself.

Once a dispute lands, Magistry walks the order, the fulfillment history, the customer comms thread, and the policy chunks — and assembles the rebuttal packet to the issuer's accepted spec. LLM drafts; Reply Judge scores; you approve or auto-submit.

Per-reason-code assembly

Each dispute reason code — fraud, product-not-received, not-as-described — has its own evidence template. Magistry walks the order, the fulfillment, the customer-comms thread, and fills it.

Visa CE 3.0 auto-detect

Compelling Evidence 3.0 — if the customer has two prior undisputed transactions on the same merchant, we surface the data Visa needs to dismiss the dispute on technicality.

LLM rebuttal generation

Rebuttal letter drafted from the evidence pack — fact-grounded, citation-rich, formatted to the issuer's accepted spec. Reply Judge scores before submit.

Submission to processor

On Shopify Payments, the evidence pack ships directly through the disputes API — never a manual upload. Stripe and PayPal submission are on the roadmap.

// submission targets

One workflow. Shopify Payments live, Stripe and PayPal next.

On Shopify Payments, Magistry submits the dispute response through the API — with idempotency, retries, and event-stream parsing into dispute_events for live status. Stripe and PayPal submission are on the roadmap.

Shopify Payments

Disputes API (Admin GraphQL) · live

Direct submission of evidence packs — live today. Status events stream back into dispute_events for live tracking inside the dashboard.

Stripe

Disputes API · roadmap

On the roadmap — the submission protocol is in place. Until it ships, Magistry assembles the evidence pack and rebuttal for you to file.

PayPal

Disputes API · roadmap

On the roadmap — same workflow shape. Evidence assembly and rebuttal drafting work today; direct submission is coming.

Friendly-fraud disputes are winnable when the evidence is assembled well and submitted on time. Dispute Shield builds the evidence pack from your order and tracking data and runs the prevention and rebuttal loops on the same audit plane as the rest of your store.

// Dispute Shield

Stop fighting yesterday's chargebacks.

Wire your processor, point Magistry at the alert feeds, and let Dispute Shield run the prevention loop and the rebuttal loop on the same audit plane as the rest of your store.

Ethoca · Verifi · Visa RDR · Visa CE 3.0