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.
The Sales Order Part Line Item API from Fulcrumpro — 5 operation(s) for sales order part line item.
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