Disputes + chargebacks

When a cardholder disputes a charge on a Soren Pay-issued card, here's exactly what happens and what you need to do.

Who handles what

| Step | Owner | |---|---| | Customer notices the charge, calls their bank | Customer + their issuing bank | | (For Soren Pay-issued cards) the Visa issuing partner receives the dispute notification | Issuing partner | | Our issuing partner notifies us via card.dispute.opened webhook | Us | | We surface it in your dashboard + email | Us | | You gather evidence (receipt, contract, communication log) | You | | You submit evidence via /api/cards/[id]/disputes/[id]/evidence | You | | The issuing partner forwards to Visa | Issuing partner | | Visa adjudicates | Visa | | Outcome webhook (card.dispute.won or .lost) | Issuing partner → us → you |

We're a thin layer here — Visa runs the network, our issuing partner runs the dispute program, you provide the merchant evidence. Soren Pay surfaces the state and emails you when action is required.

Common dispute reasons

| Visa reason | Meaning | Evidence to provide | |---|---|---| | 10.4 — Other Fraud — Card-Absent | Customer says they didn't make the online charge | IP + browser fingerprint + 3DS verification record | | 13.1 — Merchandise/Services Not Received | Customer says they never got what they bought | Tracking number + delivery confirmation | | 13.3 — Not as Described or Defective | Customer says product didn't match listing | Listing screenshots + your return policy | | 13.4 — Counterfeit Merchandise | Customer claims forgery | Authenticity certificates, vendor records | | 13.6 — Credit Not Processed | Refund promised but not given | Refund txn record |

Timeline

  • Day 0: Dispute opened. You're notified.
  • Day 0–7: Gather evidence. If you don't respond, Visa rules for the cardholder by default.
  • Day 7–30: Submit evidence. The issuing partner forwards.
  • Day 30–60: Visa adjudicates.
  • Day 60+: Outcome final.

Submitting evidence

curl -X POST https://api.sorenpay.com/api/cards/<card-id>/disputes/<dispute-id>/evidence \
-H "Authorization: Bearer apk_…" \
-F "receipt=@/path/to/receipt.pdf" \
-F "communication_log=@/path/to/emails.pdf" \
-F "narrative=Customer purchased on 2026-05-12 via web. Delivered on 2026-05-15 per tracking #..."

(Endpoint ships in a follow-up — currently dispute handling is via the dashboard only.)

Chargeback fees

Per Visa rules, lost disputes carry a $15 chargeback fee debited from your workspace ledger as card_dispute_fee.

Prevention

  • 3D Secure: live mode auto-enables 3DS for CNP (card-not-present) transactions. Reduces fraud chargebacks (10.x) significantly.
  • Detailed product listings: cuts 13.3 (not as described) by half.
  • Clear refund policy + responsive support: cuts 13.1 / 13.6 — most customers will file a chargeback only after support fails.

Related