---
title: "Changes to Save how the estimate's lines are grouped and ordered (EstimateLineGroups) — the whole\nlayout in one write, so a drag can never leave half an order behind. Creates, renames,\nreorders and deletes groups, and re-sequences every line's `DisplayOrder` to match\nEstimateLineLayout. Presentational only: no price, quantity or execution\nstate changes, so it records no consent event and never trips the consent gate. Lines\nthe request doesn't mention (e.g. added by someone else meanwhile) keep their relative\norder at the end of the ungrouped lines."
method: PUT
path: "/Estimates/{id}/layout"
---

# Changes to Save how the estimate's lines are grouped and ordered (EstimateLineGroups) — the whole
layout in one write, so a drag can never leave half an order behind. Creates, renames,
reorders and deletes groups, and re-sequences every line's `DisplayOrder` to match
EstimateLineLayout. Presentational only: no price, quantity or execution
state changes, so it records no consent event and never trips the consent gate. Lines
the request doesn't mention (e.g. added by someone else meanwhile) keep their relative
order at the end of the ungrouped lines.

`PUT /Estimates/{id}/layout`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 2 of 14 revisions.

- **2026-10-28** `099cf36186e0`: 18 info
- **2026-10-21** `85ee96c0bb96`: 1 info

## Changes

- **2026-10-28** `099cf36186e0`: 18 info
  - added the optional property `groups/items/isPinned` to the response with the `200` status (media type: text/plain)
  - added the optional property `groups/items/isPinned` to the response with the `200` status (media type: application/json)
  - added the optional property `groups/items/isPinned` to the response with the `200` status (media type: text/json)
  - added the optional property `groups/items/origin` to the response with the `200` status (media type: text/plain)
  - added the optional property `groups/items/origin` to the response with the `200` status (media type: application/json)
  - added the optional property `groups/items/origin` to the response with the `200` status (media type: text/json)
  - added the optional property `items/items/groupCodeId` to the response with the `200` status (media type: text/plain)
  - added the optional property `items/items/groupCodeId` to the response with the `200` status (media type: application/json)
  - added the optional property `items/items/groupCodeId` to the response with the `200` status (media type: text/json)
  - added the optional property `items/items/groupCodeName` to the response with the `200` status (media type: text/plain)
  - added the optional property `items/items/groupCodeName` to the response with the `200` status (media type: application/json)
  - added the optional property `items/items/groupCodeName` to the response with the `200` status (media type: text/json)
  - added the optional property `items/items/kitInstanceId` to the response with the `200` status (media type: text/plain)
  - added the optional property `items/items/kitInstanceId` to the response with the `200` status (media type: application/json)
  - added the optional property `items/items/kitInstanceId` to the response with the `200` status (media type: text/json)
  - added the optional property `items/items/vatCategory` to the response with the `200` status (media type: text/plain)
  - added the optional property `items/items/vatCategory` to the response with the `200` status (media type: application/json)
  - added the optional property `items/items/vatCategory` to the response with the `200` status (media type: text/json)
- **2026-10-21** `85ee96c0bb96`: 1 info
  - endpoint added

---

[Operation](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/docs/Estimates/:id/layout/put.md) - [API](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1.md) - [Page](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/changes/Estimates/:id/layout/put)
