---
title: "Partially updates the notes of a specific part line item for a Quote"
method: PATCH
path: "/api/quotes/{quoteId}/part-line-items/{lineItemId}"
tags: ["Quote Part Line Item"]
---

# Partially updates the notes of a specific part line item for a Quote

`PATCH /api/quotes/{quoteId}/part-line-items/{lineItemId}`

## Request

- Base URL: `https://api.fulcrumpro.com`
- URL: `https://api.fulcrumpro.com/api/quotes/{quoteId}/part-line-items/{lineItemId}`
- Auth: none declared

Supported paths: `/itemNotes` and `/internalNotes`, with the `add`, `replace` and
`remove` operations. A value sets the note; `null`, a blank string or `remove` clears it; a path
the patch does not name is kept, an untouched item note being reconciled with the line's BOM copy as the update
does. The line's price, cost, margin, discount, pricing scheme and quantity are not changed.

## Path parameters

- `quoteId` string, required
- `lineItemId` string, required

## Request body

- JsonPatchOperation[]: Array of operations to perform
  - `op` string
  - `value` unknown
  - `path` string
  - `from` string: Source path — present for move/copy operations, absent otherwise.

## Response `200`

Part line item

- QuotePartLineItemDto: Represents a part line item on a quote.
  - `id` string, required: Unique id associated to this entity.
  - `quantity` number, double, required: The line item quantity
  - `price` number, double, required: The line item price.
  - `discountedPrice` number, double, required: The discounted line item price.
  - `itemId` string, required: Item id associated with this line item.
  - `description` string, nullable: The part line item description. Defaults to the item's description if none specified.
  - `accountingCodeId` string, nullable: Accounting code key identifier. Please reference /api/accounting-codes endpoint.
  - `internalNotes` string, nullable: The line's internal notes, aka production notes, as stored. Create stores the value sent; update stores it when it is not empty and otherwise keeps the stored notes, so an update cannot clear them.
  - `itemNotes` string, nullable: The line's own stored item notes. Create and update store the value sent; when it is omitted, empty or whitespace they store the line's effective notes instead — its own, else its BOM snapshot's — so an update cannot clear them. A line whose own notes were never stored reads null even when its BOM snapshot carries notes.
  - `isTaxable` boolean, required: Dictate if this line item is taxable.
  - `taxCodeId` string, nullable: Tax code key identifier. Please reference /api/tax-rates endpoint.
  - `taxRate` number, double, nullable: Tax rate to use for this entity. If a FulcrumProduct.PublicApi.Dto.Quote.PartLineItem.QuotePartLineItemDto.TaxCodeId is provided, the provided FulcrumProduct.PublicApi.Dto.Quote.PartLineItem.QuotePartLineItemDto.TaxRate will supercede the defined tax rate.
  - `overrideTaxRate` boolean, nullable: Dictate if the tax rate is overridden.
  - `externalReferences` object, nullable: Arbitrary key-value-pair like data that can be used to later on search for this line item.
  - `isPercentageDiscount` boolean, nullable: Indicates whether FulcrumProduct.PublicApi.Dto.Quote.PartLineItem.QuotePartLineItemDto.DiscountAmount discount is percentage based (else, it's an absolute amount).
  - `discountAmount` number, double, nullable: The amount of the discount.
  - `subTotal` number, double, required: Total line item cost, including applicable discounts
  - `preDiscountSubTotal` number, double, required: Total line item cost, before discounts
  - `customFields` object, nullable: Custom fields that have been defined for the part line item;
  - `number` integer: Line number
  - `accountingDetails` CommonAccountingDetailsDto, required: An object that contains all accounting details.
    - `classId` string, nullable: Item class identifier. Please reference /api/item-classes endpoint.
    - `incomeAccountId` string, nullable: Income account (chart of accounts) key identifier. Please reference /api/chart-of-accounts endpoint.
    - `assetAccountId` string, nullable: Asset account (chart of accounts) key identifier. Please reference /api/chart-of-accounts endpoint.
    - `expenseAccountId` string, nullable: Expense account (chart of accounts) key identifier. Please reference /api/chart-of-accounts endpoint.
    - `cogsAccountId` string, nullable: COGS account (chart of accounts) key identifier. Please reference /api/chart-of-accounts endpoint.
  - `leadTime` QuoteLeadTimeDto: A quote line lead time: the text the quote PDF prints and the days it stands for.
    - `name` string, nullable: The lead time as the quote PDF prints it, for example `2-3 Weeks`.
    - `days` integer, required: The days the lead time stands for: the upper end of its range. It identifies an entry of `GET /api/quotes/lead-times`.
  - `costBreakdown` CommonCostBreakdownDto: Cost breakdown
    - `id` string, required: The id of the parent item.
    - `type` 'estimated' | 'inProgressJob' | 'completedJob' | 'cancelledJob', required
    - `quantity` integer, required: Number of units.
    - `quantityScrapped` integer, nullable: Number of units scrapped.
    - `calculatedOn` string, date-time, required: When was this cost breakdown last calculated/aggregated.
    - `time` CommonTimeDto, required: Time information
      - `labor` number, double, required: Total
      - `machine` number, double, required: Cost per unit
      - `setup` number, double, required: Cost per unit
    - `cumulative` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `cumulativeMaterial` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `cumulativeLabor` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `cumulativeMachine` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `cumulativeOutsideProcessing` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `itemMaterial` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `itemLabor` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `itemMachine` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `itemOutsideProcessing` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `shopRateSetup` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `shopRateRun` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `shopRateMachine` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `componentMaterial` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `componentLabor` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `componentMachine` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `componentOutsideProcessing` CommonCostDto, required: Cost information
      - `total` number, double, required: Total
      - `perUnit` number, double, required: Cost per unit
    - `lines` CommonCostBreakdownLineDto[], required: Cost breakdown line details.
      - `costType` 'material' | 'labor' | 'setup' | 'machine' | 'outsideProcessing' | 'componentMaterial' | 'componentLabor' | 'componentMachine' | 'componentOutsideProcessing' | 'nestPartMaterialUsage' | 'nestPartMaterialScrap' | 'overhead' | 'unknown', required: Cost breakdown types
      - `operationType` 'labor' | 'setup' | 'machine' | 'outsideProcessing': Operation type
      - `name` string, required: Decription of this line.
      - `cost` number, double, required: Cost.
      - `quantity` number, double, nullable: Quantity (if applicable)
      - `itemId` string, nullable: Id of the item that was picked. Please reference /api/items endpoint.
      - `itemName` string, nullable: The name of the item that was picked.
      - `accountingCodeId` string, nullable: Accounting code affected. Please reference /api/accounting-codes endpoint.
      - `operationInformation` CommonCostBreakdownOperationDto: Operation information
        - `operationId` string, required: Operation id. Please reference /api/operations
        - `name` string, nullable: Operation name.
        - `timeInSeconds` number, double, nullable: Time in seconds.
        - `timeInHours` number, double, nullable: Time in hours
        - `ratePerSecond` number, double, nullable: Rate per second
        - `ratePerHour` number, double, nullable: Rate per hour
  - `pricingScheme` 'price' | 'margin' | 'defaultMargin' | 'shopRate' | 'timeAndMaterials', required: How a part line item, or an item by default, is priced. `price`: the price is set directly and the margin is derived from cost. `margin`: the price is derived from a margin and cost. `defaultMargin`: the price is derived from the company's default margin and cost. `shopRate`: the price is derived from shop rates and material markups. `timeAndMaterials`: the price is derived from estimated hours and material cost.
  - `priceSource` 'item' | 'operation' | 'custom': Where a part line item's price came from. `item`: the item's sales price breaks. `operation`: the routing's operations. `custom`: a price entered for the line.
  - `priceBreaks` CommonPartLinePriceBreakDto[], required: The line's quantity price-break tiers as stored, lowest quantity first. The first tier is the line's base price. Empty when the line has no tiers. Each tier returns its stored price and margin together, so a tier read here is not valid `priceBreaks` input on create or update, which takes only the field of the `pricingScheme` sent: `price` under price, `margin` under margin.
    - `quantity` integer: The quantity this tier starts at. The lowest tier is the line's base price.
    - `price` number, double: The unit price at this tier.
    - `margin` number, double, nullable: The margin percentage at this tier, when one is stored.
    - `showOnPdf` boolean: Whether this tier is printed on the PDF.

## Other responses

- `400`: An unsupported path or operation, a value a note cannot hold, a note over 2000 characters, or a quote in Won status
- `404`: Quote or line item did not exist

## Changes

- **2026-11-14** `7a73a80a6afb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/changes/api/quotes/:quoteId/part-line-items/:lineItemId/patch.md)

---

[API](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi.md) - [All operations](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/llms.txt) - [OpenAPI document](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/revisions/7a73a80a6afb?raw)
