---
title: "Delete Item"
method: DELETE
path: "/claims/{claim_id}/expenditures/items/{item_id}"
tags: ["expenditures"]
---

# Delete Item

`DELETE /claims/{claim_id}/expenditures/items/{item_id}`

## Request

- Base URL: `https://api.claimkit.co` (the document declares no server; this is the origin it was published from)
- URL: `https://api.claimkit.co/claims/{claim_id}/expenditures/items/{item_id}`
- Auth: none declared

Admin-only: soft-delete a single expenditure item.

Stamps ``deleted_at``/``deleted_by`` plus ``removed_from_source_at``, so the
row leaves every listing and total through the same exclusion the re-import
soft-removal uses, while the dedicated columns stop the next re-import's
un-soft-delete from resurrecting it (the source may well still carry the
row — see ``_upsert_items``) and keep "admin deleted" distinguishable from
"gone at source". Reversible via the restore endpoint; the row and its
categorisation history stay in the table.

Refund rows linked to this item are unlinked, mirroring the FK's
SET-NULL-on-hard-delete semantics — the matcher may re-link them to another
candidate on a later import, but never back to a deleted row (it only
considers active originals).

## Path parameters

- `claim_id` integer, required
- `item_id` integer, required

## Response `204`

Successful Response

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/claimkit/apis/claimkit-api.md) - [All operations](https://skmtc.dev/claimkit/apis/claimkit-api/llms.txt) - [OpenAPI document](https://skmtc.dev/claimkit/apis/claimkit-api/revisions/94dc85ba5326?raw)
