---
title: "Update a single estimate line (quantity / price / billing flag / order / tier qtys)."
method: PUT
path: "/Estimates/{id}/items/{lineId}"
tags: ["Estimates"]
---

# Update a single estimate line (quantity / price / billing flag / order / tier qtys).

`PUT /Estimates/{id}/items/{lineId}`

## Path parameters

- `id` string, required
- `lineId` string, required

## Request body

- UpdateEstimateItemRequest
  - `quantity` union
    - number, double
    - string, double
  - `unitPrice` union
    - number, double
    - string, double
  - `markedForBilling` boolean, nullable
  - `displayOrder` union
    - integer
    - string, int32
  - `note` string, nullable
  - `qtyMode` string, nullable
  - `qtyLow` union
    - number, double
    - string, double
  - `qtyMed` union
    - number, double
    - string, double
  - `qtyHigh` union
    - number, double
    - string, double

## Response `200`

OK

- EstimateLineItemDto
  - `id` string
  - `serviceCatalogItemId` string, nullable
  - `retailItemId` string, nullable
  - `inventoryItemId` string, nullable
  - `billableItemId` string, nullable — Source BillableItem ("Charge") id when this line is a charge.
  - `code` string
  - `description` string
  - `unitPrice` union
    - number, double
    - string, double
  - `qtyMode` string
  - `qtyLow` union
    - number, double
    - string, double
  - `qtyMed` union
    - number, double
    - string, double
  - `qtyHigh` union
    - number, double
    - string, double
  - `quantity` union — Working quantity (tier collapses into this; execution dispenses it).
    - number, double
    - string, double
  - `isTaxable` boolean
  - `note` string, nullable
  - `displayOrder` union
    - integer
    - string, int32
  - `serviceType` string — "Procedure" | "Inventory" | "Retail" — derived from the source FK.
  - `inventoryItemCategory` string, nullable — InventoryItemCategory ("Vaccine", "Medication", …) for an inventory-backed line; routes the perform flow (e.g. vaccine administration).
  - `executionStatus` string — Pending | Performed | Declined.
  - `disposition` string, nullable — Persisted dispense disposition: InHouse | TakeHomeLabelNow | TakeHomeLabelLater (null for non-dispensing lines).
  - `requiresSig` boolean — True when this performed take-home line still needs its SIG / medication details filled (blocks convert). Drives the per-line "Fill instructions" affordance. In-house lines are never required.
  - `markedForBilling` boolean
  - `dispenseFee` union — Flat per-dispense fee on the line (once per unique inventory item on the estimate).
    - number, double
    - string, double
  - `unitCost` union — Snapshotted lot cost for a dispensed inventory line.
    - number, double
    - string, double
  - `inventoryTransactionId` string, nullable — Set once an inventory line is dispensed in-visit. The void reversal anchors on this.
  - `performedById` string, nullable
  - `performedByName` string, nullable
  - `performedAt` string, date-time, nullable
  - `declinedReason` string, nullable
  - `declinedAt` string, date-time, nullable
  - `isControlledSubstance` boolean — True for a controlled-substance inventory line (gates the void-reason requirement).
  - `lineTotal` union — Computed line total: (UnitPrice × Quantity) + DispenseFee.
    - number, double
    - string, double

---

[API](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1.md) · [All operations](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clinicos/pawthosx-business-api-v1/versions/a905bde4e796/schema)
