Handling disputes and chargebacks
The finance playbook for contested money: how card chargebacks arrive, where disputes show up, flagging an invoice dispute, and what pauses dunning.
A dispute is money you thought was settled that someone is now contesting. In Throttle there are two kinds, and they work differently: card chargebacks, raised by the buyer’s bank, and invoice disputes, raised by your team when a buyer on terms won’t pay. For the developer view, see Disputes and chargebacks.
Card chargebacks arrive on their own
When a buyer disputes a card payment with their bank, the processor tells Throttle, and Throttle flags the matching payment as Disputed — no one has to enter it. When the processor decides the case, Throttle records the outcome on its own:
- Won or reversed: the flag clears and the order reads as paid again.
- Lost: the flag clears, the payment shows Chargeback lost, and the order’s payment status becomes Chargeback lost — the money was taken back. A
payment.dispute_lostwebhook fires once.
So Disputed always means “open right now” — a case with a deadline.
Contesting the chargeback — uploading evidence, meeting the deadline — happens in your processor’s own dashboard. Throttle records where the dispute stands; it doesn’t run the case.
Where disputes show up
| Place | What you see |
|---|---|
| Dashboard home | A Disputes count |
| Orders | Filter All payment statuses → Disputed for open cases, or Chargeback lost for the ones you lost, and Export CSV for a working list |
| An order’s Payments tab | A red Disputed badge, with the reason on hover |
| Receivables → Overview | A Disputed card for invoices excluded from dunning |
| Receivables → Aging | Disputed invoices stay listed, with a badge |
Throttle doesn’t email you when a dispute opens. If you need to hear about it straight away, subscribe to the payment.disputed webhook — or ask an AI assistant for the attention digest each morning.
Disputing an invoice
When a buyer on invoice terms contests an invoice — wrong quantity, goods not received — flag it so the reminders stop while you sort it out:
- Open Receivables → Invoices and the invoice.
- Click Open dispute, describe the reason, and confirm.
- The invoice now shows a Disputed block, and Mark as paid is disabled while it’s open.
While it’s disputed, the invoice is skipped by the overdue-reminder run: the buyer gets no overdue emails and no invoice.past_due webhook fires. It still counts in aging, so it doesn’t disappear from your receivables.
When it’s resolved, click Clear dispute — there’s no confirmation, so be sure. The reason and opened date stay on the record, and both actions are in the audit log.
Who can do it
Opening and clearing invoice disputes needs a role that can change orders — owner, workspace admin, app admin, or developer. The finance role can see disputes but can’t open or clear them; ask an admin, or have your role widened.
Resolving the money
- Buyer was right: refund or credit them — see Handling returns, exchanges, and refunds — then clear the dispute.
- You were right: clear the dispute; reminders resume on the original due date.
- Partial agreement: record what they did pay with Record payment on the order, then clear.
Related
- Getting paid on invoice terms
- Invoice terms (Net-N)
- Webhooks —
payment.disputed,payment.dispute_cleared, andpayment.dispute_lost