> ## 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.

# Captures a deduction (from an inbound 812 or keyed by an operator). The ID is

> derived from the partner + adjustment number so re-capturing the same chargeback updates rather than duplicates.

derived from the partner + adjustment number so re-capturing the same
chargeback updates rather than duplicates.

### Request body

`DeductionCapture`

<ParamField body="adjustment_number" type="string" required />

<ParamField body="amount" type="string" required />

<ParamField body="category" type="string" />

<ParamField body="currency" type="string" />

<ParamField body="invoice_number" type="string" />

<ParamField body="partner_id" type="string" required />

<ParamField body="reason_codes" type="string[]" />

### 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` | Captured deduction        |
| `403` | Admin credential required |

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://edi.stateset.com/v1/deductions' \
    --header 'Authorization: Bearer YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
    "adjustment_number": "string",
    "amount": "string",
    "category": "string",
    "currency": "string",
    "invoice_number": "string",
    "partner_id": "string",
    "reason_codes": [
      "string"
    ]
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "adjustment_number": "string",
    "amount": "string",
    "category": "string",
    "created_at": "2026-07-24T12:00:00Z",
    "currency": "string",
    "evidence": [
      {
        "actor": "string",
        "at": "2026-07-24T12:00:00Z",
        "note": "string",
        "url": "string"
      }
    ],
    "history": [
      {
        "action": "string",
        "actor": "string",
        "at": "2026-07-24T12:00:00Z",
        "note": "string"
      }
    ],
    "id": "string",
    "invoice_number": "string",
    "partner_id": "string",
    "reason_codes": [
      "string"
    ],
    "recovered_amount": "string",
    "status": "open",
    "tenant_id": "string",
    "updated_at": "2026-07-24T12:00:00Z"
  }
  ```
</ResponseExample>
