---
title: "Move a part line item to a new position on a Quote"
method: PUT
path: "/api/quotes/{quoteId}/part-line-items/{lineItemId}/order"
tags: ["Quote Part Line Item"]
---

# Move a part line item to a new position on a Quote

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

## Request

- Base URL: `https://api.fulcrumpro.com`
- URL: `https://api.fulcrumpro.com/api/quotes/{quoteId}/part-line-items/{lineItemId}/order`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/docs/api/quotes/:quoteId/part-line-items/:lineItemId/order/put.ts> (a function with typed inputs; its response is checked against the schema)

`number` is the line's new 0-based position among the quote's part lines; the part lines between its old
and new position shift by one. The returned line's `number` is its quote-wide line number, which counts the
quote's blanket lines first, so it equals the requested position only on a quote without blanket lines.

## Path parameters

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

## Request body

- QuotePartLineItemOrderUpdateDto: The position to move a quote part line item to.
  - `number` integer, required: The line's new 0-based position among the quote's part lines only. The part lines between its old and new position shift by one. This is not the quote-wide line `number` a part line item returns, which counts the quote's blanket lines first.

## Response `200`

The moved 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
  - `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`: The quote is Won, or the position is past the last part line
- `404`: Quote or part line item did not exist

## Changes

- **2026-11-04** `0fb22dd42c06`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/changes/api/quotes/:quoteId/part-line-items/:lineItemId/order/put.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/c5ed1ac3ffa2?raw)
