Fulcrumpro Sales Order Part Line Item API

The Sales Order Part Line Item API from Fulcrumpro — 5 operation(s) for sales order part line item.

OpenAPI Specification

fulcrumpro-sales-order-part-line-item-api-openapi.yml Raw ↑
openapi: 3.0.4
info:
  title: Fulcrum Public Accounting Code Sales Order Part Line Item API
  version: v1
servers:
- url: https://api.fulcrumpro.com
tags:
- name: Sales Order Part Line Item
paths:
  /api/sales-orders/{salesOrderId}/part-line-items:
    post:
      tags:
      - Sales Order Part Line Item
      summary: Create a part line item on a sales order
      operationId: CreateSalesOrderPartLineItem
      parameters:
      - name: salesOrderId
        in: path
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/SalesOrderPartLineItemCreateDto'
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderPartLineItemCreateDto'
          text/json:
            schema:
              $ref: '#/components/schemas/SalesOrderPartLineItemCreateDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/SalesOrderPartLineItemCreateDto'
        required: true
      responses:
        '200':
          description: Part line item added to sales order
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatedResponseDto'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/CreatedResponseDto'
        '400':
          description: Validation issues with input
      x-c4-mutation: true
      x-c4-required-permissions:
      - Orders-SalesOrders-Edit Sales Order
  /api/sales-orders/{salesOrderId}/part-line-items/batch:
    post:
      tags:
      - Sales Order Part Line Item
      summary: Create one or more part line items on a sales order
      operationId: CreateSalesOrderPartLineItemBatch
      parameters:
      - name: salesOrderId
        in: path
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/SalesOrderPartLineItemCreateBatchDto'
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderPartLineItemCreateBatchDto'
          text/json:
            schema:
              $ref: '#/components/schemas/SalesOrderPartLineItemCreateBatchDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/SalesOrderPartLineItemCreateBatchDto'
        required: true
      responses:
        '200':
          description: Part line items added to sales order
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchCreatedResponseDto'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BatchCreatedResponseDto'
        '400':
          description: Validation issues with input
      x-c4-mutation: true
      x-c4-required-permissions:
      - Orders-SalesOrders-Edit Sales Order
  /api/sales-orders/{salesOrderId}/part-line-items/{lineItemId}:
    get:
      tags:
      - Sales Order Part Line Item
      summary: Get a specific part line item for a sales order
      operationId: GetSalesOrderPartLineItem
      parameters:
      - name: salesOrderId
        in: path
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      - name: lineItemId
        in: path
        required: true
        schema:
          maxLength: 36
          minLength: 36
          type: string
      - name: includeCostBreakdown
        in: query
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Part line item
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderPartLineItemDto'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/SalesOrderPartLineItemDto'
        '404':
          description: Sales order or line items did not exist
      x-c4-required-permissions:
      - Orders-SalesOrders-View Sales Order
    patch:
      tags:
      - Sales Order Part Line Item
      summary: Partially update a specific part line item for an salesOrder
      operationId: PatchSalesOrderPartLineItem
      parameters:
      - name: salesOrderId
        in: path
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      - name: lineItemId
        in: path
        required: true
        schema:
          maxLength: 36
          minLength: 36
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/JsonPatchDocument'
      responses:
        '200':
          description: Part line item
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderPartLineItemDto'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/SalesOrderPartLineItemDto'
        '404':
          description: SalesOrder or line item did not exist
      x-c4-mutation: true
      x-c4-required-permissions:
      - Orders-SalesOrders-Edit Sales Order
    put:
      tags:
      - Sales Order Part Line Item
      summary: Update a specific part line item for a sales order
      operationId: UpdateSalesOrderPartLineItem
      parameters:
      - name: salesOrderId
        in: path
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      - name: lineItemId
        in: path
        required: true
        schema:
          maxLength: 36
          minLength: 36
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/SalesOrderPartLineItemUpdateDto'
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderPartLineItemUpdateDto'
          text/json:
            schema:
              $ref: '#/components/schemas/SalesOrderPartLineItemUpdateDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/SalesOrderPartLineItemUpdateDto'
        required: true
      responses:
        '200':
          description: Part line item
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderPartLineItemDto'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/SalesOrderPartLineItemDto'
        '404':
          description: Sales order or line items did not exist
      x-c4-mutation: true
      x-c4-required-permissions:
      - Orders-SalesOrders-Edit Sales Order
    delete:
      tags:
      - Sales Order Part Line Item
      summary: Delete a specific part line item for a sales order
      operationId: DeleteSalesOrderPartLineItem
      parameters:
      - name: salesOrderId
        in: path
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      - name: lineItemId
        in: path
        required: true
        schema:
          maxLength: 36
          minLength: 36
          type: string
      responses:
        '200':
          description: Success
        '204':
          description: Part line item did not exist
        '404':
          description: Sales order did not exist
  /api/sales-orders/{salesOrderId}/part-line-items/list:
    post:
      tags:
      - Sales Order Part Line Item
      summary: Get a list of part lines items for a sales order
      operationId: ListSalesOrderPartLineItem
      parameters:
      - name: salesOrderId
        in: path
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      - name: includeCostBreakdown
        in: query
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: List of part line items for the given sales order id
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SalesOrderPartLineItemDto'
            application/problem+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SalesOrderPartLineItemDto'
        '404':
          description: The sales order did not exist
      x-c4-required-permissions:
      - Orders-SalesOrders-View Sales Order
  /api/sales-orders/{salesOrderId}/part-line-items/{lineItemId}/cost-breakdown:
    get:
      tags:
      - Sales Order Part Line Item
      summary: Get the cost breakdown for a specific part line item for a sales order
      operationId: GetSalesOrderPartLineItemCostBreakdown
      parameters:
      - name: salesOrderId
        in: path
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      - name: lineItemId
        in: path
        required: true
        schema:
          maxLength: 36
          minLength: 36
          type: string
      responses:
        '200':
          description: Part line item
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonCostBreakdownDto'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/CommonCostBreakdownDto'
        '404':
          description: Sales order or line items did not exist
      x-c4-required-permissions:
      - Orders-SalesOrders-View Sales Order
      - Pricing-Margins-View Margins
components:
  schemas:
    CommonCostBreakdownDto:
      required:
      - calculatedOn
      - componentLabor
      - componentMachine
      - componentMaterial
      - componentOutsideProcessing
      - cumulative
      - cumulativeLabor
      - cumulativeMachine
      - cumulativeMaterial
      - cumulativeOutsideProcessing
      - id
      - itemLabor
      - itemMachine
      - itemMaterial
      - itemOutsideProcessing
      - lines
      - quantity
      - shopRateMachine
      - shopRateRun
      - shopRateSetup
      - time
      - type
      type: object
      properties:
        id:
          maxLength: 36
          minLength: 24
          type: string
          description: The id of the parent item.
        type:
          $ref: '#/components/schemas/ItemsAndInventoryRoutingsCostBreakdownType'
        quantity:
          minimum: 0
          type: integer
          description: Number of units.
          format: int32
        quantityScrapped:
          minimum: 0
          type: integer
          description: Number of units scrapped.
          format: int32
          nullable: true
        calculatedOn:
          type: string
          description: When was this cost breakdown last calculated/aggregated.
          format: date-time
        time:
          $ref: '#/components/schemas/CommonTimeDto'
        cumulative:
          $ref: '#/components/schemas/CommonCostDto'
        cumulativeMaterial:
          $ref: '#/components/schemas/CommonCostDto'
        cumulativeLabor:
          $ref: '#/components/schemas/CommonCostDto'
        cumulativeMachine:
          $ref: '#/components/schemas/CommonCostDto'
        cumulativeOutsideProcessing:
          $ref: '#/components/schemas/CommonCostDto'
        itemMaterial:
          $ref: '#/components/schemas/CommonCostDto'
        itemLabor:
          $ref: '#/components/schemas/CommonCostDto'
        itemMachine:
          $ref: '#/components/schemas/CommonCostDto'
        itemOutsideProcessing:
          $ref: '#/components/schemas/CommonCostDto'
        shopRateSetup:
          $ref: '#/components/schemas/CommonCostDto'
        shopRateRun:
          $ref: '#/components/schemas/CommonCostDto'
        shopRateMachine:
          $ref: '#/components/schemas/CommonCostDto'
        componentMaterial:
          $ref: '#/components/schemas/CommonCostDto'
        componentLabor:
          $ref: '#/components/schemas/CommonCostDto'
        componentMachine:
          $ref: '#/components/schemas/CommonCostDto'
        componentOutsideProcessing:
          $ref: '#/components/schemas/CommonCostDto'
        lines:
          type: array
          items:
            $ref: '#/components/schemas/CommonCostBreakdownLineDto'
          description: Cost breakdown line details.
      additionalProperties: false
      description: Cost breakdown
    CommonUrlDto:
      required:
      - uri
      type: object
      properties:
        uri:
          minLength: 1
          type: string
          description: The uri to save. e.g. https://fulcrumpro.com
          format: uri
        name:
          maxLength: 200
          minLength: 1
          type: string
          description: ''
          nullable: true
      additionalProperties: false
      description: A URL along with a name description of the link
    SalesOrderPartLineItemUpdateDto:
      type: object
      properties:
        quantity:
          minimum: 0
          type: number
          description: The line item quantity
          format: double
        price:
          minimum: 0
          type: number
          description: 'The line item price.

            Note, if a price break exists for the item being added (vendor price breaks, item price breaks, etc), this value will be ignored

            as it is quantity-driven based on the price breaks that do/will exist.

            If this value is not provided and no price breaks exist, the default will be 0.'
          format: double
          nullable: true
        isTaxable:
          type: boolean
          description: Dictate if this line item is taxable.
          nullable: true
        taxCodeId:
          maxLength: 24
          minLength: 24
          type: string
          description: Tax code key identifier. Please reference /api/tax-rates endpoint.
          nullable: true
        taxRate:
          minimum: 0
          type: number
          description: Tax rate to use for this entity. If a FulcrumProduct.PublicApi.Dto.SalesOrder.PartLineItem.PartLineItemUpdateDto.TaxCodeId is provided, the provided FulcrumProduct.PublicApi.Dto.SalesOrder.PartLineItem.PartLineItemUpdateDto.TaxRate will supercede the defined tax rate.
          format: double
          nullable: true
        overrideTaxRate:
          type: boolean
          description: Indicate if the tax supplied is intended to be an override.
          nullable: true
        description:
          maxLength: 2000
          minLength: 0
          type: string
          description: The part line item description.  Defaults to the item's description if none specified.
          nullable: true
        internalNotes:
          maxLength: 2000
          minLength: 1
          type: string
          description: The line item internal notes. Aka production notes.
          nullable: true
        itemNotes:
          maxLength: 2000
          minLength: 1
          type: string
          description: The line item notes (visible in job tracking).
          nullable: true
        externalReferences:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CommonExternalReferenceDto'
          description: Arbitrary key-value-pair like data that can be used to later on search for this line item.
          nullable: true
        isPercentageDiscount:
          type: boolean
          description: Indicates whether FulcrumProduct.PublicApi.Dto.SalesOrder.PartLineItem.PartLineItemUpdateDto.DiscountAmount discount is percentage based (else, it's an absolute amount).
          nullable: true
        discountAmount:
          type: number
          description: The amount of the discount.
          format: double
          nullable: true
        links:
          type: array
          items:
            $ref: '#/components/schemas/CommonUrlDto'
          description: List of links associated with the line item.
          nullable: true
        deliveryDate:
          type: string
          description: 'The Delivery Date for the line item.

            Only the calendar date is used, exactly as written; any time or UTC offset is ignored.'
          format: date-time
          nullable: true
        unitOfMeasureName:
          type: string
          description: The unit of measure to apply. If left blank, the existing unit of measure on the line item will be retained.
          nullable: true
        accountingCodeId:
          maxLength: 24
          minLength: 24
          type: string
          description: 'Accounting code key identifier. Please reference /api/accounting-codes endpoint.

            If this value is not provided and the name matches a defined "default fee", the accounting code

            on the "default fee" will be used.'
          nullable: true
        isCustomerItem:
          type: boolean
          description: Determines whether or not to display the customer part number and customer part description.
          nullable: true
        customerPartNumber:
          type: string
          description: Used for the part number on customer facing documents when IsCustomerItem is true
          nullable: true
        customerPartDescription:
          maxLength: 2000
          minLength: 0
          type: string
          description: Used for the description on customer facing documents when IsCustomerItem is true
          nullable: true
      additionalProperties: false
      description: Represents a part line item on a sales order.
    CommonEnumCostBreakdownLineTypeEnum:
      enum:
      - material
      - labor
      - setup
      - machine
      - outsideProcessing
      - componentMaterial
      - componentLabor
      - componentMachine
      - componentOutsideProcessing
      - nestPartMaterialUsage
      - nestPartMaterialScrap
      - overhead
      - unknown
      type: string
      description: Cost breakdown types
    ItemsAndInventoryRoutingsCostBreakdownType:
      enum:
      - estimated
      - inProgressJob
      - completedJob
      - cancelledJob
      type: string
    BatchCreatedResponseDto:
      required:
      - ids
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
          description: The ids of the created records
      additionalProperties: false
      description: Response for a batch created record
    CommonEnumOperationTypeEnum:
      enum:
      - labor
      - setup
      - machine
      - outsideProcessing
      type: string
      description: Operation type
    CommonTimeDto:
      required:
      - labor
      - machine
      - setup
      type: object
      properties:
        labor:
          minimum: 0
          type: number
          description: Total
          format: double
        machine:
          minimum: 0
          type: number
          description: Cost per unit
          format: double
        setup:
          minimum: 0
          type: number
          description: Cost per unit
          format: double
      additionalProperties: false
      description: Time information
    JsonPatchDocument:
      type: array
      items:
        $ref: '#/components/schemas/JsonPatchOperation'
      description: Array of operations to perform
    CommonCostBreakdownOperationDto:
      required:
      - operationId
      type: object
      properties:
        operationId:
          maxLength: 24
          minLength: 24
          type: string
          description: Operation id. Please reference /api/operations
        name:
          type: string
          description: Operation name.
          nullable: true
        timeInSeconds:
          minimum: 0
          type: number
          description: Time in seconds.
          format: double
          nullable: true
          readOnly: true
        timeInHours:
          minimum: 0
          type: number
          description: Time in hours
          format: double
          nullable: true
        ratePerSecond:
          minimum: 0
          type: number
          description: Rate per second
          format: double
          nullable: true
          readOnly: true
        ratePerHour:
          minimum: 0
          type: number
          description: Rate per hour
          format: double
          nullable: true
      additionalProperties: false
      description: Operation information
    SalesOrderPartLineItemCreateDto:
      required:
      - itemId
      type: object
      properties:
        itemId:
          maxLength: 24
          minLength: 24
          type: string
          description: Item id associated with this line item.
        quantity:
          minimum: 0
          type: number
          description: The line item quantity
          format: double
        price:
          minimum: 0
          type: number
          description: 'The line item price.

            Note, if a price break exists for the item being added (vendor price breaks, item price breaks, etc), this value will be ignored

            as it is quantity-driven based on the price breaks that do/will exist.

            If this value is not provided and no price breaks exist, the default will be 0.'
          format: double
          nullable: true
        isTaxable:
          type: boolean
          description: Dictate if this line item is taxable.
          nullable: true
        taxCodeId:
          maxLength: 24
          minLength: 24
          type: string
          description: Tax code key identifier. Please reference /api/tax-rates endpoint.
          nullable: true
        taxRate:
          minimum: 0
          type: number
          description: Tax rate to use for this entity. If a FulcrumProduct.PublicApi.Dto.SalesOrder.PartLineItem.PartLineItemCreateDto.TaxCodeId is provided, the provided FulcrumProduct.PublicApi.Dto.SalesOrder.PartLineItem.PartLineItemCreateDto.TaxRate will supercede the defined tax rate.
          format: double
          nullable: true
        overrideTaxRate:
          type: boolean
          description: Indicate if the tax supplied is intended to be an override.
          nullable: true
        description:
          maxLength: 2000
          minLength: 0
          type: string
          description: The part line item description.  Defaults to the item's description if none specified.
          nullable: true
        internalNotes:
          maxLength: 2000
          minLength: 1
          type: string
          description: The line item internal notes
          nullable: true
        itemNotes:
          maxLength: 2000
          minLength: 1
          type: string
          description: The line item notes (visible in job tracking).
          nullable: true
        externalReferences:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CommonExternalReferenceDto'
          description: Arbitrary key-value-pair like data that can be used to later on search for this line item.
          nullable: true
        isPercentageDiscount:
          type: boolean
          description: Indicates whether FulcrumProduct.PublicApi.Dto.SalesOrder.PartLineItem.PartLineItemCreateDto.DiscountAmount discount is percentage based (else, it's an absolute amount).
          nullable: true
        discountAmount:
          type: number
          description: The amount of the discount.
          format: double
          nullable: true
        links:
          type: array
          items:
            $ref: '#/components/schemas/CommonUrlDto'
          description: A list of links/urls to associated with the line item.
          nullable: true
        deliveryDate:
          type: string
          description: 'The delivery date for the line item.

            Only the calendar date is used, exactly as written; any time or UTC offset is ignored.'
          format: date-time
          nullable: true
        unitOfMeasureName:
          type: string
          description: The unit of measure to apply. If left blank, the default unit of measure for the item will be applied.
          nullable: true
        accountingCodeId:
          maxLength: 24
          minLength: 24
          type: string
          description: 'Accounting code key identifier. Please reference /api/accounting-codes endpoint.

            If this value is not provided and the name matches a defined "default fee", the accounting code

            on the "default fee" will be used.'
          nullable: true
        isCustomerItem:
          type: boolean
          description: Determines whether or not to display the customer part number and customer part description.
          nullable: true
        customerPartNumber:
          type: string
          description: Used for the part number on customer facing documents when IsCustomerItem is true
          nullable: true
        customerPartDescription:
          maxLength: 2000
          minLength: 0
          type: string
          description: Used for the description on customer facing documents when IsCustomerItem is true
          nullable: true
      additionalProperties: false
      description: Represents a part line item on a sales order.
    CommonCostBreakdownLineDto:
      required:
      - cost
      - costType
      - name
      type: object
      properties:
        costType:
          $ref: '#/components/schemas/CommonEnumCostBreakdownLineTypeEnum'
        operationType:
          $ref: '#/components/schemas/CommonEnumOperationTypeEnum'
        name:
          minLength: 1
          type: string
          description: Decription of this line.
        cost:
          minimum: 0
          type: number
          description: Cost.
          format: double
        quantity:
          minimum: 0
          type: number
          description: Quantity (if applicable)
          format: double
          nullable: true
        itemId:
          maxLength: 24
          minLength: 24
          type: string
          description: Id of the item that was picked. Please reference /api/items endpoint.
          nullable: true
        itemName:
          type: string
          description: The name of the item that was picked.
          nullable: true
        accountingCodeId:
          maxLength: 24
          minLength: 24
          type: string
          description: Accounting code affected. Please reference /api/accounting-codes endpoint.
          nullable: true
        operationInformation:
          $ref: '#/components/schemas/CommonCostBreakdownOperationDto'
      additionalProperties: false
      description: Cost breakdown line information.
    SalesOrderPartLineItemCreateBatchDto:
      required:
      - lineItems
      type: object
      properties:
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/SalesOrderPartLineItemCreateDto'
          description: The line items to add to a sales order.
      additionalProperties: false
      description: Represents a batch of part line items to add to a sales order.
    CreatedResponseDto:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
          description: The id of the created record
      additionalProperties: false
      description: Response for a created record
    SalesOrderPartLineItemDto:
      required:
      - accountingDetails
      - discountedPrice
      - id
      - isTaxable
      - itemId
      - name
      - preDiscountSubTotal
      - price
      - quantity
      - subTotal
      type: object
      properties:
        id:
          maxLength: 36
          minLength: 36
          type: string
          description: Unique id associated to this entity.
        name:
          maxLength: 200
          minLength: 1
          type: string
          description: The line item name.
        quantity:
          minimum: 0
          type: number
          description: The line item quantity
          format: double
        price:
          minimum: 0
          type: number
          description: The line item price.
          format: double
        discountedPrice:
          minimum: 0
          type: number
          description: The discounted line item price.
          format: double
        dueDate:
          type: string
          description: Customer delivery date
          format: date-time
          nullable: true
        isTaxable:
          type: boolean
          description: Dictate if this line item is taxable.
        overrideTaxRate:
          type: boolean
          description: Dictate if the tax rate is overridden.
          nullable: true
        taxCodeId:
          maxLength: 24
          minLength: 24
          type: string
          description: Tax code key identifier. Please reference /api/tax-rates endpoint.
          nullable: true
        taxRate:
          minimum: 0
          type: number
          description: Tax rate to use for this entity. If a FulcrumProduct.PublicApi.Dto.SalesOrder.PartLineItem.PartLineItemDto.TaxCodeId is provided, the provided FulcrumProduct.PublicApi.Dto.SalesOrder.PartLineItem.PartLineItemDto.TaxRate will supercede the defined tax rate.
          format: double
          nullable: true
        itemId:
          maxLength: 24
          minLength: 24
          type: string
          description: Item id associated with this line item.
        description:
          maxLength: 2000
          minLength: 0
          type: string
          description: The part line item description.  Defaults to the item's description if none specified.
          nullable: true
        accountingCodeId:
          maxLength: 24
          minLength: 24
          type: string
          description: Accounting code key identifier. Please reference /api/accounting-codes endpoint.
          nullable: true
        internalNotes:
          maxLength: 2000
          minLength: 1
          type: string
          description: The line item internal notes. Aka production notes.
          nullable: true
        externalReferences:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CommonExternalReferenceDto'
          description: Arbitrary key-value-pair like data that can be used to later on search for this line item.
          nullable: true
        isPercentageDiscount:
          type: boolean
          description: Indicates whether FulcrumProduct.PublicApi.Dto.SalesOrder.PartLineItem.PartLineItemDto.DiscountAmount discount is percentage based (else, it's an absolute amount).
          nullable: true
        discountAmount:
          type: number
          description: The amount of the discount.
          format: double
          nullable: true
        links:
          type: array
          items:
            $ref: '#/components/schemas/CommonUrlDto'
          description: List of links associated with the line item
          nullable: true
        customFields:
          type: object
          additionalProperties: {}
          description: Custom fields that have been defined for the part line item;
          nullable: true
        parentLineId:
          maxLength: 36
          minLength: 36
          type: string
          description: Identifier pointing to the parent line item (if this part line was sourced from a blanket line item). Please reference /api/sales-order/{salesOrderId}/blanket-line-items/list endpoint.
          nullable: true
        subTotal:
          minimum: 0
          type: number
          description: Total line item cost, including applicable discounts
          format: double
        preDiscountSubTotal:
          minimum: 0
          type: number
          description: Total line item cost, before discounts
          format: double
        customerPartNumber:
          maxLength: 200
          minLength: 1
          type: string
          description: The customer's known part line item number.
          nullable: true
        customerPartDescription:
          maxLength: 2000
          minLength: 0
          type: string
          description: The customer's known part line item description.
          nullable: true
        number:
          type: integer
          description: Line number


# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fulcrumpro/refs/heads/main/openapi/fulcrumpro-sales-order-part-line-item-api-openapi.yml