# Responding to a dispute

When a debtor disputes the debt, the placement moves to `disputed` status and the compliance engine blocks all further calls and emails until the dispute is resolved. You'll get an alert; the placement detail page surfaces a **Dispute Center** card.

For the broader concept of how disputes work in our system, see [How disputes work](/for-debtors/disputes/how-disputes-work.md).

## When you'll get a dispute notification

* On a call, the debtor disputed and the agent's `flag_dispute` / `capture_dispute` tool fired.
* A debtor's reply email was classified as a dispute by the inbound mail intent classifier.
* The debtor opened a dispute through their portal.

In every case, the placement transitions to `disputed`, a `Dispute` row is opened with status `open`, outreach pauses, and you get a notification email (subject to your notification preferences).

## What you'll see on the placement

Open the placement detail page. Because `status === "disputed"`, a red-bordered **Dispute Center** card renders above the tabs. It shows:

* The **trigger** event (e.g., `email reply received`, `call completed`, `dispute filed`), with the actor and timestamp. If the trigger was an inbound email, the originating address is shown.
* The **classification** — intent (typically `dispute`) and a confidence score from the auto-classifier.
* The **reason** (free-text from the dispute row, or the placement's `dispute_reason` field if the dispute row is sparse).
* The AI-generated **summary** of the trigger (a one- or two-line quote), and the full narrative if one was captured.

## How to respond (today)

The Dispute Center has exactly one action: **Acknowledge dispute**.

1. Open the placement detail page.
2. Scroll to the Dispute Center card.
3. Add an internal **Acknowledgement Note** (optional) — e.g. who's reviewing, expected resolution timeline.
4. Click **Acknowledge dispute**.

This flips the dispute from `open` to `reviewing`, writes a `dispute.acknowledged` audit event, and clears the open-acknowledgement CTA. **It does not resume outreach.** The placement remains in `disputed` and the compliance engine continues to block calls and emails until the dispute row is moved to a terminal status (`upheld`, `denied`, `withdrawn`, `auto_responded`, or `awaiting_human`).

Today, moving the dispute to a terminal status is done by our ops team in coordination with you (email `support@moderncollections.io` with the resolution path you want). Self-serve "Provide verification / Adjust balance / Withdraw / Escalate" controls are planned but not yet available in the dashboard.

If you decide to stop pursuing the placement entirely, you can recall it via the API today (`POST /v1/placements/{id}/recall`). The dashboard recall button is not yet wired — see [Pausing or recalling a placement](/for-creditor-partners/creditor-operations/pausing-or-recalling-a-placement.md).

> Note: under FDCPA and most state laws, if a debt is disputed during the validation period, the collector must provide verification before resuming collection. This is part of why our compliance engine keeps outreach blocked until the dispute is resolved through ops review.

## Common dispute types and how to think about them

| Type                                     | Typical response path                                                                                         |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| "I never got the invoice"                | Send us proof of delivery (email logs, signed receipts); we resolve as denied and resume                      |
| "I already paid"                         | Check your records; if they did, recall the placement; if they didn't, send us your payment ledger to resolve |
| "The service wasn't as agreed"           | Decide whether you want to credit some of the balance — we'll need a corrected invoice from you to resume     |
| "I'm not the right party"                | Verify the named party on the invoice; if wrong, recall                                                       |
| "It's beyond the statute of limitations" | Recall — we can't and won't collect time-barred debts                                                         |
| "Send me proof"                          | Same as "I never got the invoice"                                                                             |

See [Types of disputes](/for-debtors/disputes/types-of-disputes.md) for more detail.

## After the dispute is resolved

When ops resolves a dispute, the dispute row moves to one of:

* `denied` — dispute rejected, outreach can resume.
* `upheld` — dispute accepted, the placement is typically recalled or written off.
* `withdrawn` — debtor withdrew the dispute, outreach can resume.
* `auto_responded` — our dispute auto-response agent sent a templated reply with evidence (e.g., invoice attached); the SLA tracker watches for the next debtor signal.
* `awaiting_human` — auto-response routed to a human reviewer; the placement stays paused.

Outreach resumes only when the placement leaves `disputed` status (typically once the dispute row is moved to `denied` or `withdrawn`).

## Auto-acknowledgement timing

There's no automatic 30-day auto-close in code today. The placement stays in `disputed` until you (or ops) act on it.

## TODO

* Screenshot: dispute notification email.
* Screenshot: Dispute Center card on placement detail.
* Screenshot: acknowledge confirmation toast.

***

Last reviewed: 2026-05-24 by Customer Success. **TODO: external counsel review of language describing FDCPA verification obligations.**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.moderncollections.io/for-creditor-partners/creditor-operations/responding-to-a-dispute.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
