# Stock Adjustment

**POST** `/v1/inventory/adjust`

Manually adjusts stock at a location. Use for shrinkage, damage write-offs, count corrections, or returns. Creates an immutable `adjustment` movement in the ledger.

Pass a positive `quantity_delta` to add stock, negative to remove it.

### Request fields

| Field | Type | Required | Description |
|---|---|---|---|
| `listing_id` | integer | Yes | Listing to adjust |
| `location_id` | integer | Yes | Location to adjust at |
| `quantity_delta` | integer | Yes | Change in quantity (positive = add, negative = remove) |
| `reason` | string | Yes | Reason code or description (e.g. `"damage"`, `"shrinkage"`, `"count_correction"`) |
| `note` | string | No | Free-text note for the ledger |
| `batch_id` | integer | No | Adjust a specific batch (optional — adjusts total if omitted) |

### Response fields

| Field | Type | Description |
|---|---|---|
| `quantity_after` | integer | Total quantity at this location after the adjustment |

**Example — write off 5 damaged units from batch LOT-B:**
```json
{
  "listing_id": 42,
  "location_id": 1,
  "quantity_delta": -5,
  "reason": "damage",
  "note": "Frozen items damaged in transit",
  "batch_id": 7
}
```
