---
title: "Get a list of the line items for a sales order of every type except blanket lines"
method: POST
path: "/api/sales-orders/{salesOrderId}/line-items/list"
tags: ["Sales Order Line Item"]
---

# Get a list of the line items for a sales order of every type except blanket lines

`POST /api/sales-orders/{salesOrderId}/line-items/list`

## Request

- Base URL: `https://api.fulcrumpro.com`
- URL: `https://api.fulcrumpro.com/api/sales-orders/{salesOrderId}/line-items/list`
- Auth: none declared

## Path parameters

- `salesOrderId` string, required

## Response `200`

Line items for the given sales order id, without blanket lines

- SalesOrderLineItemDto[]
  - `id` string, required: Unique id associated to this entity.
  - `lineItemId` string, nullable: The line item id (if applicable).
  - `type` 'part' | 'shipping' | 'tax' | 'discount' | 'fee' | 'refund', required: Sales order line item type
  - `price` number, double, required: The line item price.
  - `discountedPrice` number, double, nullable: The line item discounted unit price (if applicable).
  - `name` string, nullable: Verbose name for this entity.
  - `description` string, nullable: Line item description.
  - `quantity` number, double: The line item quantity
  - `externalReferences` object, nullable: Arbitrary key-value-pair like data that can be used to later on search for this line item.
  - `accountingCodeId` string, nullable: Accounting code key identifier. Please reference /api/accounting-codes endpoint.
  - `isTaxable` boolean, required: Dictate if this line item is taxable.
  - `subTotal` number, double, required: Total line item cost, including applicable discounts
  - `preDiscountSubTotal` number, double, required: Total line item cost, before discounts
  - `isPercentageDiscount` boolean, nullable: Indicates whether FulcrumProduct.PublicApi.Dto.SalesOrder.SalesOrderLineItemDto.DiscountAmount discount is percentage based (else, it's an absolute amount).
  - `discountAmount` number, double, nullable: The amount of the discount.
  - `customFields` object, nullable: Custom fields that have been defined for the sales order 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.

## Other responses

- `404`: The sales order did not exist

## Changes

- **2026-08-04** `6fc46fb4f45b`: 2 breaking
  - the `items/description` response property's minLength was decreased from `1` to `0` for the response status `200` (media type: application/json)
  - the `items/description` response property's minLength was decreased from `1` to `0` for the response status `200` (media type: application/problem+json)
- **2026-06-14** `68a3cf300a5d`: 2 info
  - added the optional property `items/externalReferences/additionalProperties/lastSyncedUtc` to the response with the `200` status (media type: application/json)
  - added the optional property `items/externalReferences/additionalProperties/lastSyncedUtc` to the response with the `200` status (media type: application/problem+json)
- **2026-01-12** `30a13c1e996e`: 4 info
  - added the optional property `items/number` to the response with the `200` status (media type: application/json)
  - added the optional property `items/number` to the response with the `200` status (media type: application/problem+json)
  - added the required property `items/accountingDetails` to the response with the `200` status (media type: application/json)
  - added the required property `items/accountingDetails` to the response with the `200` status (media type: application/problem+json)

[Operation history](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/changes/api/sales-orders/:salesOrderId/line-items/list/post.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/c9e6f41852d1?raw)
