> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stateset.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Opens a dispute on a deduction.

> Updated deduction

### Path parameters

<ParamField path="id" type="string" required>
  Deduction ID
</ParamField>

### Response

`Deduction`

<ResponseField name="adjustment_number" type="string" required>
  The 812 adjustment / chargeback number.
</ResponseField>

<ResponseField name="amount" type="string" required />

<ResponseField name="category" type="string">
  Operator-assigned root-cause category (e.g. `shortage`, `label`, `asn`).
</ResponseField>

<ResponseField name="created_at" type="string (date-time)" required />

<ResponseField name="currency" type="string" />

<ResponseField name="evidence" type="EvidenceNote[]">
  Supporting evidence attached for the dispute.

  <Expandable title="EvidenceNote">
    <ResponseField name="actor" type="string" required />

    <ResponseField name="at" type="string (date-time)" required />

    <ResponseField name="note" type="string" required />

    <ResponseField name="url" type="string">
      Link to the supporting artifact (an evidence-bundle export, a POD scan).
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="history" type="DeductionEvent[]" required>
  <Expandable title="DeductionEvent">
    <ResponseField name="action" type="string" required />

    <ResponseField name="actor" type="string" required />

    <ResponseField name="at" type="string (date-time)" required />

    <ResponseField name="note" type="string" />
  </Expandable>
</ResponseField>

<ResponseField name="id" type="string" required />

<ResponseField name="invoice_number" type="string" />

<ResponseField name="partner_id" type="string" required />

<ResponseField name="reason_codes" type="string[]" />

<ResponseField name="recovered_amount" type="string">
  Amount recovered when disputed successfully (≤ `amount`).
</ResponseField>

<ResponseField name="status" type="DeductionStatus" required />

<ResponseField name="tenant_id" type="string" required />

<ResponseField name="updated_at" type="string (date-time)" required />

### Status codes

| Code  | Meaning           |
| ----- | ----------------- |
| `200` | Updated deduction |
| `422` | Already resolved  |

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://edi.stateset.com/v1/deductions/{id}/dispute' \
    --header 'Authorization: Bearer YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "adjustment_number": "string",
    "amount": "49.00",
    "category": "standard",
    "created_at": "2026-08-31T14:22:05Z",
    "currency": "USD",
    "evidence": [
      {
        "actor": "string",
        "at": "2026-08-31T14:22:05Z",
        "note": "Two-person tent, green — replacement for damaged pole set.",
        "url": "https://example.com/webhooks/stateset"
      }
    ],
    "history": [
      {
        "action": "string",
        "actor": "string",
        "at": "2026-08-31T14:22:05Z",
        "note": "Two-person tent, green — replacement for damaged pole set."
      }
    ],
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "invoice_number": "ORD-10042",
    "partner_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "reason_codes": [
      "string"
    ],
    "recovered_amount": "49.00",
    "status": "open",
    "tenant_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "updated_at": "2026-08-31T14:22:05Z"
  }
  ```
</ResponseExample>
