> This page is for version v1 (default).
> For other versions, use one of these documentation indexes:
> - v1 (default): https://developers.truemed.com/v-1/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.truemed.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.truemed.com/_mcp/server.

# Accept a dispute

> How to concede a dispute loss without contesting it, and what states allow accepting.

If you don't intend to contest a chargeback, you can **accept** it — conceding the loss without submitting evidence. This
is terminal: the dispute moves to `accepted`, the customer keeps the funds, and no evidence can be submitted afterward.

`POST /api/v1/disputes/{dispute_id}/accept`

```bash
curl -s -X POST "https://dev-api.truemed.com/api/v1/disputes/$DISPUTE_ID/accept" \
  -H "Authorization: Bearer $TRUEMED_API_KEY"
```

The response is the updated dispute, now in state `accepted` with `outcome: "accepted"`.

## When accept is allowed

Accept is only valid for a dispute that is currently contestable (`needs_response`). Everything else is rejected:

| Current state                                      | Result                                                                                             |
| -------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `needs_response`                                   | Accepted — dispute moves to `accepted`.                                                            |
| `accepted`                                         | No-op — accepting an already-accepted dispute is **idempotent** and returns the dispute unchanged. |
| `inquiry`                                          | Rejected — inquiries aren't chargebacks and can't be accepted.                                     |
| `under_review`, `won`, `lost`, `expired`, `closed` | Rejected — `400 Bad Request`, the dispute can't be accepted from this state.                       |

> **Info**
>
> Accept is idempotent — a retried or duplicated accept maps to the same action rather than double-submitting, so you can
> safely retry a request that timed out.

## After accepting

As with evidence submission, the authoritative resolved state is confirmed by the processor and surfaced via a
[`dispute.closed`](/guides/setup/api/disputes/webhooks) webhook. Re-fetch the dispute to read its final `outcome` and `resolved_at`.