Skip to main content

Fulcrum PublicAPI (v1)

Download OpenAPI specification:Download

Accounting Code

Create an accounting code

Request Body schema:
required
name
required
string [ 1 .. 200 ] characters

Descriptive name associated to the object

style
required
string (CommonEnumStyleEnum)
Enum: "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "connected"

Style enum (for tags).

description
string or null [ 1 .. 200 ] characters

Descriptive name associated to the object

Responses

Request samples

Content type
{
  • "name": "string",
  • "style": "primary",
  • "description": "string"
}

Response samples

Content type
{
  • "id": "string"
}

Get an accounting code.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "style": "primary",
  • "description": "string",
  • "types": [
    ],
  • "deleted": true
}

Find accounting codes based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter tags based on their name.

ids
Array of strings or null

Filter tags based on matching ids.

Responses

Request samples

Content type
{
  • "name": "string",
  • "ids": [
    ]
}

Response samples

Content type
[
  • {
    }
]

Attachment

Create an attachment

Request Body schema: multipart/form-data
File
required
string <binary>

The file itself

Detail.Owner.Type
string (CommonEnumOwnerTypeCreateEnum)
Enum: "salesOrder" "salesOrderReceiving" "salesOrderPartLineItem" "quote" "quotePartLineItem" "purchaseOrder" "purchaseOrderReceiving" "purchaseOrderPartLineItem" "invoice" "workOrderOperation" "operation" "item" "job"

Owner types

Detail.Owner.Id
string [ 24 .. 36 ] characters

The primary owner id of this attachment.

Detail.Description
string [ 1 .. 200 ] characters

File description

Detail.IsNoteAttachment
required
boolean

Indicates whether this attachment is bound to a note.

Detail.Parent.Type
string (CommonEnumOwnerTypeCreateEnum)
Enum: "salesOrder" "salesOrderReceiving" "salesOrderPartLineItem" "quote" "quotePartLineItem" "purchaseOrder" "purchaseOrderReceiving" "purchaseOrderPartLineItem" "invoice" "workOrderOperation" "operation" "item" "job"

Owner types

Detail.Parent.Id
string [ 24 .. 36 ] characters

The primary owner id of this attachment.

object

Metadata to associate to the attachment.

Responses

Response samples

Content type
{
  • "id": "string"
}

Create an attachment based on a remote data endpoint.

Request Body schema:
required
required
object (AttachmentOwnerCreateDto)

Attachment owner

object (AttachmentOwnerCreateDto)

Attachment owner

fileName
required
string [ 1 .. 200 ] characters

File name

accessUrl
required
string <uri> non-empty

File access url

token
string or null

Optional token that may be required for access the AccessUrl

Responses

Request samples

Content type
{
  • "owner": {
    },
  • "parent": {
    },
  • "fileName": "string",
  • "accessUrl": "http://example.com",
  • "token": "string"
}

Response samples

Content type
{
  • "id": "string"
}

Delete a specific attachment

path Parameters
attachmentId
required
string = 24 characters

Responses

Get a specific attachment

path Parameters
attachmentId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "owner": {
    },
  • "name": "string",
  • "description": "string",
  • "type": "standard",
  • "format": "undefined",
  • "size": 0,
  • "fileId": "string",
  • "createdUtc": "2019-08-24T14:15:22Z"
}

Download a specific attachment

path Parameters
attachmentId
required
string = 24 characters
query Parameters
fileName
string

Responses

Download attachment(s) for a given filter in ZIP format

query Parameters
fileName
string
Request Body schema:
required
object (AttachmentOwnerDto)

Attachment owner

Array of objects or null (AttachmentOwnerDto) [ 1 .. 500 ] items

The primary owners of the attachment.

attachmentIds
Array of strings or null [ 1 .. 500 ] items

Filter to attachments whose ids are in the list.

formats
Array of strings or null (CommonEnumAttachmentMediaFormatEnum) [ 1 .. 500 ] items
Enum: "undefined" "cad" "document" "image" "video"

Allows for filtering based on specific attachment format types.

Responses

Request samples

Content type
{
  • "owner": {
    },
  • "owners": [
    ],
  • "attachmentIds": [
    ],
  • "formats": [
    ]
}

Find attachments based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
required
object (AttachmentOwnerDto)

Attachment owner

Array of objects or null (AttachmentOwnerDto) [ 1 .. 500 ] items

The primary owners of the attachment.

attachmentIds
Array of strings or null [ 1 .. 500 ] items

Filter to attachments whose ids are in the list.

formats
Array of strings or null (CommonEnumAttachmentMediaFormatEnum) [ 1 .. 500 ] items
Enum: "undefined" "cad" "document" "image" "video"

Allows for filtering based on specific attachment format types.

Responses

Request samples

Content type
{
  • "owner": {
    },
  • "owners": [
    ],
  • "attachmentIds": [
    ],
  • "formats": [
    ]
}

Response samples

Content type
[
  • {
    }
]

Attachment Certification

Create a certification attachment

Request Body schema: multipart/form-data
File
required
string <binary>

The file itself

Detail.Owner.Type
string (CommonEnumOwnerTypeCertificationEnum)
Enum: "item" "purchaseOrderReceivingLineItem" "salesOrderReceivingLineItem"

Owner types that can be used for certification attachments

Detail.Owner.Id
string [ 24 .. 36 ] characters

The primary owner id of this attachment.

Detail.Description
string [ 1 .. 200 ] characters

File description

object

Metadata to associate to the attachment.

Detail.LotId
string = 24 characters

Lot id.

Responses

Response samples

Content type
{
  • "id": "string"
}

Auth

Get details about a token used to authenticate the request

Responses

Response samples

Content type
{
  • "revocationId": "stringstringstringstring",
  • "name": "string",
  • "domain": "string",
  • "expirationUtc": "2019-08-24T14:15:22Z"
}

CAPAs

Get a specific CAPA by id.

path Parameters
capaId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "capaType": "string",
  • "problemStatement": "string",
  • "status": "string",
  • "rootCauseAnalysis": "string",
  • "correctiveAction": "string",
  • "ncrId": "string",
  • "createdUtc": "2019-08-24T14:15:22Z",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "closedUtc": "2019-08-24T14:15:22Z"
}

Finds CAPAs based on search parameters

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
status
string or null

Filter CAPAs by a specific status Accepted Values: Closed, Hold, New, Quality Review, Engineering Review

type
string or null

Filter CAPAs by a specific type. Available values are configured per tenant in Quality settings (NCR dropdowns).

ncrId
string or null

Filter CAPAs by a NCR Id

createdUtc
string or null <date-time>

Filter CAPAs created after a certain date

Responses

Request samples

Content type
{
  • "status": "string",
  • "type": "string",
  • "ncrId": "string",
  • "createdUtc": "2019-08-24T14:15:22Z"
}

Response samples

Content type
{
  • "data": [
    ],
  • "page": 0,
  • "pageSize": 0,
  • "totalCount": 0,
  • "totalPages": 0,
  • "hasPreviousPage": true,
  • "hasNextPage": true
}

Chart Of Accounts

Get an account class.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "style": "primary",
  • "description": "string",
  • "types": [
    ],
  • "deleted": true
}

Find accounts based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter tags based on their name.

ids
Array of strings or null

Filter tags based on matching ids.

Responses

Request samples

Content type
{
  • "name": "string",
  • "ids": [
    ]
}

Response samples

Content type
[
  • {
    }
]

Company Info

Get info for a specific company.

path Parameters
companyId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "isPrimary": true,
  • "name": "string",
  • "shipToAddress": {
    },
  • "remitToAddress": {
    },
  • "websiteUrl": "http://example.com",
  • "phoneNumber": "string",
  • "faxNumber": "string",
}

Find company information based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
isPrimary
boolean or null

Filter on primary company info

Responses

Request samples

Content type
{
  • "isPrimary": true
}

Response samples

Content type
[
  • {
    }
]

Custom Field

Get a custom field.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "label": "string",
  • "type": "text",
  • "module": "item",
  • "required": true,
  • "options": [
    ],
  • "prepend": "string",
  • "append": "string",
  • "helpText": "string"
}

Find custom fields based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter custom fields based on their name.

ids
Array of strings or null

Filter custom fields based on matching ids.

module
string (DomainSystemDataCustomFieldDefinitionModule)
Enum: "item" "item_Make" "item_Buy" "customer" "vendor" "quote" "sales_Order" "job" "invoice" "purchase_Order" "receive_Order" "ship_Order" "quote_Part_LineItem" "sales_Order_Part_LineItem" "purchase_Order_Part_LineItem" "outsideProcessing_LineItem" "shipping_Part_LineItem" "invoice_Part_LineItem" "job_Operation" "ncr" "capa"
type
string (DomainSystemDataCustomFieldDefinitionType)
Enum: "text" "multilineText" "dropdown" "multipleChoiceDropdown" "integerNumber" "decimalNumber" "floatingPointNumber" "boolean" "list" "date" "multipleChoiceUser"

Responses

Request samples

Content type
{
  • "name": "string",
  • "ids": [
    ],
  • "module": "item",
  • "type": "text"
}

Response samples

Content type
[
  • {
    }
]

Customer

Create a new customer

Request Body schema:
required
name
required
string [ 1 .. 200 ] characters

The name to give the customer. Must be unique to all active customers.

customerCode
string or null non-empty

Unique identifier for this customer

currencyCode
string or null non-empty

Currency code/denomination associated to this customer. If not provided, default to the primary currency code for the organization.

creditLimit
number or null <double> >= 0

Credit limit

paymentTermsId
string or null = 24 characters

Payment terms.

salesPersonId
string or null = 24 characters

Payment terms.

url
string or null <uri>

The Customer's website

isTaxable
boolean or null

Whether or not this customer is taxable on Sales Orders and Quotes

taxRateIds
Array of strings or null

A list of tax codes to be automatically added to new SalesOrders for the customer when AutoAddTaxLineItems process setting is enabled.

object or null

Arbitrary key-value-pair like data that can be used to later on search for the customer

object or null

Custom fields that have been defined on this entity.

notes
string or null

Notes associated to the customer.

hasCustomerPortal
boolean or null

Indicates if this customer is set up to use the customer portal.

Responses

Request samples

Content type
{
  • "name": "string",
  • "customerCode": "string",
  • "currencyCode": "string",
  • "creditLimit": 0.1,
  • "paymentTermsId": "stringstringstringstring",
  • "salesPersonId": "stringstringstringstring",
  • "isTaxable": true,
  • "taxRateIds": [
    ],
  • "externalReferences": {
    },
  • "customFields": {
    },
  • "notes": "string",
  • "hasCustomerPortal": true
}

Response samples

Content type
{
  • "id": "string"
}

Delete a specific customer

path Parameters
customerId
required
string = 24 characters

Responses

Get a specific customer

path Parameters
customerId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "customerCode": "string",
  • "currencyCode": "string",
  • "creditLimit": 0.1,
  • "paymentTermsId": "stringstringstringstring",
  • "paymentTerms": {
    },
  • "salesPersonId": "stringstringstringstring",
  • "isTaxable": true,
  • "taxRateIds": [
    ],
  • "externalReferences": {
    },
  • "customFields": {
    },
  • "notes": "string",
  • "hasCustomerPortal": true,
  • "customerTierId": "stringstringstringstring",
  • "customerTierName": "string",
  • "customerTypeId": "stringstringstringstring",
  • "customerTypeName": "string"
}

Partially update a customer

path Parameters
customerId
required
string = 24 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "customerCode": "string",
  • "currencyCode": "string",
  • "creditLimit": 0.1,
  • "paymentTermsId": "stringstringstringstring",
  • "paymentTerms": {
    },
  • "salesPersonId": "stringstringstringstring",
  • "isTaxable": true,
  • "taxRateIds": [
    ],
  • "externalReferences": {
    },
  • "customFields": {
    },
  • "notes": "string",
  • "hasCustomerPortal": true,
  • "customerTierId": "stringstringstringstring",
  • "customerTierName": "string",
  • "customerTypeId": "stringstringstringstring",
  • "customerTypeName": "string"
}

Update a specific customer

path Parameters
customerId
required
string = 24 characters
Request Body schema:
required
name
required
string [ 1 .. 200 ] characters

The name to give the customer. Must be unique to all active customers.

customerCode
string or null non-empty

Unique identifier for this customer

currencyCode
string or null non-empty

Currency code/denomination associated to this customer. If not provided, default to the primary currency code for the organization.

url
string or null <uri>

The Customer's website

creditLimit
number or null <double> >= 0

Credit limit

paymentTermsId
string or null = 24 characters

Payment terms identifier. Please reference /api/payment-terms endpoint.

salesPersonId
string or null = 24 characters

Sales person identifier. Please reference /api/users endpoint.

isTaxable
boolean or null

Whether or not this customer is taxable on Sales Orders and Quotes

taxRateIds
Array of strings or null

A list of tax codes to be automatically added to new SalesOrders for the customer when AutoAddTaxLineItems process setting is enabled.

object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

object or null

Custom fields that have been defined on this entity.

notes
string or null

Notes associated to the customer.

hasCustomerPortal
boolean or null

Indicates if this customer is set up to use the customer portal.

Responses

Request samples

Content type
{
  • "name": "string",
  • "customerCode": "string",
  • "currencyCode": "string",
  • "creditLimit": 0.1,
  • "paymentTermsId": "stringstringstringstring",
  • "salesPersonId": "stringstringstringstring",
  • "isTaxable": true,
  • "taxRateIds": [
    ],
  • "externalReferences": {
    },
  • "customFields": {
    },
  • "notes": "string",
  • "hasCustomerPortal": true
}

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "customerCode": "string",
  • "currencyCode": "string",
  • "creditLimit": 0.1,
  • "paymentTermsId": "stringstringstringstring",
  • "paymentTerms": {
    },
  • "salesPersonId": "stringstringstringstring",
  • "isTaxable": true,
  • "taxRateIds": [
    ],
  • "externalReferences": {
    },
  • "customFields": {
    },
  • "notes": "string",
  • "hasCustomerPortal": true,
  • "customerTierId": "stringstringstringstring",
  • "customerTierName": "string",
  • "customerTypeId": "stringstringstringstring",
  • "customerTypeName": "string"
}

Find customers based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter to customers who's name contains the given string

customerCode
string or null non-empty

Unique identifier for this customer.

email
string or null non-empty

The email of the customer

modifiedAfterUtc
string or null <date-time>

Filter to customer records modified after the given datetime (in UTC)

object (CommonExternalReferenceFindDto)

Search parameter for identifier record(s) via their external identifiers.

Responses

Request samples

Content type
{
  • "name": "string",
  • "customerCode": "string",
  • "email": "string",
  • "modifiedAfterUtc": "2019-08-24T14:15:22Z",
  • "externalReference": {
    }
}

Response samples

Content type
[
  • {
    }
]

Customer Address

Create a new customer address

path Parameters
customerId
required
string = 24 characters
Request Body schema:
required
name
string or null [ 1 .. 200 ] characters

Name of the address (Bob's Shipping, Primary, Reno Warehouse, etc).

address1
required
string [ 1 .. 200 ] characters

Primary address line.

address2
string or null [ 1 .. 200 ] characters

Second address line.

address3
string or null [ 1 .. 200 ] characters

Third address line.

city
required
string [ 1 .. 200 ] characters

Address city

stateProvince
string or null [ 1 .. 200 ] characters

Address state/province.

postalCode
required
string [ 1 .. 200 ] characters

Postal/zip code.

country
string or null [ 1 .. 200 ] characters

Country identifier.

shippingLeadTime
integer or null <int32> >= 0

Lead time for shipping contents.

primaryBilling
boolean

Signifies if this is a primary billing address.

primaryShipping
boolean

Signifies if this is a primary billing address.

email
string or null <email>

Email address

phone
string or null

Associated phone number

fax
string or null

Associated fax number

notes
string or null

General notes associated to this customer address

Responses

Request samples

Content type
{
  • "name": "string",
  • "address1": "string",
  • "address2": "string",
  • "address3": "string",
  • "city": "string",
  • "stateProvince": "string",
  • "postalCode": "string",
  • "country": "string",
  • "shippingLeadTime": 0,
  • "primaryBilling": true,
  • "primaryShipping": true,
  • "email": "[email protected]",
  • "phone": "string",
  • "fax": "string",
  • "notes": "string"
}

Response samples

Content type
{
  • "id": "string"
}

Delete a specific customer address

path Parameters
customerId
required
string = 24 characters
customerAddressId
required
string = 36 characters

Responses

Get a specific customer address

path Parameters
customerId
required
string = 24 characters
customerAddressId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "name": "string",
  • "address1": "string",
  • "address2": "string",
  • "address3": "string",
  • "city": "string",
  • "stateProvince": "string",
  • "postalCode": "string",
  • "country": "string",
  • "shippingLeadTime": 0,
  • "primaryBilling": true,
  • "primaryShipping": true,
  • "id": "stringstringstringstringstringstring",
  • "email": "[email protected]",
  • "phone": "string",
  • "fax": "string",
  • "notes": "string"
}

Update a specific customer address

path Parameters
customerId
required
string = 24 characters
customerAddressId
required
string = 36 characters
Request Body schema:
required
name
string or null [ 1 .. 200 ] characters

Name of the address (Bob's Shipping, Primary, Reno Warehouse, etc).

address1
required
string [ 1 .. 200 ] characters

Primary address line.

address2
string or null [ 1 .. 200 ] characters

Second address line.

address3
string or null [ 1 .. 200 ] characters

Third address line.

city
required
string [ 1 .. 200 ] characters

Address city

stateProvince
string or null [ 1 .. 200 ] characters

Address state/province.

postalCode
required
string [ 1 .. 200 ] characters

Postal/zip code.

country
string or null [ 1 .. 200 ] characters

Country identifier.

shippingLeadTime
integer or null <int32> >= 0

Lead time for shipping contents.

primaryBilling
boolean

Signifies if this is a primary billing address.

primaryShipping
boolean

Signifies if this is a primary billing address.

email
string or null <email>

Email address

phone
string or null

Associated phone number

fax
string or null

Associated fax number

notes
string or null

General notes associated to this customer address

Responses

Request samples

Content type
{
  • "name": "string",
  • "address1": "string",
  • "address2": "string",
  • "address3": "string",
  • "city": "string",
  • "stateProvince": "string",
  • "postalCode": "string",
  • "country": "string",
  • "shippingLeadTime": 0,
  • "primaryBilling": true,
  • "primaryShipping": true,
  • "email": "[email protected]",
  • "phone": "string",
  • "fax": "string",
  • "notes": "string"
}

Get a list of addresses for a customer

path Parameters
customerId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Customer Contact

Create a new customer contact

path Parameters
customerId
required
string = 24 characters
Request Body schema:
required
firstName
required
string [ 1 .. 200 ] characters

First name

lastName
string or null [ 1 .. 200 ] characters

Last name

position
string or null [ 1 .. 200 ] characters

Position / Job Title

phone
string or null

Phone number

cellPhone
string or null

Cellphone number

email
string or null <email>

Email address

Responses

Request samples

Content type
{
  • "firstName": "string",
  • "lastName": "string",
  • "position": "string",
  • "phone": "string",
  • "cellPhone": "string",
}

Response samples

Content type
{
  • "id": "string"
}

Delete a specific customer contact

path Parameters
customerId
required
string = 24 characters

The id of the customer to modify contacts for

contactId
required
string = 36 characters

The id of the customer contact.

Responses

Get a specific customer contact

path Parameters
customerId
required
string = 24 characters

The id of the customer to modify contacts for

contactId
required
string = 36 characters

The id of the customer contact.

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "firstName": "string",
  • "lastName": "string",
  • "position": "string",
  • "cellPhone": "string",
  • "phone": "string",
}

Update a specific customer contact

path Parameters
customerId
required
string = 24 characters

The id of the customer to modify contacts for

contactId
required
string = 36 characters

The id of the customer contact.

Request Body schema:
required

The new data to apply to the given index

firstName
required
string [ 1 .. 200 ] characters

First name

lastName
string or null [ 1 .. 200 ] characters

Last name

position
string or null [ 1 .. 200 ] characters

Position / Job Title

phone
string or null

Phone number

cellPhone
string or null

Cellphone number

email
string or null <email>

Email address

Responses

Request samples

Content type
{
  • "firstName": "string",
  • "lastName": "string",
  • "position": "string",
  • "phone": "string",
  • "cellPhone": "string",
}

Get a list of contacts for a customer

path Parameters
customerId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Customer Tier

Get a customer tier.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "description": "string"
}

Find customer tiers based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter customer tierds based on their name.

ids
Array of strings or null

Filter customer tiers based on matching ids.

Responses

Request samples

Content type
{
  • "name": "string",
  • "ids": [
    ]
}

Response samples

Content type
[
  • {
    }
]

Department

Create a department.

Request Body schema:
required
name
required
string [ 1 .. 200 ] characters

Identifying name. Must be unique.

description
string or null [ 1 .. 200 ] characters

Description of the department.

workCenterIds
Array of strings or null

Identifiers of the work centers associated with this department. Please reference /api/work-centers endpoint.

Responses

Request samples

Content type
{
  • "name": "string",
  • "description": "string",
  • "workCenterIds": [
    ]
}

Response samples

Content type
{
  • "id": "string"
}

Get a department.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "deleted": true,
  • "workCenters": [
    ]
}

Update a department.

path Parameters
id
required
string = 24 characters
Request Body schema:
required
name
required
string [ 1 .. 200 ] characters

Identifying name. Must be unique.

description
string or null [ 1 .. 200 ] characters

Description of the department. Replaces the existing value.

workCenterIds
Array of strings or null

Identifiers of the work centers associated with this department. Replaces the existing set. Please reference /api/work-centers endpoint.

Responses

Request samples

Content type
{
  • "name": "string",
  • "description": "string",
  • "workCenterIds": [
    ]
}

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "deleted": true,
  • "workCenters": [
    ]
}

Find departments based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
ids
Array of strings or null

Filter departments based on matching ids.

name
string or null [ 1 .. 200 ] characters

Filter departments based on their name.

Responses

Request samples

Content type
{
  • "ids": [
    ],
  • "name": "string"
}

Response samples

Content type
[
  • {
    }
]

Equipment

Create a piece of equipment.

Request Body schema:
required
name
required
string [ 1 .. 200 ] characters

Identifying name. Must be unique.

description
required
string [ 1 .. 200 ] characters

Description. Required.

workCenterId
string or null = 24 characters

WorkCenter identifier. Please reference /api/work-centers endpoint.

manufacturer
string or null [ 1 .. 200 ] characters

Manufacturer.

modelNumber
string or null [ 1 .. 200 ] characters

Model number.

serialNumber
string or null [ 1 .. 200 ] characters

Serial number.

canRunUnattended
boolean

Indicates if this equipment can be run unattended. This allows the portion of an operation that utilizes this equipment to be scheduled outside of a shift.

unlimitedCapacity
boolean

Indicates if this equipment can support multiple operations simultaneously.

status
string (EquipmentStatus)
Enum: "good" "poor" "bad" "outOfService"

Equipment status

notes
string or null [ 1 .. 2000 ] characters

Notes associated to the equipment.

Responses

Request samples

Content type
{
  • "name": "string",
  • "description": "string",
  • "workCenterId": "stringstringstringstring",
  • "manufacturer": "string",
  • "modelNumber": "string",
  • "serialNumber": "string",
  • "canRunUnattended": true,
  • "unlimitedCapacity": true,
  • "status": "good",
  • "notes": "string"
}

Response samples

Content type
{
  • "id": "string"
}

Get a piece of equipment.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "workCenterId": "stringstringstringstring",
  • "manufacturer": "string",
  • "modelNumber": "string",
  • "serialNumber": "string",
  • "canRunUnattended": true,
  • "unlimitedCapacity": true,
  • "status": "good",
  • "notes": "string",
  • "deleted": true
}

Update a piece of equipment.

path Parameters
id
required
string = 24 characters
Request Body schema:
required
name
required
string [ 1 .. 200 ] characters

Identifying name. Must be unique.

description
required
string [ 1 .. 200 ] characters

Description. Required.

workCenterId
string or null = 24 characters

WorkCenter identifier. Please reference /api/work-centers endpoint.

manufacturer
string or null [ 1 .. 200 ] characters

Manufacturer.

modelNumber
string or null [ 1 .. 200 ] characters

Model number.

serialNumber
string or null [ 1 .. 200 ] characters

Serial number.

canRunUnattended
boolean

Indicates if this equipment can be run unattended. This allows the portion of an operation that utilizes this equipment to be scheduled outside of a shift.

unlimitedCapacity
boolean

Indicates if this equipment can support multiple operations simultaneously.

status
string (EquipmentStatus)
Enum: "good" "poor" "bad" "outOfService"

Equipment status

notes
string or null [ 1 .. 2000 ] characters

Notes associated to the equipment.

Responses

Request samples

Content type
{
  • "name": "string",
  • "description": "string",
  • "workCenterId": "stringstringstringstring",
  • "manufacturer": "string",
  • "modelNumber": "string",
  • "serialNumber": "string",
  • "canRunUnattended": true,
  • "unlimitedCapacity": true,
  • "status": "good",
  • "notes": "string"
}

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "workCenterId": "stringstringstringstring",
  • "manufacturer": "string",
  • "modelNumber": "string",
  • "serialNumber": "string",
  • "canRunUnattended": true,
  • "unlimitedCapacity": true,
  • "status": "good",
  • "notes": "string",
  • "deleted": true
}

Find equipment based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
ids
Array of strings or null

Filter equipment based on matching ids.

name
string or null [ 1 .. 200 ] characters

Filter equipment based on their name.

Responses

Request samples

Content type
{
  • "ids": [
    ],
  • "name": "string"
}

Response samples

Content type
[
  • {
    }
]

Gauge Code

Get a gauge code.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "style": "primary",
  • "description": "string",
  • "types": [
    ],
  • "deleted": true
}

Find gauge codes based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter tags based on their name.

ids
Array of strings or null

Filter tags based on matching ids.

Responses

Request samples

Content type
{
  • "name": "string",
  • "ids": [
    ]
}

Response samples

Content type
[
  • {
    }
]

Grade Code

Get a grade code.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "style": "primary",
  • "description": "string",
  • "types": [
    ],
  • "deleted": true
}

Find grade codes based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter tags based on their name.

ids
Array of strings or null

Filter tags based on matching ids.

Responses

Request samples

Content type
{
  • "name": "string",
  • "ids": [
    ]
}

Response samples

Content type
[
  • {
    }
]

InProcessTrackingFieldType

Get an in process tracking field type

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "dataType": "boolean",
  • "description": "string",
  • "dropDownOptions": [
    ],
  • "unitTypeName": "string"
}

Lists in process tracking field types

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter in process tracking fields based on their name.

ids
Array of strings or null

Filter in process tracking fields based on matching ids.

Responses

Request samples

Content type
{
  • "name": "string",
  • "ids": [
    ]
}

Response samples

Content type
[
  • {
    }
]

Inventory

Find inventory based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
lotIds
Array of strings or null

Filter inventory based on lot ids.

itemIds
Array of strings or null

Filter inventory based on item ids.

locationIds
Array of strings or null

Filter inventory based on location ids.

Responses

Request samples

Content type
{
  • "lotIds": [
    ],
  • "itemIds": [
    ],
  • "locationIds": [
    ]
}

Response samples

Content type
[
  • {
    }
]

Returns on hand counts by item. Excludes reserved inventory counts by default, but can be included by passing in the ```includeReserved``` query parameter. NOTE: If the response does not contain an item identifier, it means there is no quantity on hand.

query Parameters
includeReserved
boolean
Default: false

Whether to included reserved inventory into the counts

Responses

Response samples

Content type
{
  • "property1": 0.1,
  • "property2": 0.1
}

Override an inventory's quantity.

Request Body schema:
required

The parameters for the request

itemId
required
string = 24 characters

Item identifier.

quantity
required
number <double>

The quantity to set the item's inventory level to.

lotId
string or null

The lot identifier to apply this override to

locationId
string or null

The location identifier to apply this override to. null signifies no location.

note
string or null

The note to add to the override transaction.

Responses

Request samples

Content type
{
  • "itemId": "stringstringstringstring",
  • "quantity": 0.1,
  • "lotId": "string",
  • "locationId": "string",
  • "note": "string"
}

Pick inventory against a specific item.

Request Body schema:
required
itemId
required
string = 24 characters

Item identifier. Please reference /api/items endpoint.

secondaryType
required
string (InventoryPickEventSecondaryType)
Enum: "pick" "consume" "scrap" "stockAdjustmentDecrease" "otherDecrease"

Secondary event type specifically for picking.

quantity
required
number <double>

Quantity of the item to pick.

locationId
string or null = 24 characters

Location id that inventory is picked from. Please reference /api/locations endpoint

lotId
string or null = 24 characters

Lot identifier for this block of inventory. Please reference /api/inventory-lots endpoint

note
string or null [ 1 .. 2000 ] characters

Notes associated to this transaction.

Responses

Request samples

Content type
{
  • "itemId": "stringstringstringstring",
  • "secondaryType": "pick",
  • "quantity": 0.1,
  • "locationId": "stringstringstringstring",
  • "lotId": "stringstringstringstring",
  • "note": "string"
}

Returns quantity available by item. This is the on hand + incoming supply - demand. NOTE: If the response does not contain an item identifier, it means there is no quantity on hand.

Responses

Response samples

Content type
{
  • "property1": 0.1,
  • "property2": 0.1
}

Receive inventory for a specific item.

Request Body schema:
required
itemId
required
string = 24 characters

Item identifier. Please reference /api/items endpoint.

secondaryType
required
string (InventoryReceiveEventSecondaryType)
Enum: "receive" "found" "stockAdjustmentIncrease" "otherIncrease"

Secondary event type specifically for receiving.

quantity
required
number <double>

Quantity of the item to receive.

locationId
string or null = 24 characters

Location id that inventory is received into. Please reference /api/locations endpoint

lotId
string or null = 24 characters

Lot identifier for this block of inventory. Please reference /api/inventory-lots endpoint

lotNumber
string or null [ 1 .. 200 ] characters

Lot name.

note
string or null [ 1 .. 2000 ] characters

Notes associated to this transaction.

laborValue
number or null <double> >= 0

Labor value associated (per unit).

machineValue
number or null <double> >= 0

Machine value associated (per unit).

outsideProcessingValue
number or null <double> >= 0

Outside processing value associated (per unit).

materialValue
number or null <double> >= 0

Material value associated (per unit).

Responses

Request samples

Content type
{
  • "itemId": "stringstringstringstring",
  • "secondaryType": "receive",
  • "quantity": 0.1,
  • "locationId": "stringstringstringstring",
  • "lotId": "stringstringstringstring",
  • "lotNumber": "string",
  • "note": "string",
  • "laborValue": 0.1,
  • "machineValue": 0.1,
  • "outsideProcessingValue": 0.1,
  • "materialValue": 0.1
}

Inventory Event

Get a specific inventory event

path Parameters
inventoryEventId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "actionDate": "2019-08-24T14:15:22Z",
  • "type": "pick",
  • "secondaryType": "pick",
  • "sourceType": "purchaseOrder",
  • "sourceName": "string",
  • "sourceEntityId": "string",
  • "sourceRelatedType": "purchaseOrder",
  • "sourceRelatedEntityId": "string",
  • "sourceItemToMakeId": "string",
  • "itemId": "stringstringstringstring",
  • "itemToMakeId": "stringstringstringstringstringstring",
  • "quantity": 0.1,
  • "laborValue": {
    },
  • "machineValue": {
    },
  • "outsideProcessingValue": {
    },
  • "materialValue": {
    },
  • "totalValue": {
    },
  • "reservedForId": "stringstringstringstring",
  • "reservedForType": "job",
  • "lotId": "stringstringstringstring",
  • "locationId": "stringstringstringstring",
  • "revertInventoryEventId": "stringstringstringstring",
  • "note": "string",
  • "resultEffects": {
    },
  • "details": {
    }
}

Find inventory events based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
createdBeforeUtc
string or null <date-time>

Filters events created before (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

createdAfterUtc
string or null <date-time>

Filters events created after (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

types
Array of strings or null (InventoryEventType)
Enum: "pick" "receive" "revert" "adjustment" "setItemValue" "eventOverride"

Inventory event type(s).

secondaryTypes
Array of strings or null (InventoryEventSecondaryType)
Enum: "pick" "receive" "override" "revert" "deposit" "create" "consume" "ship" "sold" "transferOut" "transferIn" "found" "expired" "damaged" "lost" "returnVendor" "returnStock" "receivedNoPo" "returnIncrease" "returnDecrease" "otherIncrease" "otherDecrease" "scrap" "waste" "transferredFromSalesOrder" "overrideItemValue" "transferFromLot" "transferToLot" "stockAdjustmentIncrease" "stockAdjustmentDecrease" "stockTake"

Inventory event secondary type(s).

sourceTypes
Array of strings or null (InventoryEnumEventSourceType)
Enum: "purchaseOrder" "job" "shipment" "shipmentLineItem" "shipping" "receiving" "item" "workOrder" "salesOrder" "jobOperation" "workOrderOperation" "fulfillment" "itemToMakeMaterialRemnant" "poRcvValueAdj"

Inventory event source type(s).

itemIds
Array of strings or null

Item id. Please reference /api/items endpoint.

itemToMakeIds
Array of strings or null

Item id. Please reference /api/items endpoint.

reservedForTypes
Array of strings or null (DomainCommonEntityType)
Enum: "job" "salesOrder" "shipment" "shipmentLineItem" "invoice" "invoiceLineItem" "customer" "customerAddress" "item" "receivingInspection" "failedInspection"

Inventory reservation types.

reservedForIds
Array of strings or null

Inventory reservation ids.

inventoryEventIds
Array of strings or null

Inventory event ids.

Responses

Request samples

Content type
{
  • "createdBeforeUtc": "2019-08-24T14:15:22Z",
  • "createdAfterUtc": "2019-08-24T14:15:22Z",
  • "types": [
    ],
  • "secondaryTypes": [
    ],
  • "sourceTypes": [
    ],
  • "itemIds": [
    ],
  • "itemToMakeIds": [
    ],
  • "reservedForTypes": [
    ],
  • "reservedForIds": [
    ],
  • "inventoryEventIds": [
    ]
}

Response samples

Content type
{
  • "data": [
    ],
  • "page": 0,
  • "pageSize": 0,
  • "totalCount": 0,
  • "totalPages": 0,
  • "hasPreviousPage": true,
  • "hasNextPage": true
}

Inventory Event Details

Partially update an inventory event's details

path Parameters
inventoryEventId
required
string = 24 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "externalReferences": {
    }
}

Update a specific inventory event details

path Parameters
inventoryEventId
required
string = 24 characters
Request Body schema:
required
object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

additional property
object (CommonExternalReferenceDto)

The external reference for entities that implement FulcrumProduct.Domain.Common.IHasExternalReferences

type
string or null [ 0 .. 50 ] characters

Specifies the type of this identifier.

externalId
required
string [ 0 .. 500 ] characters

The external identifier

displayId
string or null [ 0 .. 500 ] characters

The id/number that a human sees. For a quote, this might be 'Q1000'. If this is null, the display will fall back to the ExternalId

status
string or null

A status for the external reference

url
string or null

An external url for the reference

modifiedUtc
string or null <date-time>

Date the external reference was modified

lastSyncedUtc
string or null <date-time>

Date the external system last successfully synced this reference. Set by integrations on successful sync only; null means never synced or that the sync timestamp isn't maintained by the integration.

Responses

Request samples

Content type
{
  • "externalReferences": {
    }
}

Response samples

Content type
{
  • "externalReferences": {
    }
}

Get a specific inventory event

path Parameters
inventoryEventId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "externalReferences": {
    }
}

Inventory Lot

Create a new inventory lot.

Request Body schema:
required
name
string or null [ 1 .. 200 ] characters

The name of the lot. It is not guaranteed to be unique inventory-wide, but only within an item.

itemId
required
string = 24 characters

The item id that is associated to this lot. Please reference /api/items endpoint.

expirationDate
string or null <date-time>

The date that this lot is supposed to expire.

Responses

Request samples

Content type
{
  • "name": "string",
  • "itemId": "stringstringstringstring",
  • "expirationDate": "2019-08-24T14:15:22Z"
}

Response samples

Content type
{
  • "id": "string"
}

Get an inventory lot.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "itemId": "stringstringstringstring",
  • "quantity": 0.1,
  • "system": true,
  • "custom": true,
  • "expirationDate": "2019-08-24T14:15:22Z"
}

Find inventory lots based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter lots based on their name.

itemIds
Array of strings or null

Item ids to match. Please reference /api/items endpoint.

system
boolean or null

Filter by whether the lot is considered a system-generated lot.

Responses

Request samples

Content type
{
  • "name": "string",
  • "itemIds": [
    ],
  • "system": true
}

Response samples

Content type
[
  • {
    }
]

Inventory Transactions

Finds inventory transactions based on search parameters

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
itemIds
Array of strings or null

Filter inventory transactions based on item identifiers.

object (DtoCommonDateRangeFilter)

Date range used for filters

sourceType
string (V2InventoryDataEventSourceType)
Enum: "purchaseOrder" "job" "shipment" "shipmentLineItem" "shipping" "receiving" "item" "workOrder" "salesOrder" "jobOperation" "workOrderOperation" "fulfillment" "itemToMakeMaterialRemnant" "poRcvValueAdj"
relatedEntityType
string (V2InventoryDataEventSourceType)
Enum: "purchaseOrder" "job" "shipment" "shipmentLineItem" "shipping" "receiving" "item" "workOrder" "salesOrder" "jobOperation" "workOrderOperation" "fulfillment" "itemToMakeMaterialRemnant" "poRcvValueAdj"
relatedEntityId
string or null

The transaction's related entity identifier

Responses

Request samples

Content type
{
  • "itemIds": [
    ],
  • "dateRange": {
    },
  • "sourceType": "purchaseOrder",
  • "relatedEntityType": "purchaseOrder",
  • "relatedEntityId": "string"
}

Response samples

Content type
{
  • "data": [
    ],
  • "page": 0,
  • "pageSize": 0,
  • "totalCount": 0,
  • "totalPages": 0,
  • "hasPreviousPage": true,
  • "hasNextPage": true
}

Invoice

Get a specific invoice

path Parameters
invoiceId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "status": "new",
  • "customerId": "stringstringstringstring",
  • "currencyInfo": {
    },
  • "issueDate": "2019-08-24T14:15:22Z",
  • "externalReferences": {
    },
  • "paymentTermsId": "stringstringstringstring",
  • "paymentTerms": {
    },
  • "companyInfoId": "stringstringstringstring",
  • "salesOrderId": "stringstringstringstring",
  • "customerPONumber": "string",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "total": 0.1,
  • "subtotal": 0.1,
  • "lineItemsTotal": 0.1,
  • "notesToCustomer": "string",
  • "billingAddress": {
    },
  • "customFields": {
    },
  • "isDeposit": true,
  • "deleted": true
}

Partially update an invoice

path Parameters
invoiceId
required
string = 24 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "status": "new",
  • "customerId": "stringstringstringstring",
  • "currencyInfo": {
    },
  • "issueDate": "2019-08-24T14:15:22Z",
  • "externalReferences": {
    },
  • "paymentTermsId": "stringstringstringstring",
  • "paymentTerms": {
    },
  • "companyInfoId": "stringstringstringstring",
  • "salesOrderId": "stringstringstringstring",
  • "customerPONumber": "string",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "total": 0.1,
  • "subtotal": 0.1,
  • "lineItemsTotal": 0.1,
  • "notesToCustomer": "string",
  • "billingAddress": {
    },
  • "customFields": {
    },
  • "isDeposit": true,
  • "deleted": true
}

Update an invoice

path Parameters
invoiceId
required
string = 24 characters
Request Body schema:
required
object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

additional property
object (CommonExternalReferenceDto)

The external reference for entities that implement FulcrumProduct.Domain.Common.IHasExternalReferences

type
string or null [ 0 .. 50 ] characters

Specifies the type of this identifier.

externalId
required
string [ 0 .. 500 ] characters

The external identifier

displayId
string or null [ 0 .. 500 ] characters

The id/number that a human sees. For a quote, this might be 'Q1000'. If this is null, the display will fall back to the ExternalId

status
string or null

A status for the external reference

url
string or null

An external url for the reference

modifiedUtc
string or null <date-time>

Date the external reference was modified

lastSyncedUtc
string or null <date-time>

Date the external system last successfully synced this reference. Set by integrations on successful sync only; null means never synced or that the sync timestamp isn't maintained by the integration.

Responses

Request samples

Content type
{
  • "externalReferences": {
    }
}

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "status": "new",
  • "customerId": "stringstringstringstring",
  • "currencyInfo": {
    },
  • "issueDate": "2019-08-24T14:15:22Z",
  • "externalReferences": {
    },
  • "paymentTermsId": "stringstringstringstring",
  • "paymentTerms": {
    },
  • "companyInfoId": "stringstringstringstring",
  • "salesOrderId": "stringstringstringstring",
  • "customerPONumber": "string",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "total": 0.1,
  • "subtotal": 0.1,
  • "lineItemsTotal": 0.1,
  • "notesToCustomer": "string",
  • "billingAddress": {
    },
  • "customFields": {
    },
  • "isDeposit": true,
  • "deleted": true
}

Download the PDF for an invoice

The document is rendered when you call this, from the invoice's current state and the tenant's PDFs & Emails settings, so it is the same document the product's Download button produces rather than a stored copy of one sent earlier. The date format on the rendered document is presentational and is not part of this contract — read dates from the invoice's JSON representation rather than parsing them out of the PDF.

path Parameters
invoiceId
required
string = 24 characters

Responses

Find invoices based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
numbers
Array of integers or null <int32> [ 1 .. 500 ] items [ items <int32 > ]

Filter invoices to only given numbers

object (CommonExternalReferenceFindDto)

Search parameter for identifier record(s) via their external identifiers.

status
string (InvoiceStatusEnum)
Enum: "new" "needsApproval" "approved" "issued" "paid"

Invoice status

Responses

Request samples

Content type
{
  • "numbers": [
    ],
  • "externalReference": {
    },
  • "status": "new"
}

Response samples

Content type
[
  • {
    }
]

Update an invoice status

path Parameters
invoiceId
required
string = 24 characters
Request Body schema:
required
status
required
string (InvoiceStatusEnum)
Enum: "new" "needsApproval" "approved" "issued" "paid"

Invoice status

paidDate
string or null <date-time>

The date that the invoice was paid.

Responses

Request samples

Content type
{
  • "status": "new",
  • "paidDate": "2019-08-24T14:15:22Z"
}

Invoice Deposit Adjustment Line Item

Get a specific deposit adjustment line item for an invoice

path Parameters
invoiceId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "price": 0.1,
  • "accountingCodeId": "stringstringstringstring",
  • "externalReferences": {
    },
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "accountingDetails": {
    }
}

Get a list of deposit adjustment lines items for an invoice

path Parameters
invoiceId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Invoice Deposit Line Item

Get a specific deposit line item for an invoice

path Parameters
invoiceId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "amount": 0.1,
  • "accountingCodeId": "stringstringstringstring",
  • "externalReferences": {
    },
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "number": 0,
  • "accountingDetails": {
    }
}

Get a list of deposit lines items for an invoice

path Parameters
invoiceId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Invoice Discount Line Item

Get the discount line item for an invoice

path Parameters
invoiceId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "isPercentage": true,
  • "amount": 0.1,
  • "externalReferences": {
    },
  • "number": 0,
  • "accountingDetails": {
    },
  • "price": 0.1
}

Invoice Fee Line Item

Get a specific fee line item for an invoice

path Parameters
invoiceId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "unitOfMeasure": "notApplicable",
  • "accountingCodeId": "stringstringstringstring",
  • "isTaxable": true,
  • "overrideTaxRate": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "externalReferences": {
    },
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "number": 0,
  • "accountingDetails": {
    }
}

Partially update a specific fee line item for a purchase order

path Parameters
invoiceId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "unitOfMeasure": "notApplicable",
  • "accountingCodeId": "stringstringstringstring",
  • "isTaxable": true,
  • "overrideTaxRate": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "externalReferences": {
    },
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "number": 0,
  • "accountingDetails": {
    }
}

Update a specific fee line item for an invoice

path Parameters
invoiceId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema:
required
object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

additional property
object (CommonExternalReferenceDto)

The external reference for entities that implement FulcrumProduct.Domain.Common.IHasExternalReferences

type
string or null [ 0 .. 50 ] characters

Specifies the type of this identifier.

externalId
required
string [ 0 .. 500 ] characters

The external identifier

displayId
string or null [ 0 .. 500 ] characters

The id/number that a human sees. For a quote, this might be 'Q1000'. If this is null, the display will fall back to the ExternalId

status
string or null

A status for the external reference

url
string or null

An external url for the reference

modifiedUtc
string or null <date-time>

Date the external reference was modified

lastSyncedUtc
string or null <date-time>

Date the external system last successfully synced this reference. Set by integrations on successful sync only; null means never synced or that the sync timestamp isn't maintained by the integration.

Responses

Request samples

Content type
{
  • "externalReferences": {
    }
}

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "unitOfMeasure": "notApplicable",
  • "accountingCodeId": "stringstringstringstring",
  • "isTaxable": true,
  • "overrideTaxRate": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "externalReferences": {
    },
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "number": 0,
  • "accountingDetails": {
    }
}

Get a list of fee lines items for an invoice

path Parameters
invoiceId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Invoice Line Item

Get a specific line item for an invoice of generic type

path Parameters
invoiceId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "type": "part",
  • "quantity": 0.1,
  • "price": 0.1,
  • "discountedPrice": 0.1,
  • "subtotal": 0.1,
  • "discountedSubtotal": 0.1,
  • "name": "string",
  • "description": "string",
  • "accountingCodeId": "stringstringstringstring",
  • "taxCodeId": "stringstringstringstring",
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "externalReferences": {
    },
  • "isTaxable": true,
  • "number": 0,
  • "accountingDetails": {
    }
}

Get a list of lines items for an invoice, regardless of type

path Parameters
invoiceId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Invoice Note

TO BE REMOVED 08/18/2023 - Get a list of notes for an invoice Deprecated

Use root /note API instead

path Parameters
invoiceId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Invoice Part Line Item

Get a specific part line item for an invoice

path Parameters
invoiceId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "discountedPrice": 0.1,
  • "overrideTaxRate": true,
  • "isTaxable": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "itemId": "stringstringstringstring",
  • "description": "string",
  • "externalReferences": {
    },
  • "accountingCodeId": "stringstringstringstring",
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "subTotal": 0.1,
  • "preDiscountSubTotal": 0.1,
  • "isPercentageDiscount": true,
  • "discountAmount": 0.1,
  • "customerPartNumber": "string",
  • "customerPartDescription": "string",
  • "shipmentIds": [
    ],
  • "number": 0,
  • "accountingDetails": {
    }
}

Partially update a specific part line item for an invoice

path Parameters
invoiceId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "discountedPrice": 0.1,
  • "overrideTaxRate": true,
  • "isTaxable": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "itemId": "stringstringstringstring",
  • "description": "string",
  • "externalReferences": {
    },
  • "accountingCodeId": "stringstringstringstring",
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "subTotal": 0.1,
  • "preDiscountSubTotal": 0.1,
  • "isPercentageDiscount": true,
  • "discountAmount": 0.1,
  • "customerPartNumber": "string",
  • "customerPartDescription": "string",
  • "shipmentIds": [
    ],
  • "number": 0,
  • "accountingDetails": {
    }
}

Update a specific part line item for an invoice

path Parameters
invoiceId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema:
required
object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

additional property
object (CommonExternalReferenceDto)

The external reference for entities that implement FulcrumProduct.Domain.Common.IHasExternalReferences

type
string or null [ 0 .. 50 ] characters

Specifies the type of this identifier.

externalId
required
string [ 0 .. 500 ] characters

The external identifier

displayId
string or null [ 0 .. 500 ] characters

The id/number that a human sees. For a quote, this might be 'Q1000'. If this is null, the display will fall back to the ExternalId

status
string or null

A status for the external reference

url
string or null

An external url for the reference

modifiedUtc
string or null <date-time>

Date the external reference was modified

lastSyncedUtc
string or null <date-time>

Date the external system last successfully synced this reference. Set by integrations on successful sync only; null means never synced or that the sync timestamp isn't maintained by the integration.

Responses

Request samples

Content type
{
  • "externalReferences": {
    }
}

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "discountedPrice": 0.1,
  • "overrideTaxRate": true,
  • "isTaxable": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "itemId": "stringstringstringstring",
  • "description": "string",
  • "externalReferences": {
    },
  • "accountingCodeId": "stringstringstringstring",
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "subTotal": 0.1,
  • "preDiscountSubTotal": 0.1,
  • "isPercentageDiscount": true,
  • "discountAmount": 0.1,
  • "customerPartNumber": "string",
  • "customerPartDescription": "string",
  • "shipmentIds": [
    ],
  • "number": 0,
  • "accountingDetails": {
    }
}

Get a list of part lines items for an invoice

path Parameters
invoiceId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Invoice Refund Line Item

Get a specific refund line item for an invoice

path Parameters
invoiceId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "quantity": 0.1,
  • "price": 0.1,
  • "itemId": "stringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "externalReferences": {
    },
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "accountingCodeId": "stringstringstringstring",
  • "number": 0,
  • "accountingDetails": {
    }
}

Partially update a specific refund line item for a purchase order

path Parameters
invoiceId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "quantity": 0.1,
  • "price": 0.1,
  • "itemId": "stringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "externalReferences": {
    },
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "accountingCodeId": "stringstringstringstring",
  • "number": 0,
  • "accountingDetails": {
    }
}

Update a specific refund line item for an invoice

path Parameters
invoiceId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema:
required
object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

additional property
object (CommonExternalReferenceDto)

The external reference for entities that implement FulcrumProduct.Domain.Common.IHasExternalReferences

type
string or null [ 0 .. 50 ] characters

Specifies the type of this identifier.

externalId
required
string [ 0 .. 500 ] characters

The external identifier

displayId
string or null [ 0 .. 500 ] characters

The id/number that a human sees. For a quote, this might be 'Q1000'. If this is null, the display will fall back to the ExternalId

status
string or null

A status for the external reference

url
string or null

An external url for the reference

modifiedUtc
string or null <date-time>

Date the external reference was modified

lastSyncedUtc
string or null <date-time>

Date the external system last successfully synced this reference. Set by integrations on successful sync only; null means never synced or that the sync timestamp isn't maintained by the integration.

Responses

Request samples

Content type
{
  • "externalReferences": {
    }
}

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "quantity": 0.1,
  • "price": 0.1,
  • "itemId": "stringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "externalReferences": {
    },
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "accountingCodeId": "stringstringstringstring",
  • "number": 0,
  • "accountingDetails": {
    }
}

Get a list of refund lines items for an invoice

path Parameters
invoiceId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Invoice Shipping Charge Line Item

Get the shipping charge line item for an invoice

path Parameters
invoiceId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "amount": 0.1,
  • "isTaxable": true,
  • "overrideTaxRate": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "externalReferences": {
    },
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "number": 0,
  • "accountingDetails": {
    }
}

Invoice Tax Line Item

Get a specific tax line item for an invoice

path Parameters
invoiceId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "description": "string",
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "avalaraOptions": {
    },
  • "externalReferences": {
    },
  • "price": 0.1,
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "taxCodeEditable": true,
  • "number": 0,
  • "accountingDetails": {
    }
}

Get a list of tax lines items for an invoice

path Parameters
invoiceId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Item

Add a revision to an item

path Parameters
itemId
required
string = 24 characters
Request Body schema:
required
revision
required
string [ 1 .. 200 ] characters

The revision to be created.

archiveSourceItem
boolean or null

Indicate whether we should archive the source item. This will default to false.

Responses

Request samples

Content type
{
  • "revision": "string",
  • "archiveSourceItem": true
}

Response samples

Content type
{
  • "id": "string"
}

Create a new item

Request Body schema:
required
number
required
string [ 1 .. 200 ] characters

The name to give the item. Must be unique to all active items.

description
string [ 0 .. 2000 ] characters

The verbose description to give the item.

revision
string or null [ 1 .. 200 ] characters

Revision name

itemOrigin
required
string (DomainItemsAndInventoryItemOrigin)
Enum: "make" "buy" "makeOrBuy" "customerSupplied" "kit" "none"
unitTypeName
required
string non-empty

The unit of measure type, ex: Pieces, Volume, Weight, Area

unitOfMeasureName
required
string non-empty

The unit of measure name. Options available depend on the selected UnitTypeName. For Pieces, you might have a UOM of Piece, Set or Case. For Volume options include Liter, Milliliter, etc.

isSellable
boolean or null

Define if this item is able to be sold/sellable.

isSingleUseItem
boolean or null

Indicate if this item is intended for single use.

isLotTracked
boolean or null

Indicate if this item is going to be lot-tracked.

isNonInventory
boolean or null

Indicate if this item is a non-inventory item — one that supports the business but is never held in inventory. Only a buy item that is not sellable can be non-inventory; anything else is rejected with a 400. Defaults to false.

accountingCodeId
string or null = 24 characters

Accounting code key identifier. Please reference /api/accounting-codes endpoint.

accountingCode2Id
string or null = 24 characters

Accounting code key identifier. Please reference /api/accounting-codes endpoint.

materialCodeId
string or null = 24 characters

Item material code key identifier. Please reference /api/material-codes endpoint.

categoryId
string or null = 24 characters

Item category code key identifier. Please reference /api/item-categories endpoint.

gradeId
string or null = 24 characters

Item grade code key identifier. Please reference /api/grade-codes endpoint.

shapeId
string or null = 24 characters

Item shape code key identifier. Please reference /api/shape-codes endpoint.

gaugeId
string or null = 24 characters

Item gauge code key identifier. Please reference /api/gauge-codes endpoint.

width
number or null <double> >= 0

Item width

height
number or null <double> >= 0

Item height

length
number or null <double> >= 0

Item length

weight
number or null <double> >= 0

Item weight

minimumStockOnHand
number or null <double> >= 0

Item minimum stock on hand.

minimumProductionQuantity
number or null <double> >= 0

Item minimum production quantity for a manufacturing run.

internalNotes
string or null [ 1 .. 2000 ] characters

Internal item notes.

Array of objects or null (CommonUnitOfMeasureConversionDto)

Unit of measure conversions for sellable items.

isTaxable
boolean or null

Whether or not this item is taxable (default)

buildToOrder
boolean or null

Whether or not this item is build to order (jobs are made from sales orders, not overall demand)

buildToStock
boolean or null

Whether or not this item is build to stock (jobs are created from overall demand, not sales orders)

object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

Responses

Request samples

Content type
{
  • "number": "string",
  • "description": "string",
  • "revision": "string",
  • "itemOrigin": "make",
  • "unitTypeName": "string",
  • "unitOfMeasureName": "string",
  • "isSellable": true,
  • "isSingleUseItem": true,
  • "isLotTracked": true,
  • "isNonInventory": true,
  • "accountingCodeId": "stringstringstringstring",
  • "accountingCode2Id": "stringstringstringstring",
  • "materialCodeId": "stringstringstringstring",
  • "categoryId": "stringstringstringstring",
  • "gradeId": "stringstringstringstring",
  • "shapeId": "stringstringstringstring",
  • "gaugeId": "stringstringstringstring",
  • "width": 0.1,
  • "height": 0.1,
  • "length": 0.1,
  • "weight": 0.1,
  • "minimumStockOnHand": 0.1,
  • "minimumProductionQuantity": 0.1,
  • "internalNotes": "string",
  • "salesUnitOfMeasureConversions": [
    ],
  • "isTaxable": true,
  • "buildToOrder": true,
  • "buildToStock": true,
  • "externalReferences": {
    }
}

Response samples

Content type
{
  • "id": "string"
}

Create a new item cut from an activated material shape. The shape determines the item's material thickness, material form and length unit, so those are not sent on the request — select the shape that carries the combination you want. The item is always created as a Buy item measured in Pieces, its number is generated from the shape and the dimensions supplied (e.g. `Steel A36 Sheet 1/4": 48"x120"`), and its weight is calculated from the shape's density. The shape must already be activated for the shop. An id that exists only in the materials database is rejected with a 404 — activate it first with the Material Activate endpoint. This endpoint never activates a shape, because activating one also un-archives every existing non-remnant item that uses it. A material item's number is derived rather than caller-supplied, so the same shape and dimensions always resolve to the same item. If that item already exists it is returned as-is instead of a duplicate being created, and if it was archived it is un-archived — meaning a successful response may carry the id of an item that predates the request. Check whether an item with the expected number already exists if the distinction matters to your integration. The number does not encode remnant state, so `isRemnant` is honoured only when a new item is created and is ignored on that collision.

Request Body schema:
required
materialShapeId
required
string non-empty

The id of the material shape to cut the item from. Must be a shape that is already activated for this shop, as returned by the Material List endpoint with active true; an id that is only present in the materials database is rejected with a 404. Activate it first with the Material Activate endpoint.

length
required
number <double>

The length of the piece, expressed in the material shape's length unit (inch, foot, millimeter, ...). Required for every shape, and must be greater than zero.

width
number or null <double>

The width of the piece, expressed in the material shape's length unit. Required when the material shape is planar (sheet, plate, tread plate), because those shapes are sized by length and width, and the width determines both the generated item number and the item's calculated weight; omitting it is rejected with a 400 rather than defaulted. Must be omitted when the material shape is linear (bar, tube, pipe, beam, angle, channel), because those shapes are sized by length alone and their width is fixed by the shape; supplying it is rejected with a 400 rather than ignored, so a caller is never left believing a width was stored.

isRemnant
boolean or null

Set true to create the item as a remnant — an offcut left over from a larger piece. Defaults to false. A remnant is excluded from the shop's default buy-item accounting code, so it is created with no accounting code unless one is assigned afterwards.

Applies only when a new item is created. The generated number encodes the shape and the dimensions but not remnant state, so a request whose number already resolves to an existing item returns that item unchanged, keeping whatever remnant state it already had.

Responses

Request samples

Content type
{
  • "materialShapeId": "string",
  • "length": 0.1,
  • "width": 0.1,
  • "isRemnant": true
}

Response samples

Content type
{
  • "id": "string"
}

Get a specific item

path Parameters
itemId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": "string",
  • "description": "string",
  • "itemOrigin": "make",
  • "unitTypeName": "string",
  • "unitOfMeasureName": "string",
  • "revision": {
    },
  • "barCodeNumber": "string",
  • "isSellable": true,
  • "isArchived": true,
  • "isNonInventory": true,
  • "accountingCodeId": "stringstringstringstring",
  • "accountingCode2Id": "stringstringstringstring",
  • "materialCodeId": "stringstringstringstring",
  • "gradeId": "stringstringstringstring",
  • "shapeId": "stringstringstringstring",
  • "gaugeId": "stringstringstringstring",
  • "categoryId": "string",
  • "width": 0.1,
  • "height": 0.1,
  • "length": 0.1,
  • "weight": 0.1,
  • "materialWeight": 0.1,
  • "minimumStockOnHand": 0.1,
  • "minimumProductionQuantity": 0.1,
  • "customFields": {
    },
  • "tags": [
    ],
  • "internalNotes": "string",
  • "salesUnitOfMeasureConversions": [
    ],
  • "externalReferences": {
    },
  • "isTaxable": true,
  • "buildToOrder": true,
  • "buildToStock": true,
  • "isSingleUseItem": true,
  • "isLotTracked": true,
  • "shipping": {
    },
  • "createdUtc": "2019-08-24T14:15:22Z",
  • "modifiedUtc": "2019-08-24T14:15:22Z",
  • "customerTiers": [
    ],
  • "materialDetails": {
    },
  • "accountingDetails": {
    },
  • "materialVendorDetails": [
    ],
  • "vendorDetails": [
    ],
  • "customerDetails": [
    ],
  • "qualityPlanStatus": "needsApproval",
  • "needsQualityPlan": true
}

Partially update an item

path Parameters
itemId
required
string = 24 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": "string",
  • "description": "string",
  • "itemOrigin": "make",
  • "unitTypeName": "string",
  • "unitOfMeasureName": "string",
  • "revision": {
    },
  • "barCodeNumber": "string",
  • "isSellable": true,
  • "isArchived": true,
  • "isNonInventory": true,
  • "accountingCodeId": "stringstringstringstring",
  • "accountingCode2Id": "stringstringstringstring",
  • "materialCodeId": "stringstringstringstring",
  • "gradeId": "stringstringstringstring",
  • "shapeId": "stringstringstringstring",
  • "gaugeId": "stringstringstringstring",
  • "categoryId": "string",
  • "width": 0.1,
  • "height": 0.1,
  • "length": 0.1,
  • "weight": 0.1,
  • "materialWeight": 0.1,
  • "minimumStockOnHand": 0.1,
  • "minimumProductionQuantity": 0.1,
  • "customFields": {
    },
  • "tags": [
    ],
  • "internalNotes": "string",
  • "salesUnitOfMeasureConversions": [
    ],
  • "externalReferences": {
    },
  • "isTaxable": true,
  • "buildToOrder": true,
  • "buildToStock": true,
  • "isSingleUseItem": true,
  • "isLotTracked": true,
  • "shipping": {
    },
  • "createdUtc": "2019-08-24T14:15:22Z",
  • "modifiedUtc": "2019-08-24T14:15:22Z",
  • "customerTiers": [
    ],
  • "materialDetails": {
    },
  • "accountingDetails": {
    },
  • "materialVendorDetails": [
    ],
  • "vendorDetails": [
    ],
  • "customerDetails": [
    ],
  • "qualityPlanStatus": "needsApproval",
  • "needsQualityPlan": true
}

Update a specific item

path Parameters
itemId
required
string = 24 characters
Request Body schema:
required
number
string or null [ 1 .. 200 ] characters

The item number. If omitted, the current number is kept. Renaming enforces number uniqueness (400 on collision) and updates every reference to the item — BOM inputs, usage, purchase orders, and the system lot. Uniqueness is scoped to number + revision: when renaming an item with multiple revisions, rename every revision of the family or the revisions will split under different numbers.

description
string or null [ 0 .. 2000 ] characters

Item description.

accountingCodeId
string or null = 24 characters

Accounting code key identifier. Please reference /api/accounting-codes endpoint.

accountingCode2Id
string or null = 24 characters

Accounting code key identifier. Please reference /api/accounting-codes endpoint.

materialCodeId
string or null = 24 characters

Item material code key identifier. Please reference /api/material-codes endpoint.

gradeId
string or null = 24 characters

Item grade code key identifier. Please reference /api/grade-codes endpoint.

shapeId
string or null = 24 characters

Item shape code key identifier. Please reference /api/shape-codes endpoint.

gaugeId
string or null = 24 characters

Item gauge code key identifier. Please reference /api/gauge-codes endpoint.

categoryId
string or null = 24 characters

Item category code key identifier. Please reference /api/item-categories endpoint.

width
number or null <double> >= 0

Item width

height
number or null <double> >= 0

Item height

length
number or null <double> >= 0

Item length

weight
number or null <double> >= 0

Item weight

minimumStockOnHand
number or null <double> >= 0

Item minimum stock on hand.

minimumProductionQuantity
number or null <double> >= 0

Item minimum production quantity for a manufacturing run.

internalNotes
string or null [ 1 .. 2000 ] characters

Internal item notes.

unitOfMeasureName
string or null

The item's stocking unit of measure — the unit every inventory quantity, cost, and transaction on the item is expressed in. If omitted — or sent as null, or as a string that is empty or only whitespace — the current unit of measure is kept; there is no way to clear it. The unit must belong to the item's existing unit type (a Pieces item accepts Piece, Set or Case); the unit type itself cannot be changed after the item is created. Changing the unit is rejected while anything already carries a unit that the change would invalidate — the item being in use by a quote, sales order, purchase order, job, invoice or another item's routing, holding inventory on hand, or having a price break that carries a price (item, vendor, customer, or customer-tier) — because none of those is converted when the unit changes. The 400 names which one blocked the change. Each condition is read as the item stands before the update, so clearing a blocker and changing the unit in one request is still rejected — clear it first, then change the unit in a second request. Sales unit of measure conversions are the exception: they are replaced wholesale by every update, so changing the unit while sending none is accepted, and a request that changes the unit while conversions are present — sent on the update, or carried forward from the item by a patch — is rejected. An item with no unit type recorded cannot have its unit changed at all. Surrounding whitespace is trimmed; the remainder is matched case-sensitively, as on item create.

Array of objects or null (CommonUnitOfMeasureConversionDto)

Unit of measure conversions for sellable items.

isTaxable
boolean or null

Whether or not this item is taxable (default)

isLotTracked
boolean or null

Whether this item is lot-tracked. If omitted, the current setting is kept.

isNonInventory
boolean or null

Whether this item is a non-inventory item — one that supports the business but is never held in inventory. Turning it on is rejected with a 400 unless the item is a buy item that is not sellable; an item that is already non-inventory can restate that value, so a read-modify-write update of a legacy item does not start failing. Setting this also keeps the item's inventoried state in step: a non-inventory item is never inventoried. If omitted, the current setting is kept.

object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

Responses

Request samples

Content type
{
  • "number": "string",
  • "description": "string",
  • "accountingCodeId": "stringstringstringstring",
  • "accountingCode2Id": "stringstringstringstring",
  • "materialCodeId": "stringstringstringstring",
  • "gradeId": "stringstringstringstring",
  • "shapeId": "stringstringstringstring",
  • "gaugeId": "stringstringstringstring",
  • "categoryId": "stringstringstringstring",
  • "width": 0.1,
  • "height": 0.1,
  • "length": 0.1,
  • "weight": 0.1,
  • "minimumStockOnHand": 0.1,
  • "minimumProductionQuantity": 0.1,
  • "internalNotes": "string",
  • "unitOfMeasureName": "string",
  • "salesUnitOfMeasureConversions": [
    ],
  • "isTaxable": true,
  • "isLotTracked": true,
  • "isNonInventory": true,
  • "externalReferences": {
    }
}

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": "string",
  • "description": "string",
  • "itemOrigin": "make",
  • "unitTypeName": "string",
  • "unitOfMeasureName": "string",
  • "revision": {
    },
  • "barCodeNumber": "string",
  • "isSellable": true,
  • "isArchived": true,
  • "isNonInventory": true,
  • "accountingCodeId": "stringstringstringstring",
  • "accountingCode2Id": "stringstringstringstring",
  • "materialCodeId": "stringstringstringstring",
  • "gradeId": "stringstringstringstring",
  • "shapeId": "stringstringstringstring",
  • "gaugeId": "stringstringstringstring",
  • "categoryId": "string",
  • "width": 0.1,
  • "height": 0.1,
  • "length": 0.1,
  • "weight": 0.1,
  • "materialWeight": 0.1,
  • "minimumStockOnHand": 0.1,
  • "minimumProductionQuantity": 0.1,
  • "customFields": {
    },
  • "tags": [
    ],
  • "internalNotes": "string",
  • "salesUnitOfMeasureConversions": [
    ],
  • "externalReferences": {
    },
  • "isTaxable": true,
  • "buildToOrder": true,
  • "buildToStock": true,
  • "isSingleUseItem": true,
  • "isLotTracked": true,
  • "shipping": {
    },
  • "createdUtc": "2019-08-24T14:15:22Z",
  • "modifiedUtc": "2019-08-24T14:15:22Z",
  • "customerTiers": [
    ],
  • "materialDetails": {
    },
  • "accountingDetails": {
    },
  • "materialVendorDetails": [
    ],
  • "vendorDetails": [
    ],
  • "customerDetails": [
    ],
  • "qualityPlanStatus": "needsApproval",
  • "needsQualityPlan": true
}

Get the can-make quantities for an item. Returns how much of this item can be produced from current subcomponent inventory (on-hand and available).

path Parameters
itemId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "canMakeFromOnHand": 0.1,
  • "canMakeFromAvailable": 0.1
}

Get an item's purchase history — every time it was bought, from whom, at what price.

path Parameters
itemId
required
string = 24 characters

Id of the item to report on.

query Parameters
months
integer <int32>
Default: 12

How many months back to include. Defaults to 12; values outside 1–60 are clamped.

Responses

Response samples

Content type
{
  • "item": {
    },
  • "windowMonths": 0,
  • "totalPurchaseCount": 0,
  • "purchases": [
    ],
  • "summary": {
    }
}

TO BE REMOVED 11/02/2023 - Find items based on search parameters. Deprecated

Use V2 which includes a list of number filters

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
number
string or null [ 1 .. 200 ] characters

Filter to items who's number contains the given string

revision
string or null [ 1 .. 200 ] characters

Filter to items who's revision matches the given string

object (CommonCustomFieldSearchDto)

Custom field associated to an entity.

latestRevision
boolean

Indicate whether we want the latest revision(s) of the items.

itemIds
Array of strings or null

Filter to items whose ids are in the list

descriptionFilter
string or null

Filter to items whose description contains this text. Matching is a case-insensitive substring test; it is not a phrase or keyword search and supports no operators.

isArchived
boolean or null

Include or exclude archived items

Responses

Request samples

Content type
{
  • "number": "string",
  • "revision": "string",
  • "customField": {
    },
  • "latestRevision": true,
  • "itemIds": [
    ],
  • "descriptionFilter": "string",
  • "isArchived": true
}

Response samples

Content type
[
  • {
    }
]

Find items based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
Array of objects or null (ItemNumberFilter) <= 50 items

Filter items based on numbers

object (CommonCustomFieldSearchDto)

Custom field associated to an entity.

Array of objects or null (CommonCustomFieldSearchDto) <= 50 items

Filter items based on custom fields Note: these will be OR'd with each other and are not additive in filtering.

latestRevision
boolean

Indicate whether we want the latest revision(s) of the items.

itemIds
Array of strings or null <= 50 items

Filter to items whose ids are in the list

descriptionFilter
string or null

Filter to items whose description contains this text. Matching is a case-insensitive substring test; it is not a phrase or keyword search and supports no operators.

isArchived
boolean or null

Include or exclude archived items

includeUsageData
boolean

If set to true, data on where the item is being used will be included in the results

includeVendorData
boolean

If set to true, vendor details about the item will be included in the results

includeCustomerData
boolean

If set to true, customer details about the item will be included in the results

includeCustomerTierData
boolean

If set to true, customer tier details about the item will be included in the results

vendorId
string or null

If provided, filter to items that are produced by this vendor.

Responses

Request samples

Content type
{
  • "numbers": [
    ],
  • "customField": {
    },
  • "customFields": [
    ],
  • "latestRevision": true,
  • "itemIds": [
    ],
  • "descriptionFilter": "string",
  • "isArchived": true,
  • "includeUsageData": true,
  • "includeVendorData": true,
  • "includeCustomerData": true,
  • "includeCustomerTierData": true,
  • "vendorId": "string"
}

Response samples

Content type
[
  • {
    }
]

TO BE REMOVED 10/13/2023 - Pick inventory against a specific item. Deprecated

Use /inventory/pick API instead

path Parameters
itemId
required
string = 24 characters
Request Body schema:
required
secondaryType
required
string (InventoryEventSecondaryType)
Enum: "pick" "receive" "override" "revert" "deposit" "create" "consume" "ship" "sold" "transferOut" "transferIn" "found" "expired" "damaged" "lost" "returnVendor" "returnStock" "receivedNoPo" "returnIncrease" "returnDecrease" "otherIncrease" "otherDecrease" "scrap" "waste" "transferredFromSalesOrder" "overrideItemValue" "transferFromLot" "transferToLot" "stockAdjustmentIncrease" "stockAdjustmentDecrease" "stockTake"

Secondary, verbose description for an event.

lotId
string or null = 24 characters

Lot identifier for this block of inventory.

locationId
string or null = 24 characters

Location id that inventory is placed into.

quantity
number or null <double> >= 0

Location id that inventory is placed into.

actionDate
string or null <date-time>

The moment in time where this inventory event action occurs. If not provided, this will default to the current date/time.

source
string (InventoryEnumEventSourceType)
Enum: "purchaseOrder" "job" "shipment" "shipmentLineItem" "shipping" "receiving" "item" "workOrder" "salesOrder" "jobOperation" "workOrderOperation" "fulfillment" "itemToMakeMaterialRemnant" "poRcvValueAdj"

Indicator for the initial source of the event.

url
string or null <uri>

The source url of the event.

relatedSource
string (InventoryEnumEventSourceType)
Enum: "purchaseOrder" "job" "shipment" "shipmentLineItem" "shipping" "receiving" "item" "workOrder" "salesOrder" "jobOperation" "workOrderOperation" "fulfillment" "itemToMakeMaterialRemnant" "poRcvValueAdj"

Indicator for the initial source of the event.

relatedEntityId
string or null

Entity id for tying this event back to a related entity.

note
string or null

Notes associated to this transaction.

Responses

Request samples

Content type
{
  • "secondaryType": "pick",
  • "lotId": "stringstringstringstring",
  • "locationId": "stringstringstringstring",
  • "quantity": 0.1,
  • "actionDate": "2019-08-24T14:15:22Z",
  • "source": "purchaseOrder",
  • "relatedSource": "purchaseOrder",
  • "relatedEntityId": "string",
  • "note": "string"
}

TO BE REMOVED 10/13/2023 - Receive inventory against a specific item. Deprecated

Use /inventory/receive API instead

path Parameters
itemId
required
string = 24 characters
Request Body schema:
required
secondaryType
required
string (InventoryEventSecondaryType)
Enum: "pick" "receive" "override" "revert" "deposit" "create" "consume" "ship" "sold" "transferOut" "transferIn" "found" "expired" "damaged" "lost" "returnVendor" "returnStock" "receivedNoPo" "returnIncrease" "returnDecrease" "otherIncrease" "otherDecrease" "scrap" "waste" "transferredFromSalesOrder" "overrideItemValue" "transferFromLot" "transferToLot" "stockAdjustmentIncrease" "stockAdjustmentDecrease" "stockTake"

Secondary, verbose description for an event.

lotId
string or null = 24 characters

Lot identifier for this block of inventory.

locationId
string or null = 24 characters

Location id that inventory is placed into.

quantity
number or null <double> >= 0

Location id that inventory is placed into.

actionDate
string or null <date-time>

The moment in time where this inventory event action occurs. If not provided, this will default to the current date/time.

source
string (InventoryEnumEventSourceType)
Enum: "purchaseOrder" "job" "shipment" "shipmentLineItem" "shipping" "receiving" "item" "workOrder" "salesOrder" "jobOperation" "workOrderOperation" "fulfillment" "itemToMakeMaterialRemnant" "poRcvValueAdj"

Indicator for the initial source of the event.

url
string or null <uri>

The source url of the event.

relatedSource
string (InventoryEnumEventSourceType)
Enum: "purchaseOrder" "job" "shipment" "shipmentLineItem" "shipping" "receiving" "item" "workOrder" "salesOrder" "jobOperation" "workOrderOperation" "fulfillment" "itemToMakeMaterialRemnant" "poRcvValueAdj"

Indicator for the initial source of the event.

relatedEntityId
string or null

Entity id for tying this event back to a related entity.

note
string or null

Notes associated to this transaction.

Responses

Request samples

Content type
{
  • "secondaryType": "pick",
  • "lotId": "stringstringstringstring",
  • "locationId": "stringstringstringstring",
  • "quantity": 0.1,
  • "actionDate": "2019-08-24T14:15:22Z",
  • "source": "purchaseOrder",
  • "relatedSource": "purchaseOrder",
  • "relatedEntityId": "string",
  • "note": "string"
}

Item Custom Fields

Update (selectively) custom fields on an item.

path Parameters
itemId
required
string = 24 characters

The Item identifier

Request Body schema:
required

The custom fields to update

object

The custom fields

property name*
additional property
any

Responses

Request samples

Content type
{
  • "customFields": {
    }
}

Response samples

Content type
{
  • "customFields": {
    }
}

Update (selectively) custom fields on an item.

path Parameters
itemId
required
string = 24 characters

The Item identifier

Request Body schema:
required

The custom fields to update

object

The custom fields

property name*
additional property
any

Responses

Request samples

Content type
{
  • "customFields": {
    }
}

Response samples

Content type
{
  • "customFields": {
    }
}

Item Customer

Create a new item customer

path Parameters
itemId
required
string = 24 characters
Request Body schema:
required
customerId
required
string = 24 characters

Customer id associated to this entity. Please reference /api/customers endpoint.

customerItemNumber
string or null [ 1 .. 200 ] characters

The item number for this customer.

customerItemName
string or null [ 1 .. 200 ] characters

The item name for this customer.

Responses

Request samples

Content type
{
  • "customerId": "stringstringstringstring",
  • "customerItemNumber": "string",
  • "customerItemName": "string"
}

Response samples

Content type
{
  • "id": "string"
}

Delete a specific item customer

path Parameters
itemId
required
string = 24 characters

The id of the item to remove a customer from

itemCustomerId
required
string = 36 characters

The id of the item customer to delete

Responses

Update a specific item customer

path Parameters
itemId
required
string = 24 characters

The id of the item to modify customers for

itemCustomerId
required
string = 36 characters

The id of the item customer.

Request Body schema:
required

The new data to apply to the given customer detail

customerItemNumber
string or null [ 1 .. 200 ] characters

The item number for this customer.

customerItemName
string or null [ 1 .. 200 ] characters

The item name for this customer.

Responses

Request samples

Content type
{
  • "customerItemNumber": "string",
  • "customerItemName": "string"
}

Get a list of customers for an item

path Parameters
itemId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Item Material Vendor

Get a list of vendors for a material-based item

path Parameters
itemId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Create a new item vendor

path Parameters
itemId
required
string = 24 characters
Request Body schema:
required
vendorId
required
string = 24 characters

Vendor id associated to this entity. Please reference /api/vendors endpoint.

vendorItemNumber
string or null [ 1 .. 200 ] characters

The item number for this vendor.

vendorItemName
string or null [ 1 .. 200 ] characters

The item name for this vendor.

notes
string or null [ 1 .. 2000 ] characters

Notes to the vendor.

Responses

Request samples

Content type
{
  • "vendorId": "stringstringstringstring",
  • "vendorItemNumber": "string",
  • "vendorItemName": "string",
  • "notes": "string"
}

Response samples

Content type
{
  • "id": "string"
}

Update a specific item material vendor

path Parameters
itemId
required
string = 24 characters

The id of the item to modify vendors for

materialVendorId
required
string [ 24 .. 36 ] characters

The id of the material-item vendor.

Request Body schema:
required

The new data to apply to the given vendor detail

vendorItemNumber
string or null [ 1 .. 200 ] characters

The item number for this vendor.

vendorItemName
string or null [ 1 .. 200 ] characters

The item name for this vendor.

notes
string or null [ 1 .. 2000 ] characters

Notes to the vendor.

Responses

Request samples

Content type
{
  • "vendorItemNumber": "string",
  • "vendorItemName": "string",
  • "notes": "string"
}

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "vendorId": "stringstringstringstring",
  • "vendorItemNumber": "string",
  • "vendorItemName": "string",
  • "notes": "string"
}

Item PriceBreaks

List purchase price breaks for an item.

path Parameters
itemId
required
string = 24 characters

The id of the item.

Request Body schema:

Optional filters to narrow the result set.

vendorId
string or null = 24 characters

Restrict to price breaks for the given vendor.

currencyCode
string or null

Restrict to price breaks in the given currency.

Responses

Request samples

Content type
{
  • "vendorId": "stringstringstringstring",
  • "currencyCode": "string"
}

Response samples

Content type
[
  • {
    }
]

List sales price breaks for an item, including the item's base price, customer-specific price breaks, and customer-tier price breaks.

path Parameters
itemId
required
string = 24 characters

The id of the item.

Request Body schema:

Optional filters to narrow the result set.

customerId
string or null = 24 characters

Restrict to price breaks for the given customer.

customerTierId
string or null = 24 characters

Restrict to price breaks for the given customer tier.

currencyCode
string or null

Restrict to price breaks in the given currency.

baseOnly
boolean or null

When true, include only the item's base price (no customer or customer tier).

Responses

Request samples

Content type
{
  • "customerId": "stringstringstringstring",
  • "customerTierId": "stringstringstringstring",
  • "currencyCode": "string",
  • "baseOnly": true
}

Response samples

Content type
[
  • {
    }
]

Create or update a purchase price break for an item. The price break is identified by the combination of (item, vendor, currency, unit of measure): if a match exists it is replaced, otherwise a new price break is created.

path Parameters
itemId
required
string = 24 characters

The id of the item.

Request Body schema:
required

The price break to upsert.

vendorId
required
string = 24 characters

Identifier of the vendor this price break applies to.

currencyCode
string or null

ISO 4217 currency code. Null is treated as the vendor's currency (or, if the vendor has no currency, the company's primary currency) for identity matching. When matching an existing break, that break's stored CurrencyCode is preserved. On insert, the value stored is the supplied value or the vendor's currency if none was supplied.

unitOfMeasureName
string or null

Purchasing unit of measure. Null indicates the item's default unit of measure. Same null/default-equivalence rules as FulcrumProduct.PublicApi.Dto.PriceBreak.PurchasePriceBreakUpsertDto.CurrencyCode.

unitPrice
number or null <double> >= 0

The unit price at quantity 1. Required.

vendorItemNumber
string or null [ 1 .. 200 ] characters

The vendor's part number for this item, if different from the internal number.

vendorItemName
string or null [ 1 .. 200 ] characters

The vendor's part description for this item.

required
Array of objects (PriceBreakItemPriceBreakPointDto)

Quantity break points beyond quantity 1. The complete set of break points is replaced on each upsert; omit a quantity to remove it.

Responses

Request samples

Content type
{
  • "vendorId": "stringstringstringstring",
  • "currencyCode": "string",
  • "unitOfMeasureName": "string",
  • "unitPrice": 0.1,
  • "vendorItemNumber": "string",
  • "vendorItemName": "string",
  • "breakPoints": [
    ]
}

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "itemId": "stringstringstringstring",
  • "vendorId": "stringstringstringstring",
  • "currencyCode": "string",
  • "unitOfMeasureName": "string",
  • "unitPrice": 0.1,
  • "vendorItemNumber": "string",
  • "vendorItemName": "string",
  • "breakPoints": [
    ],
  • "modifiedUtc": "2019-08-24T14:15:22Z"
}

Create or update a sales price break for an item. The price break is identified by the combination of (item, customer, customer tier, currency, sales unit of measure): if a match exists it is replaced, otherwise a new price break is created. Customer and customer tier are mutually exclusive. Leaving both null upserts the item's base price.

path Parameters
itemId
required
string = 24 characters

The id of the item.

Request Body schema:
required

The price break to upsert.

customerId
string or null = 24 characters

Identifier of the customer this price break applies to. Mutually exclusive with FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CustomerTierId. Leave both null to upsert the item's base price.

customerTierId
string or null = 24 characters

Identifier of the customer tier this price break applies to. Mutually exclusive with FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CustomerId. Leave both null to upsert the item's base price.

currencyCode
string or null

ISO 4217 currency code. Null indicates the company's primary currency. Null and the explicit primary currency code are treated as equivalent for identity matching; when matching an existing break, that break's stored CurrencyCode is preserved (legacy records may hold null even after primary is set, and downstream code distinguishes them). On insert, the value is stored exactly as supplied.

unitOfMeasureName
string or null

Sales unit of measure. Null indicates the item's default sales unit of measure. Same null/default-equivalence rules as FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CurrencyCode.

pricingType
required
string (DtoPriceBreakSalesPriceBreakPricingTypeEnum)
Enum: "price" "margin"

How a sales price break is calculated.

unitPrice
number or null <double> >= 0

The unit price at quantity 1. Required when FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.PricingType is Price.

margin
number or null <double>

The margin percentage at quantity 1. Required when FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.PricingType is Margin.

showOnPdf
boolean

Whether the unit/base price should be displayed on customer-facing PDFs.

required
Array of objects (PriceBreakItemPriceBreakPointDto)

Quantity break points beyond quantity 1. The complete set of break points is replaced on each upsert; omit a quantity to remove it.

Responses

Request samples

Content type
{
  • "customerId": "stringstringstringstring",
  • "customerTierId": "stringstringstringstring",
  • "currencyCode": "string",
  • "unitOfMeasureName": "string",
  • "pricingType": "price",
  • "unitPrice": 0.1,
  • "margin": 0.1,
  • "showOnPdf": true,
  • "breakPoints": [
    ]
}

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "itemId": "stringstringstringstring",
  • "customerId": "stringstringstringstring",
  • "customerTierId": "stringstringstringstring",
  • "currencyCode": "string",
  • "unitOfMeasureName": "string",
  • "pricingType": "price",
  • "unitPrice": 0.1,
  • "margin": 0.1,
  • "showOnPdf": true,
  • "breakPoints": [
    ],
  • "modifiedUtc": "2019-08-24T14:15:22Z"
}

Item Routing

Get a specific item routing input item

path Parameters
itemId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "allowContinuousFlow": true
}

Update a specific item's routing

path Parameters
itemId
required
string = 24 characters
Request Body schema:
required
allowContinuousFlow
boolean or null

Allow an operation to start before previous operations in the routing end

Responses

Request samples

Content type
{
  • "allowContinuousFlow": true
}

Adds an input item to an item's routing

path Parameters
itemId
required
string = 24 characters
Request Body schema:
required
itemId
required
string = 24 characters

The item id to be added. Please reference /api/items endpoint.

valueTypeUnits
required
number <double>

Measurement unit depending on FulcrumProduct.PublicApi.Dto.Item.Routing.InputItemCreateDto.ValueType

valueType
required
string (CommonEnumInputItemValueTypeEnum)
Enum: "creates" "requires"

Specifies how a routing input item quantity is measured.

Responses

Request samples

Content type
{
  • "itemId": "stringstringstringstring",
  • "valueTypeUnits": 0.1,
  • "valueType": "creates"
}

Response samples

Content type
{
  • "id": "string"
}

Add multiple input items to an item's routing

path Parameters
itemId
required
string = 24 characters
Request Body schema:
required
required
Array of objects (ItemRoutingInputItemCreateDto)

The input items to add to an item.

Array
itemId
required
string = 24 characters

The item id to be added. Please reference /api/items endpoint.

valueTypeUnits
required
number <double>

Measurement unit depending on FulcrumProduct.PublicApi.Dto.Item.Routing.InputItemCreateDto.ValueType

valueType
required
string (CommonEnumInputItemValueTypeEnum)
Enum: "creates" "requires"

Specifies how a routing input item quantity is measured.

Responses

Request samples

Content type
{
  • "lineItems": [
    ]
}

Response samples

Content type
{
  • "ids": [
    ]
}

Deletes an input item from an item's routing

path Parameters
itemId
required
string = 24 characters
inputItemId
required
string = 36 characters

Responses

Get a specific item routing input item

path Parameters
itemId
required
string = 24 characters
inputItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "itemId": "stringstringstringstring",
  • "number": "string",
  • "revision": "string",
  • "description": "string",
  • "valueTypeUnits": 0.1,
  • "valueType": "creates",
  • "routingStepId": "stringstringstringstringstringstring",
  • "isMaterialLine": true
}

Update an input item for a specific item's routing

path Parameters
itemId
required
string = 24 characters
inputItemId
required
string = 36 characters
Request Body schema:
required
valueTypeUnits
required
number <double>

Measurement unit depending on FulcrumProduct.PublicApi.Dto.Item.Routing.InputItemUpdateDto.ValueType

valueType
string (CommonEnumInputItemValueTypeEnum)
Enum: "creates" "requires"

Specifies how a routing input item quantity is measured.

Responses

Request samples

Content type
{
  • "valueTypeUnits": 0.1,
  • "valueType": "creates"
}

Lists the input items for an item's routing

path Parameters
itemId
required
string = 24 characters
query Parameters
skip
integer <int32> >= 0
Default: 0
take
integer <int32> [ 0 .. 5000 ]
Default: 50
Request Body schema:
number
string or null [ 1 .. 200 ] characters

Filter to items who's number contains the given string

Responses

Request samples

Content type
{
  • "number": "string"
}

Response samples

Content type
[
  • {
    }
]

Adds an input material to an item's routing

path Parameters
itemId
required
string
Request Body schema:
required
materialId
required
string non-empty

The material id to be added. Please reference /api/materials endpoint.

costing
required
string (CommonEnumMaterialRequirementCostingEnum)
Enum: "fullCost" "usageBased"

Specifies the costing of the material.

Array of objects or null (ItemRoutingInputMaterialNestingCreateDto)

Nestings associated to this material indicating bounding box dimensions and production quantities.

routingStepId
string or null = 36 characters

The routing step id. This value should be the Id from the response from items/{itemId}/routing/operations/list

Responses

Request samples

Content type
{
  • "materialId": "string",
  • "costing": "fullCost",
  • "nestings": [
    ],
  • "routingStepId": "stringstringstringstringstringstring"
}

Response samples

Content type
{
  • "id": "string"
}

Deletes an input material from an item's routing

path Parameters
itemId
required
string = 24 characters
materialId
required
string <uuid>

Responses

Lists the input materials for an item's routing

path Parameters
itemId
required
string = 24 characters
query Parameters
skip
integer <int32> >= 0
take
integer <int32> [ 0 .. 5000 ]

Responses

Response samples

Content type
[
  • {
    }
]

Adds an input material nesting to an item's routing material

path Parameters
itemId
required
string
materialId
required
string <uuid>
Request Body schema:
required
d2
required
number <double>

Length

d3
required
number <double>

For Sheets, the Width

produces
required
integer <int32>

The quantity produced, given the bounding box dimensions (D2 x D3).

useForEstimatedCosting
boolean

Indicates if this nesting record will be used for estimated costing. NOTE: Only one nesting record for a material can have this value set to true.

Responses

Request samples

Content type
{
  • "d2": 0.1,
  • "d3": 0.1,
  • "produces": 0,
  • "useForEstimatedCosting": true
}

Response samples

Content type
{
  • "id": "string"
}

Removes an input material nesting on an item's routing material

path Parameters
itemId
required
string
materialId
required
string <uuid>
nestingId
required
string <uuid>

Responses

Update an input material on an item's routing

path Parameters
itemId
required
string
inputMaterialId
required
string <uuid>
Request Body schema:
required
costing
required
string (CommonEnumMaterialRequirementCostingEnum)
Enum: "fullCost" "usageBased"

Specifies the costing of the material.

routingStepId
string or null = 36 characters

The routing step id. This value should be the Id from the response from items/{itemId}/routing/operations/list

Responses

Request samples

Content type
{
  • "costing": "fullCost",
  • "routingStepId": "stringstringstringstringstringstring"
}

Response samples

Content type
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "materialId": "string",
  • "materialName": "string",
  • "materialShape": {
    },
  • "costing": "fullCost",
  • "nestings": [
    ],
  • "routingStepId": "stringstringstringstringstringstring"
}

Bulk reorganize routing operations for a specific item.

path Parameters
itemId
required
string = 24 characters
Request Body schema:
required
Array
systemOperationId
required
string = 24 characters

System Operation Id

order
integer or null <int32> >= 0

The order of this operation. Operations with the same order are expected to run in parallel

object (ItemRoutingOutsideProcessingOperationDto)

Defines outside processing fields

object (ItemRoutingNormalOperationDto)

Defines non-outside-processing fields

leadDays
integer or null <int32> >= 0

Lead days. Will default to zero if not provided.

unattended
boolean or null

If true, the run portion of this step is unattended by an operator.

instructions
string or null [ 1 .. 2000 ] characters

Operation instructions. Will default to the instructions defined on the operation when not provided.

inputMaterialIds
Array of strings or null

The ids on the input material to associate to this operation. This value should be the Id from the response from items/{itemId}/routing/input-materials/list

Responses

Request samples

Content type
[
  • {
    }
]

Response samples

Content type
{
  • "ids": [
    ]
}

Create a routing operation for a specific item

path Parameters
itemId
required
string = 24 characters
Request Body schema:
required
systemOperationId
required
string = 24 characters

System Operation Id

order
integer or null <int32> >= 0

The order of this operation. Operations with the same order are expected to run in parallel

object (ItemRoutingOutsideProcessingOperationDto)

Defines outside processing fields

object (ItemRoutingNormalOperationDto)

Defines non-outside-processing fields

leadDays
integer or null <int32> >= 0

Lead days. Will default to zero if not provided.

unattended
boolean or null

If true, the run portion of this step is unattended by an operator.

instructions
string or null [ 1 .. 2000 ] characters

Operation instructions. Will default to the instructions defined on the operation when not provided.

inputMaterialIds
Array of strings or null

The ids on the input material to associate to this operation. This value should be the Id from the response from items/{itemId}/routing/input-materials/list

Responses

Request samples

Content type
{
  • "systemOperationId": "stringstringstringstring",
  • "order": 0,
  • "outsideProcessingOperation": {
    },
  • "operation": {
    },
  • "leadDays": 0,
  • "unattended": true,
  • "instructions": "string",
  • "inputMaterialIds": [
    ]
}

Response samples

Content type
{
  • "id": "string"
}

Delete a specific item routing operation

path Parameters
itemId
required
string = 24 characters
operationId
required
string = 36 characters

Responses

Get a specific item routing operation

path Parameters
itemId
required
string = 24 characters
operationId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "systemOperationId": "stringstringstringstring",
  • "order": 0,
  • "isOutsideProcessing": true,
  • "outsideProcessingOperation": {
    },
  • "operation": {
    },
  • "leadDays": 0,
  • "unattended": true,
  • "machineTrackingEnabled": true,
  • "instructions": "string"
}

Update a routing operation for a specific item

path Parameters
itemId
required
string = 24 characters
operationId
required
string = 36 characters
Request Body schema:
required
order
integer or null <int32> >= 0

The order of this operation. Operations with the same order are expected to run in parallel

object (ItemRoutingOutsideProcessingOperationDto)

Defines outside processing fields

object (ItemRoutingNormalOperationDto)

Defines non-outside-processing fields

leadDays
integer or null <int32> >= 0

Lead days. Will default to zero if not provided.

unattended
boolean or null

If true, the run portion of this step is unattended by an operator.

instructions
string or null [ 1 .. 2000 ] characters

Instructions for this operation.

Responses

Request samples

Content type
{
  • "order": 0,
  • "outsideProcessingOperation": {
    },
  • "operation": {
    },
  • "leadDays": 0,
  • "unattended": true,
  • "instructions": "string"
}

Adds an operation item to an item's routing

path Parameters
itemId
required
string = 24 characters
operationId
required
string = 36 characters
Request Body schema:
required
itemId
required
string = 24 characters

The item id to be added. Please reference /api/items endpoint.

valueTypeUnits
required
number <double>

Measurement unit depending on FulcrumProduct.PublicApi.Dto.Item.Routing.InputItemCreateDto.ValueType

valueType
required
string (CommonEnumInputItemValueTypeEnum)
Enum: "creates" "requires"

Specifies how a routing input item quantity is measured.

Responses

Request samples

Content type
{
  • "itemId": "stringstringstringstring",
  • "valueTypeUnits": 0.1,
  • "valueType": "creates"
}

Response samples

Content type
{
  • "id": "string"
}

Deletes an operation item from an item's routing

path Parameters
itemId
required
string = 24 characters
operationId
required
string = 36 characters
operationItemId
required
string = 36 characters

Responses

Get a specific item routing operation item

path Parameters
itemId
required
string = 24 characters
operationId
required
string = 36 characters
operationItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "itemId": "stringstringstringstring",
  • "number": "string",
  • "revision": "string",
  • "description": "string",
  • "valueTypeUnits": 0.1,
  • "valueType": "creates",
  • "routingStepId": "stringstringstringstringstringstring",
  • "isMaterialLine": true
}

Update an operation item for a specific item's routing

path Parameters
itemId
required
string = 24 characters
operationId
required
string = 36 characters
operationItemId
required
string = 36 characters
Request Body schema:
required
valueTypeUnits
required
number <double>

Measurement unit depending on FulcrumProduct.PublicApi.Dto.Item.Routing.InputItemUpdateDto.ValueType

valueType
string (CommonEnumInputItemValueTypeEnum)
Enum: "creates" "requires"

Specifies how a routing input item quantity is measured.

Responses

Request samples

Content type
{
  • "valueTypeUnits": 0.1,
  • "valueType": "creates"
}

Lists the operation items for an item's routing

path Parameters
itemId
required
string = 24 characters
operationId
required
string = 36 characters
query Parameters
skip
integer <int32> >= 0
Default: 0
take
integer <int32> [ 0 .. 5000 ]
Default: 50
Request Body schema:
number
string or null [ 1 .. 200 ] characters

Filter to items who's number contains the given string

Responses

Request samples

Content type
{
  • "number": "string"
}

Response samples

Content type
[
  • {
    }
]

Lists the operations for an item's routing

path Parameters
itemId
required
string = 24 characters
query Parameters
skip
integer <int32> >= 0
Default: 0
take
integer <int32> [ 0 .. 5000 ]
Default: 50
Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter to operations who's name contains the given string

Responses

Request samples

Content type
{
  • "name": "string"
}

Response samples

Content type
[
  • {
    }
]

Lists the operation materials for an item's routing

path Parameters
itemId
required
string = 24 characters
operationId
required
string = 36 characters

Responses

Response samples

Content type
[
  • {
    }
]

Item Vendor

Create a new item vendor

path Parameters
itemId
required
string = 24 characters
Request Body schema:
required
vendorId
required
string = 24 characters

Vendor id associated to this entity. Please reference /api/vendors endpoint.

vendorItemNumber
string or null [ 1 .. 200 ] characters

The item number for this vendor.

vendorItemName
string or null [ 1 .. 200 ] characters

The item name for this vendor.

price
number or null <double> >= 0

The price of this item for this vendor.

isPrimary
boolean

Signifies if this is the primary vendor for this item.

leadTimeInDays
integer or null <int32>

Lead time for this vendor.

notes
string or null [ 1 .. 2000 ] characters

Notes on this association.

Responses

Request samples

Content type
{
  • "vendorId": "stringstringstringstring",
  • "vendorItemNumber": "string",
  • "vendorItemName": "string",
  • "price": 0.1,
  • "isPrimary": true,
  • "leadTimeInDays": 0,
  • "notes": "string"
}

Response samples

Content type
{
  • "id": "string"
}

Get a list of vendors for an item

path Parameters
itemId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Update a specific item vendor

path Parameters
itemId
required
string = 24 characters

The id of the item to modify vendors for

itemVendorId
required
string = 36 characters

The id of the item vendor.

Request Body schema:
required

The new data to apply to the given vendor detail

vendorItemNumber
string or null [ 1 .. 200 ] characters

The item number for this vendor.

vendorItemName
string or null [ 1 .. 200 ] characters

The item name for this vendor.

price
number or null <double> >= 0

The price of this item for this vendor.

isPrimary
boolean

Signifies if this is the primary vendor for this item.

leadTimeInDays
integer or null <int32>

Lead time for this vendor.

notes
string or null [ 1 .. 2000 ] characters

Notes on this association.

Responses

Request samples

Content type
{
  • "vendorItemNumber": "string",
  • "vendorItemName": "string",
  • "price": 0.1,
  • "isPrimary": true,
  • "leadTimeInDays": 0,
  • "notes": "string"
}

Item Category

Get an item category

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "style": "primary",
  • "description": "string",
  • "types": [
    ],
  • "deleted": true
}

Find item categories based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter tags based on their name.

ids
Array of strings or null

Filter tags based on matching ids.

Responses

Request samples

Content type
{
  • "name": "string",
  • "ids": [
    ]
}

Response samples

Content type
[
  • {
    }
]

Item Class

Get an item class.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "style": "primary",
  • "description": "string",
  • "types": [
    ],
  • "deleted": true
}

Find item classes based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter tags based on their name.

ids
Array of strings or null

Filter tags based on matching ids.

Responses

Request samples

Content type
{
  • "name": "string",
  • "ids": [
    ]
}

Response samples

Content type
[
  • {
    }
]

Item Tag

Get an item category

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "style": "primary",
  • "description": "string",
  • "types": [
    ],
  • "deleted": true
}

Find item tags based on search parameters

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:

The search parameters

name
string or null [ 1 .. 200 ] characters

Filter tags based on their name.

ids
Array of strings or null

Filter tags based on matching ids.

Responses

Request samples

Content type
{
  • "name": "string",
  • "ids": [
    ]
}

Response samples

Content type
{
  • "data": [
    ],
  • "page": 0,
  • "pageSize": 0,
  • "totalCount": 0,
  • "totalPages": 0,
  • "hasPreviousPage": true,
  • "hasNextPage": true
}

Attach a tag to an item. This operation is idempotent - attaching a tag that is already present is a no-op.

path Parameters
itemId
required
string = 24 characters

The id of the item to tag.

tagId
required
string = 24 characters

The id of the tag to attach. Please reference the /api/item-tags/list endpoint.

Responses

Response samples

Content type
[
  • {
    }
]

Detach a tag from an item. This operation is idempotent - detaching a tag that is not present is a no-op.

path Parameters
itemId
required
string = 24 characters

The id of the item to modify.

tagId
required
string = 24 characters

The id of the tag to detach.

Responses

Response samples

Content type
[
  • {
    }
]

Replace the complete set of tags on an item. Tags currently on the item that are not in the request are removed.

path Parameters
itemId
required
string = 24 characters

The id of the item to modify.

Request Body schema:
required

The complete desired set of tag ids.

tagIds
required
Array of strings[ items = 24 characters ]

The complete desired set of tag identifiers for the item. Please reference the /api/item-tags/list endpoint. Duplicate ids are ignored. An empty set clears all tags from the item. At most FulcrumProduct.PublicApi.Dto.Item.Tag.ReplaceItemTagsDtoValidator.MAX_TAG_COUNT ids may be provided.

Responses

Request samples

Content type
{
  • "tagIds": [
    ]
}

Response samples

Content type
[
  • {
    }
]

Job

Cancel a specific job

path Parameters
jobId
required
string = 24 characters

Responses

Create a new job

Request Body schema:
required
nameOfJob
string or null

Name of the job to create. If omitted, the default naming convention will be used

customerId
string or null = 24 characters

The id of the customer to be created

autoSchedule
boolean or null

Auto Schedule job. Defaults to FALSE if omitted.

note
string or null [ 1 .. 2000 ] characters

Note to customer. This will appear on PDFs.

priority
string (JobPriorityEnum)
Enum: "low" "moderate" "high"

Job priority

productionDueDate
string or null <date-time>

The date that the production of items on the job needs to be completed by.

earliestStartDate
string or null <date-time>

If set, this is the earliest date that the job should be scheduled to begin.

quantityToMake
required
number <double>

Quantity to make

salesOrderId
string or null = 24 characters

Sales Order Id the job is created for. If used, ItemToMakeId will be ignored.

salesOrderLineItemId
string or null = 36 characters

Sales Order Line Item Id the job is created for. If used, ItemToMakeId will be ignored.

salesOrderLineItemNameOverride
string or null

Sales Order Line Item - Name Override

itemToMakeId
string or null = 24 characters

Id of the item to make. If SalesOrderId/SalesOrderLineItemId is set then ItemToMakeId will be ignored

Responses

Request samples

Content type
{
  • "nameOfJob": "string",
  • "customerId": "stringstringstringstring",
  • "autoSchedule": true,
  • "note": "string",
  • "priority": "low",
  • "productionDueDate": "2019-08-24T14:15:22Z",
  • "earliestStartDate": "2019-08-24T14:15:22Z",
  • "quantityToMake": 0.1,
  • "salesOrderId": "stringstringstringstring",
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "salesOrderLineItemNameOverride": "string",
  • "itemToMakeId": "stringstringstringstring"
}

Response samples

Content type
{
  • "id": "string"
}

Get a specific job

path Parameters
jobId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "name": "string",
  • "parentItemId": "stringstringstringstring",
  • "quantityToMake": 0.1,
  • "productionDueDate": "2019-08-24T14:15:22Z",
  • "earliestStartDate": "2019-08-24T14:15:22Z",
  • "salesOrderId": "stringstringstringstring",
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "createdUtc": "2019-08-24T14:15:22Z",
  • "originalScheduledStartUtc": "2019-08-24T14:15:22Z",
  • "originalScheduledEndUtc": "2019-08-24T14:15:22Z",
  • "scheduledStartUtc": "2019-08-24T14:15:22Z",
  • "scheduledEndUtc": "2019-08-24T14:15:22Z",
  • "completedOnUtc": "2019-08-24T14:15:22Z",
  • "cancelledOnUtc": "2019-08-24T14:15:22Z",
  • "revenue": 0.1,
  • "notes": "string",
  • "workOrderIds": [
    ],
  • "workOrders": [
    ],
  • "status": "draft",
  • "priority": "low",
  • "customFields": {
    }
}

Partially update a job

path Parameters
jobId
required
string = 24 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "name": "string",
  • "parentItemId": "stringstringstringstring",
  • "quantityToMake": 0.1,
  • "productionDueDate": "2019-08-24T14:15:22Z",
  • "earliestStartDate": "2019-08-24T14:15:22Z",
  • "salesOrderId": "stringstringstringstring",
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "createdUtc": "2019-08-24T14:15:22Z",
  • "originalScheduledStartUtc": "2019-08-24T14:15:22Z",
  • "originalScheduledEndUtc": "2019-08-24T14:15:22Z",
  • "scheduledStartUtc": "2019-08-24T14:15:22Z",
  • "scheduledEndUtc": "2019-08-24T14:15:22Z",
  • "completedOnUtc": "2019-08-24T14:15:22Z",
  • "cancelledOnUtc": "2019-08-24T14:15:22Z",
  • "revenue": 0.1,
  • "notes": "string",
  • "workOrderIds": [
    ],
  • "workOrders": [
    ],
  • "status": "draft",
  • "priority": "low",
  • "customFields": {
    }
}

Update a job

path Parameters
jobId
required
string = 24 characters
Request Body schema:
required
name
string or null

The name of the job

priority
string (JobPriorityEnum)
Enum: "low" "moderate" "high"

Job priority

quantityToMake
number or null <double>

The quantity the job should make

productionDueDate
string or null <date-time>

The production due date

earliestStartDate
string or null <date-time>

If set, this is the earliest date that the job should be scheduled to begin.

notes
string or null

The internal notes

Responses

Request samples

Content type
{
  • "name": "string",
  • "priority": "low",
  • "quantityToMake": 0.1,
  • "productionDueDate": "2019-08-24T14:15:22Z",
  • "earliestStartDate": "2019-08-24T14:15:22Z",
  • "notes": "string"
}

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "name": "string",
  • "parentItemId": "stringstringstringstring",
  • "quantityToMake": 0.1,
  • "productionDueDate": "2019-08-24T14:15:22Z",
  • "earliestStartDate": "2019-08-24T14:15:22Z",
  • "salesOrderId": "stringstringstringstring",
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "createdUtc": "2019-08-24T14:15:22Z",
  • "originalScheduledStartUtc": "2019-08-24T14:15:22Z",
  • "originalScheduledEndUtc": "2019-08-24T14:15:22Z",
  • "scheduledStartUtc": "2019-08-24T14:15:22Z",
  • "scheduledEndUtc": "2019-08-24T14:15:22Z",
  • "completedOnUtc": "2019-08-24T14:15:22Z",
  • "cancelledOnUtc": "2019-08-24T14:15:22Z",
  • "revenue": 0.1,
  • "notes": "string",
  • "workOrderIds": [
    ],
  • "workOrders": [
    ],
  • "status": "draft",
  • "priority": "low",
  • "customFields": {
    }
}

Get a specific job's tracking information

path Parameters
jobId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "name": "string",
  • "parentItemId": "stringstringstringstring",
  • "quantityToMake": 0.1,
  • "productionDueDate": "2019-08-24T14:15:22Z",
  • "earliestStartDate": "2019-08-24T14:15:22Z",
  • "salesOrderId": "stringstringstringstring",
  • "salesOrderLineItemId": "stringstringstringstringstringstring",
  • "createdUtc": "2019-08-24T14:15:22Z",
  • "originalScheduledStartUtc": "2019-08-24T14:15:22Z",
  • "originalScheduledEndUtc": "2019-08-24T14:15:22Z",
  • "scheduledStartUtc": "2019-08-24T14:15:22Z",
  • "scheduledEndUtc": "2019-08-24T14:15:22Z",
  • "completedOnUtc": "2019-08-24T14:15:22Z",
  • "cancelledOnUtc": "2019-08-24T14:15:22Z",
  • "revenue": 0.1,
  • "notes": "string",
  • "workOrderIds": [
    ],
  • "workOrders": [
    ],
  • "status": "draft",
  • "priority": "low",
  • "customFields": {
    },
  • "previousOperations": [
    ],
  • "currentOperations": [
    ],
  • "nextOperations": [
    ],
  • "pendingOperations": [
    ],
  • "cancelledOperations": [
    ],
  • "estimatedSetupTimeInSeconds": 0.1,
  • "estimatedRunTimeInSeconds": 0.1,
  • "estimatedLaborTimeInSeconds": 0.1,
  • "estimatedMachineTimeInSeconds": 0.1,
  • "elapsedSetupTimeInSeconds": 0.1,
  • "elapsedRunTimeInSeconds": 0.1,
  • "elapsedLaborTimeInSeconds": 0.1,
  • "elapsedMachineTimeInSeconds": 0.1,
  • "customerName": "string"
}

Lists a job's in process tracking checkpoints together with every recorded operator reading.

The result is intentionally single-job-bounded to the job identified by jobId and is not paginated: it returns every checkpoint on the job (across its items to make and operations) with all recorded readings, and the readings axis is not independently bounded. Consumers should expect the response to scale with the job's routing size and production volume. Checkpoints are ordered by operation order then checkpoint order; each checkpoint's readings are ordered by sampling interval, then reading ordinal within the interval, then recorded time.

path Parameters
jobId
required
string = 24 characters
Request Body schema:
phase
string (InProcessTrackingFieldCheckpointPhase)
Enum: "preOperation" "duringOperation" "postOperation"

Public mirror of FulcrumProduct.Domain.InProcessTracking.InProcessTrackingFieldCheckpointPhase. Members mirror the domain enum one-to-one by underlying value (guarded by JobInProcessTrackingEnumParityTests) so it maps by a plain cast, decoupling the published contract from renames of the internal enum.

Responses

Request samples

Content type
{
  • "phase": "preOperation"
}

Response samples

Content type
[
  • {
    }
]

Find jobs based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
jobIds
Array of strings or null [ 1 .. 500 ] items

Filter to jobs whose ids are in the list

numbers
Array of integers or null <int32> [ 1 .. 500 ] items [ items <int32 > ]

Filter jobs to only given numbers

jobNames
Array of strings or null [ 1 .. 500 ] items

Filter jobs to only given names

status
string (JobStatusEnum)
Enum: "draft" "needsReview" "approved" "engineering" "scheduled" "inProgress" "complete" "cancelled" "hold"

Job status

statuses
Array of strings or null (JobStatusEnum)
Enum: "draft" "needsReview" "approved" "engineering" "scheduled" "inProgress" "complete" "cancelled" "hold"

Filter jobs to match the given statuses

parentItemId
string or null

Filter jobs based on the id of the parent item they produce

hasIncompleteOperations
boolean or null

Filters jobs to have those that have at least 1 incomplete operation. Note that this will filter out jobs that haven't been approved yet because they technically have no operations on them until approved.

salesOrderId
string or null = 24 characters

Filters for jobs that are for this sales order id. Please reference /api/sales-orders endpoint.

createdBeforeUtc
string or null <date-time>

Filters jobs created before (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

createdAfterUtc
string or null <date-time>

Filters jobs created after (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

modifiedBeforeUtc
string or null <date-time>

Filters jobs modified before (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

modifiedAfterUtc
string or null <date-time>

Filters jobs modified after (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used. Useful for polling incrementally instead of re-syncing every job.

Responses

Request samples

Content type
{
  • "jobIds": [
    ],
  • "numbers": [
    ],
  • "jobNames": [
    ],
  • "status": "draft",
  • "statuses": [
    ],
  • "parentItemId": "string",
  • "hasIncompleteOperations": true,
  • "salesOrderId": "stringstringstringstring",
  • "createdBeforeUtc": "2019-08-24T14:15:22Z",
  • "createdAfterUtc": "2019-08-24T14:15:22Z",
  • "modifiedBeforeUtc": "2019-08-24T14:15:22Z",
  • "modifiedAfterUtc": "2019-08-24T14:15:22Z"
}

Response samples

Content type
[
  • {
    }
]

Update a job status

path Parameters
jobId
required
string = 24 characters
Request Body schema:
required
status
required
string (JobStatusEnum)
Enum: "draft" "needsReview" "approved" "engineering" "scheduled" "inProgress" "complete" "cancelled" "hold"

Job status

createPOs
boolean or null

Create Purchase Orders for the Job. Required for the following statuses: Engineering, Approved

isInitialDataImport
boolean or null

The job will be created as Complete. No inventory transactions. This is should mostly be used when importing jobs from legacy systems. Required for the following statuses: Complete

Responses

Request samples

Content type
{
  • "status": "draft",
  • "createPOs": true,
  • "isInitialDataImport": true
}

Job Custom Fields

Update (selectively) custom fields on a job

path Parameters
jobId
required
string = 24 characters

The job identifier

Request Body schema:
required

The custom fields to update

object

The custom fields

property name*
additional property
any

Responses

Request samples

Content type
{
  • "customFields": {
    }
}

Response samples

Content type
{
  • "customFields": {
    }
}

Update (selectively) custom fields on a job

path Parameters
jobId
required
string = 24 characters

The job identifier

Request Body schema:
required

The custom fields to update

object

The custom fields

property name*
additional property
any

Responses

Request samples

Content type
{
  • "customFields": {
    }
}

Response samples

Content type
{
  • "customFields": {
    }
}

Job Full Routing

Deletes a full routing operation in process tracking field for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
phase
required
string (DomainInProcessTrackingFieldCheckpointPhase)
Enum: "preOperation" "duringOperation" "postOperation"
iptId
required
string <uuid>

Responses

Lists full routing operation in process tracking field for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
phase
required
string (DomainInProcessTrackingFieldCheckpointPhase)
Enum: "preOperation" "duringOperation" "postOperation"
query Parameters
skip
integer <int32> >= 0
Default: 0
take
integer <int32> [ 0 .. 5000 ]
Default: 50
Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter to in process tracking fields whose label contains the given string

Responses

Request samples

Content type
{
  • "name": "string"
}

Response samples

Content type
[
  • {
    }
]

Create a full routing input item for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
Request Body schema:
required
itemId
required
string = 24 characters

The item id to be added. Please reference /api/items endpoint.

valueTypeUnits
required
number <double>

Measurement unit depending on FulcrumProduct.PublicApi.Dto.Item.Routing.InputItemCreateDto.ValueType

valueType
required
string (CommonEnumInputItemValueTypeEnum)
Enum: "creates" "requires"

Specifies how a routing input item quantity is measured.

Responses

Request samples

Content type
{
  • "itemId": "stringstringstringstring",
  • "valueTypeUnits": 0.1,
  • "valueType": "creates"
}

Response samples

Content type
{
  • "id": "string"
}

Delete a full routing input item from job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
inputItemId
required
string = 36 characters

Responses

Gets a full routing input item for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
inputItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "itemId": "stringstringstringstring",
  • "number": "string",
  • "revision": "string",
  • "description": "string",
  • "valueTypeUnits": 0.1,
  • "valueType": "creates",
  • "routingStepId": "stringstringstringstringstringstring",
  • "isMaterialLine": true
}

Update a full routing input item for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
inputItemId
required
string = 36 characters
Request Body schema:
required
itemId
required
string = 24 characters

The item id to be added. Please reference /api/items endpoint.

valueTypeUnits
required
number <double>

Measurement unit depending on FulcrumProduct.PublicApi.Dto.Item.Routing.InputItemCreateDto.ValueType

valueType
required
string (CommonEnumInputItemValueTypeEnum)
Enum: "creates" "requires"

Specifies how a routing input item quantity is measured.

Responses

Request samples

Content type
{
  • "itemId": "stringstringstringstring",
  • "valueTypeUnits": 0.1,
  • "valueType": "creates"
}

Lists the full routing input items for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
query Parameters
skip
integer <int32> >= 0
Default: 0
take
integer <int32> [ 0 .. 5000 ]
Default: 50
Request Body schema:
number
string or null [ 1 .. 200 ] characters

Filter to items who's number contains the given string

Responses

Request samples

Content type
{
  • "number": "string"
}

Response samples

Content type
[
  • {
    }
]

List input materials for a job's routing

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
query Parameters
skip
integer <int32> >= 0
Default: 0
take
integer <int32> [ 0 .. 5000 ]
Default: 50
Request Body schema:
number
string or null [ 1 .. 200 ] characters

Filter to items who's number contains the given string

Responses

Request samples

Content type
{
  • "number": "string"
}

Response samples

Content type
[
  • {
    }
]

Creates a full routing operation in process tracking field for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
phase
required
string (DomainInProcessTrackingFieldCheckpointPhase)
Enum: "preOperation" "duringOperation" "postOperation"
Request Body schema:
required
label
required
string non-empty

Label describing the in process tracking field

description
string or null

The description of the in process tracking field

units
string or null

The units used when this in process tracking field represents a number

fieldTypeId
required
string non-empty

The id of the field type for this in process tracking field

targetValue
number or null <double>

The target or ideal value of an in process tracking field response

minimumValue
number or null <double>

The minimum acceptable value for a tracking field response

maximumValue
number or null <double>

The maximum acceptable value for a tracking field response

triggeringBooleanValue
boolean or null

The target value for booleans. Typically Yes/No for proceeding with next checkpoint

triggeringDropdownValue
string or null

The target value for multiple options

required
boolean

Whether the in process tracking field requires a response

restricted
boolean

If true, only users with the appropriate permission will be allowed to save a response.

firstArticle
boolean

Only applies to the During phase. If true (and Required), this field will prevent adding any completed items to inventory if target is not met.

onFair
boolean

If true, this field's measurements are reported on the First Article Inspection Report (FAIR). Does not affect sampling frequency.

Responses

Request samples

Content type
{
  • "label": "string",
  • "description": "string",
  • "units": "string",
  • "fieldTypeId": "string",
  • "targetValue": 0.1,
  • "minimumValue": 0.1,
  • "maximumValue": 0.1,
  • "triggeringBooleanValue": true,
  • "triggeringDropdownValue": "string",
  • "required": true,
  • "restricted": true,
  • "firstArticle": true,
  • "onFair": true
}

Response samples

Content type
{
  • "id": "string"
}

Get a summary of the make routing for a job

path Parameters
jobId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Creates a full routing operation for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
Request Body schema:
required
systemOperationId
required
string = 24 characters

System Operation Id

order
integer or null <int32> >= 0

The order of this operation. Operations with the same order are expected to run in parallel

object (ItemRoutingOutsideProcessingOperationDto)

Defines outside processing fields

object (ItemRoutingNormalOperationDto)

Defines non-outside-processing fields

leadDays
integer or null <int32> >= 0

Lead days. Will default to zero if not provided.

unattended
boolean or null

If true, the run portion of this step is unattended by an operator.

instructions
string or null [ 1 .. 2000 ] characters

Operation instructions. Will default to the instructions defined on the operation when not provided.

inputMaterialIds
Array of strings or null

The ids on the input material to associate to this operation. This value should be the Id from the response from items/{itemId}/routing/input-materials/list

Responses

Request samples

Content type
{
  • "systemOperationId": "stringstringstringstring",
  • "order": 0,
  • "outsideProcessingOperation": {
    },
  • "operation": {
    },
  • "leadDays": 0,
  • "unattended": true,
  • "instructions": "string",
  • "inputMaterialIds": [
    ]
}

Response samples

Content type
{
  • "id": "string"
}

Removes a full routing operation for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters

Responses

Gets a full routing operation for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "systemOperationId": "stringstringstringstring",
  • "order": 0,
  • "isOutsideProcessing": true,
  • "outsideProcessingOperation": {
    },
  • "operation": {
    },
  • "leadDays": 0,
  • "unattended": true,
  • "machineTrackingEnabled": true,
  • "instructions": "string"
}

Updates a full routing operation for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
Request Body schema:
required
order
integer or null <int32> >= 0

The order of this operation. Operations with the same order are expected to run in parallel

object (ItemRoutingOutsideProcessingOperationDto)

Defines outside processing fields

object (ItemRoutingNormalOperationDto)

Defines non-outside-processing fields

leadDays
integer or null <int32> >= 0

Lead days. Will default to zero if not provided.

unattended
boolean or null

If true, the run portion of this step is unattended by an operator.

instructions
string or null [ 1 .. 2000 ] characters

Instructions for this operation.

Responses

Request samples

Content type
{
  • "order": 0,
  • "outsideProcessingOperation": {
    },
  • "operation": {
    },
  • "leadDays": 0,
  • "unattended": true,
  • "instructions": "string"
}

Gets a full routing operation item for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
operationItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "itemId": "stringstringstringstring",
  • "number": "string",
  • "revision": "string",
  • "description": "string",
  • "valueTypeUnits": 0.1,
  • "valueType": "creates",
  • "routingStepId": "stringstringstringstringstringstring",
  • "isMaterialLine": true
}

List full routing operation items for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
query Parameters
skip
integer <int32> >= 0
Default: 0
take
integer <int32> [ 0 .. 5000 ]
Default: 50
Request Body schema:
number
string or null [ 1 .. 200 ] characters

Filter to items who's number contains the given string

Responses

Request samples

Content type
{
  • "number": "string"
}

Response samples

Content type
[
  • {
    }
]

Lists full routing operations for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
query Parameters
skip
integer <int32> >= 0
Default: 0
take
integer <int32> [ 0 .. 5000 ]
Default: 50
Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter to operations who's name contains the given string

Responses

Request samples

Content type
{
  • "name": "string"
}

Response samples

Content type
[
  • {
    }
]

Gets a full routing routing for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "allowContinuousFlow": true
}

Job Part Line Item Full Routing

Gets a full routing operation in process tracking field for a job

path Parameters
jobId
required
string = 24 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
phase
required
string (DomainInProcessTrackingFieldCheckpointPhase)
Enum: "preOperation" "duringOperation" "postOperation"
iptId
required
string <uuid>

Responses

Response samples

Content type
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "label": "string",
  • "units": "string",
  • "fieldTypeId": "string",
  • "targetValue": 0.1,
  • "minimumValue": 0.1,
  • "maximumValue": 0.1,
  • "triggeringBooleanValue": true,
  • "triggeringDropdownValue": "string",
  • "required": true,
  • "restricted": true,
  • "firstArticle": true,
  • "onFair": true
}

Job Item To Make

Get a specific item to make on a job

path Parameters
jobId
required
string = 24 characters
itemToMakeId
required
string = 36 characters
query Parameters
includeCostBreakdown
boolean
Default: false

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "itemId": "stringstringstringstring",
  • "quantityToMake": 0.1,
  • "isCustom": true,
  • "status": "new",
  • "quantityMade": 0.1,
  • "depth": 0,
  • "routingNotes": "string",
  • "costBreakdown": {
    },
  • "costBreakdownEstimated": {
    }
}

Get a list of items to make on a job

path Parameters
jobId
required
string = 24 characters
query Parameters
includeCostBreakdown
boolean
Default: false

Responses

Response samples

Content type
[
  • {
    }
]

Get the cost breakdowns for specific item to make on a job

path Parameters
jobId
required
string = 24 characters
itemToMakeId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "costBreakdown": {
    },
  • "costBreakdownEstimated": {
    }
}

Job Item To Make Operation

Adds additional quantity completed to a job operation without completing the operation. Each call will increment the quantity completed by the specified amount.

This is a non-idempotent action. Multiple calls with the same parameters will result in the quantity being added multiple times. Implement appropriate client-side controls to prevent duplicate submissions.

path Parameters
jobId
required
string

The ID of the job

itemToMakeId
required
string

The ID of the item to make

operationId
required
string

The ID of the operation

Request Body schema:

The request containing the additional quantity to add

additionalQuantity
required
number <double>

The additional quantity to add to the operation's completed quantity. Must be greater than zero.

Responses

Request samples

Content type
{
  • "additionalQuantity": 0.1
}

Response samples

Content type
{
  • "jobId": "string",
  • "itemToMakeId": "string",
  • "operationId": "string",
  • "previousQuantityCompleted": 0.1,
  • "additionalQuantityAdded": 0.1,
  • "newTotalQuantityCompleted": 0.1,
  • "quantityRequired": 0.1,
  • "operationStatus": "string"
}

Completes a job operation, optionally recording a final completed quantity and scrap.

Closes any open timers on the operation, marks setup and run complete, readies downstream operations, and — when this is the item's final operation, or a split operation that produces finished goods — receives finished goods into inventory (unless addItemsToInventory is false), completing the item on its final operation and the job once every item is done. Quantity made is added on top of quantity recorded earlier, so a caller that already reported production via add-quantity-completed should pass zero here.

path Parameters
jobId
required
string = 24 characters

The ID of the job

itemToMakeId
required
string = 36 characters

The ID of the item to make

operationId
required
string = 36 characters

The ID of the operation

Request Body schema:

Completion details: final quantity, scrap, and inventory options

quantityMade
number <double> >= 0

Additional quantity completed as part of this completion, added on top of any quantity already recorded on the operation. May be zero when all quantity was recorded earlier (for example via add-quantity-completed).

quantityScrapped
number <double> >= 0

Quantity scrapped on this operation.

scrapReasonId
string or null

Id of the scrap reason to record with the scrapped quantity. Optional.

locationId
string or null

Id of the inventory location to receive finished goods into when this completion finishes the item (last operation). Optional; when omitted the shop's default location is used.

lotNumber
string or null

Lot number for finished goods when the item is lot tracked. Required when this completion finishes a lot-tracked item and inventory will be created; when omitted in that case for a completion that adds quantity, a lot number is generated.

expirationDate
string or null <date-time>

Expiration date for the finished-goods lot. Optional.

addItemsToInventory
boolean

Whether finished goods are added to inventory when this completion finishes the item. Defaults to true.

Responses

Request samples

Content type
{
  • "quantityMade": 0.1,
  • "quantityScrapped": 0.1,
  • "scrapReasonId": "string",
  • "locationId": "string",
  • "lotNumber": "string",
  • "expirationDate": "2019-08-24T14:15:22Z",
  • "addItemsToInventory": true
}

Response samples

Content type
{
  • "jobId": "string",
  • "itemToMakeId": "string",
  • "operationId": "string",
  • "quantityMadeThisCompletion": 0.1,
  • "totalQuantityCompleted": 0.1,
  • "quantityScrapped": 0.1,
  • "operationStatus": "string",
  • "inventoryUpdated": true,
  • "createdInventoryTransactionId": "string"
}

Get a specific operation for an item to make on a job

path Parameters
jobId
required
string = 24 characters
itemToMakeId
required
string = 36 characters
operationId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "status": "pending",
  • "order": 0,
  • "systemOperationId": "stringstringstringstring",
  • "isOutsideProcessing": true,
  • "originalScheduledStartUtc": "2019-08-24T14:15:22Z",
  • "originalScheduledEndUtc": "2019-08-24T14:15:22Z",
  • "scheduledStartUtc": "2019-08-24T14:15:22Z",
  • "scheduledEndUtc": "2019-08-24T14:15:22Z",
  • "completedOnUtc": "2019-08-24T14:15:22Z",
  • "completedById": "string",
  • "scheduledEquipmentId": "string",
  • "scheduledEquipmentName": "string",
  • "customFields": {
    },
  • "instructions": "string",
  • "name": "string",
  • "leadTimeInDays": 0,
  • "associatedPurchaseOrderIds": [
    ],
  • "estimatedSetupTimeInSeconds": 0.1,
  • "estimatedSetupTimeBasis": "fixed",
  • "estimatedRunTimeInSeconds": 0.1,
  • "estimatedRunTimeBasis": "fixed",
  • "estimatedMachineTimeInSeconds": 0.1,
  • "estimatedMachineTimeBasis": "fixed",
  • "estimatedLaborTimeInSeconds": 0.1,
  • "estimatedLaborTimeBasis": "fixed",
  • "isMachineTimeOnly": true,
  • "workOrderId": "stringstringstringstring"
}

Get a specific operation for an item to make on a job

path Parameters
jobId
required
string = 24 characters
itemToMakeId
required
string = 36 characters
operationId
required
string = 36 characters
Request Body schema:
object or null

The custom fields to update on the operation object

property name*
additional property
any

Responses

Request samples

Content type
{
  • "customFields": {
    }
}

Get a list of operations for an item to make on a job

path Parameters
jobId
required
string = 24 characters
itemToMakeId
required
string = 36 characters

Responses

Response samples

Content type
[
  • {
    }
]

Get a list of required items for an operation on a job item to make

path Parameters
jobId
required
string = 24 characters
itemToMakeId
required
string = 36 characters
operationId
required
string = 36 characters

Responses

Response samples

Content type
[
  • {
    }
]

Get a list of required materials for an operation on a job item to make

path Parameters
jobId
required
string = 24 characters
itemToMakeId
required
string = 36 characters
operationId
required
string = 36 characters

Responses

Response samples

Content type
[
  • {
    }
]

Pick a specific item for a specific item to make on a job.

path Parameters
jobId
required
string = 24 characters
itemToMakeId
required
string = 36 characters
operationId
required
string = 36 characters
Request Body schema:
required
itemId
required
string = 24 characters

The identifier of the item to be picked. Please reference api/items endpoint

quantity
required
number <double>

Quantity of the item to pick.

locationId
string or null

ID of the location to pick from. If not set or set to an empty string, will pick from inventory not assigned to a location. Cannot be set if FulcrumProduct.PublicApi.Dto.Job.ItemToMake.OperationPickInventoryDto.UseDefaultLocation is set to true.

useDefaultLocation
boolean

If set to true, inventory will be picked from the default location for the item. If set to true, FulcrumProduct.PublicApi.Dto.Job.ItemToMake.OperationPickInventoryDto.LocationId cannot be set. If the item does not have a default location set and this is set to true, will pick from inventory not assigned to a location.

lotId
string or null

The ID of the lot to pick from.

Responses

Request samples

Content type
{
  • "itemId": "stringstringstringstring",
  • "quantity": 0.1,
  • "locationId": "string",
  • "useDefaultLocation": true,
  • "lotId": "string"
}

Job Message

Post a chat message on a job. Omit itemToMakeId and operationId to post on the job-level chat; supply both to post on one operation's chat. The message appears in the in-app job chat, and each mentioned user is subscribed to that chat.

path Parameters
jobId
required
string = 24 characters

The job

Request Body schema:
required

The message to post

body
required
string [ 1 .. 2000 ] characters

Message text

itemToMakeId
string or null = 36 characters

Id of the item-to-make to post on. Must be supplied together with operationId; omit both to post on the job itself.

operationId
string or null = 36 characters

Id of the operation to post on. Must be supplied together with itemToMakeId; omit both to post on the job itself.

mentions
Array of strings or null

User Ids to @mention in the message. Please reference /api/users endpoints.

Responses

Request samples

Content type
{
  • "body": "string",
  • "itemToMakeId": "stringstringstringstringstringstring",
  • "operationId": "stringstringstringstringstringstring",
  • "mentions": [
    ]
}

Response samples

Content type
{
  • "id": "string"
}

List the chat messages on a job, newest first. Omit the body (or both ids) for the job-level chat; supply itemToMakeId and operationId together for one operation's chat.

path Parameters
jobId
required
string = 24 characters

The job

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:

Which chat on the job to list

itemToMakeId
string or null = 36 characters

Id of the item-to-make whose operation chat to list. Must be supplied together with operationId.

operationId
string or null = 36 characters

Id of the operation whose chat to list. Must be supplied together with itemToMakeId.

Responses

Request samples

Content type
{
  • "itemToMakeId": "stringstringstringstringstringstring",
  • "operationId": "stringstringstringstringstringstring"
}

Response samples

Content type
{
  • "data": [
    ],
  • "page": 0,
  • "pageSize": 0,
  • "totalCount": 0,
  • "totalPages": 0,
  • "hasPreviousPage": true,
  • "hasNextPage": true
}

Job Operation

Get a list of operations for a job

path Parameters
jobId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Job Tracking Timers

Finds job tracking timers based on search parameters

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:

The search parameters

userId
string or null

Filter timers based on who started it

jobId
string or null

Filter timers based on job

runningTimersOnly
boolean or null

Filter to only running timers

types
Array of strings or null (DomainTimeTrackingTimer_Type) non-empty
Enum: "setup" "run" "clockIn" "break" "labor" "machine"

Filter to specific timer types

createdBeforeUtc
string or null <date-time>

Filters timers created before (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

createdAfterUtc
string or null <date-time>

Filters timers created after (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

modifiedBeforeUtc
string or null <date-time>

Filters timers modified before (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

modifiedAfterUtc
string or null <date-time>

Filters timers modified after (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

startedBeforeUtc
string or null <date-time>

Filters timers started before (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

startedAfterUtc
string or null <date-time>

Filters timers started after (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

stoppedBeforeUtc
string or null <date-time>

Filters timers stopped before (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

stoppedAfterUtc
string or null <date-time>

Filters timers stopped after (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

stoppedBeforeUtcOriginal
string or null <date-time>

Filters timers stopped before (exclusive) this parameter in UTC time. This explicitly looks at the ORIGINAL stopped date which means this would be primarily for filtering mechanics that necessitate scope limiting. If no time component is passed, midnight UTC will be used.

stoppedAfterUtcOriginal
string or null <date-time>

Filters timers stopped after (exclusive) this parameter in UTC time. This explicitly looks at the ORIGINAL stopped date which means this would be primarily for filtering mechanics that necessitate scope limiting. If no time component is passed, midnight UTC will be used.

Responses

Request samples

Content type
{
  • "userId": "string",
  • "jobId": "string",
  • "runningTimersOnly": true,
  • "types": [
    ],
  • "createdBeforeUtc": "2019-08-24T14:15:22Z",
  • "createdAfterUtc": "2019-08-24T14:15:22Z",
  • "modifiedBeforeUtc": "2019-08-24T14:15:22Z",
  • "modifiedAfterUtc": "2019-08-24T14:15:22Z",
  • "startedBeforeUtc": "2019-08-24T14:15:22Z",
  • "startedAfterUtc": "2019-08-24T14:15:22Z",
  • "stoppedBeforeUtc": "2019-08-24T14:15:22Z",
  • "stoppedAfterUtc": "2019-08-24T14:15:22Z",
  • "stoppedBeforeUtcOriginal": "2019-08-24T14:15:22Z",
  • "stoppedAfterUtcOriginal": "2019-08-24T14:15:22Z"
}

Response samples

Content type
{
  • "data": [
    ],
  • "page": 0,
  • "pageSize": 0,
  • "totalCount": 0,
  • "totalPages": 0,
  • "hasPreviousPage": true,
  • "hasNextPage": true
}

Starts a job tracking timer.

Request Body schema:
userId
string or null = 24 characters

The user identifier to associate the timer to. If not supplied, will use the user assigned to the api key used for authorization

jobId
required
string non-empty

The job identifier

itemToMakeId
required
string = 36 characters

The item to make identifier

operationId
required
string = 36 characters

The operation identifier

type
required
string (DomainTimeTrackingTimer_Type)
Enum: "setup" "run" "clockIn" "break" "labor" "machine"

Responses

Request samples

Content type
{
  • "userId": "stringstringstringstring",
  • "jobId": "string",
  • "itemToMakeId": "stringstringstringstringstringstring",
  • "operationId": "stringstringstringstringstringstring",
  • "type": "setup"
}

Stops a job tracking timer

Request Body schema:
userId
string or null = 24 characters

The user identifier to associate the timer to. If not supplied, will use the user assigned to the api key used for authorization

timerId
required
string = 24 characters

The timer identifier

Responses

Request samples

Content type
{
  • "userId": "stringstringstringstring",
  • "timerId": "stringstringstringstring"
}

Location

Delete a specific location

path Parameters
locationId
required
string = 24 characters

Responses

Get a location.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "barcode": "string"
}

Find locations based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter locations based on their name.

Responses

Request samples

Content type
{
  • "name": "string"
}

Response samples

Content type
[
  • {
    }
]

Material

Activate materials based on ids

Request Body schema:
required
materialIds
required
Array of strings

Material ids to activate.

unit
string (FulcrumProductMaterialsFulcrumLengthUnits)
Enum: "inch" "foot" "yard" "millimeter" "centimeter" "meter"

Responses

Request samples

Content type
{
  • "materialIds": [
    ],
  • "unit": "inch"
}

Response samples

Content type
[
  • {
    }
]

Get a material. DEPRECATED: use POST /v2/materials/get instead, which accepts the material id in the request body. This endpoint fails for material ids that contain '/' characters (e.g. "SS-301-CR 1/2 HD") because ASP.NET Core routing cannot match URL-encoded forward slashes in path segments. Deprecated

path Parameters
id
required
string non-empty

Responses

Response samples

Content type
{
  • "id": "string",
  • "active": true,
  • "name": "string",
  • "form": "sheet",
  • "materialReferenceId": "string",
  • "materialReferenceName": "string",
  • "specification": "string",
  • "subSpecification": "string",
  • "finish": "string",
  • "grade": "string",
  • "dimension": "string",
  • "type": "string",
  • "version": "string",
  • "vendors": [
    ]
}

Get a material by id. Use this endpoint instead of the path-based v1 when your material ids may contain '/' characters, which ASP.NET Core routing cannot match once URL-encoded.

Request Body schema:
required
id
required
string non-empty

Unique id of the material to retrieve.

Responses

Request samples

Content type
{
  • "id": "string"
}

Response samples

Content type
{
  • "id": "string",
  • "active": true,
  • "name": "string",
  • "form": "sheet",
  • "materialReferenceId": "string",
  • "materialReferenceName": "string",
  • "specification": "string",
  • "subSpecification": "string",
  • "finish": "string",
  • "grade": "string",
  • "dimension": "string",
  • "type": "string",
  • "version": "string",
  • "vendors": [
    ]
}

Find materials based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
ids
Array of strings or null

Filter materials based on matching ids.

materials
Array of strings or null

Material names.

grades
Array of strings or null

Grades.

forms
Array of strings or null (CommonEnumMaterialFormEnum)
Enum: "sheet" "plate" "roundBar" "flatBar" "channel" "squareTube" "angle" "treadPlate" "hexBar" "squareBar" "teeBar" "hBeam" "rectTube" "pipe" "wBeam" "sBeam" "roundTube" "rectBar" "wideBar"

Material forms.

displayDimensions
Array of strings or null

A list of dimension display values to include

active
boolean or null

Indicate whether to specifically only pull active materials. If left null, all rows are included.

Responses

Request samples

Content type
{
  • "ids": [
    ],
  • "materials": [
    ],
  • "grades": [
    ],
  • "forms": [
    ],
  • "displayDimensions": [
    ],
  • "active": true
}

Response samples

Content type
[
  • {
    }
]

Material Vendor

Create a new material vendor. DEPRECATED: use POST /v2/material-vendors instead, which accepts the material id in the request body. This endpoint fails for material ids that contain '/' characters (e.g. "SS-301-CR 1/2 HD") because ASP.NET Core routing cannot match URL-encoded forward slashes in path segments. Deprecated

path Parameters
materialId
required
string
Request Body schema:
required
vendorId
required
string = 24 characters

Vendor id associated to this entity. Please reference /api/vendors endpoint.

priceUnit
required
string (CommonEnumMaterialVendorPriceUnitEnum)
Enum: "kilogram" "pound"

Specifies how a routing input item quantity is measured.

isPrimary
boolean

Signifies if this is the primary vendor for this material.

leadTimeInDays
integer or null <int32> >= 0

Lead time for this vendor.

required
Array of objects (MaterialShapeVendorPriceBreakCreateDto)

Vendor price breaks

Responses

Request samples

Content type
{
  • "vendorId": "stringstringstringstring",
  • "priceUnit": "kilogram",
  • "isPrimary": true,
  • "leadTimeInDays": 0,
  • "priceBreaks": [
    ]
}

Response samples

Content type
{
  • "id": "string"
}

Create a new material vendor. Use this endpoint instead of the path-based v1 when your material ids may contain '/' characters, which ASP.NET Core routing cannot match once URL-encoded.

Request Body schema:
required
materialId
required
string non-empty

Unique id of the material to create the vendor on.

vendorId
required
string = 24 characters

Vendor id associated to this entity. Please reference /api/vendors endpoint.

priceUnit
required
string (CommonEnumMaterialVendorPriceUnitEnum)
Enum: "kilogram" "pound"

Specifies how a routing input item quantity is measured.

isPrimary
boolean

Signifies if this is the primary vendor for this material.

leadTimeInDays
integer or null <int32> >= 0

Lead time for this vendor.

required
Array of objects (MaterialShapeVendorPriceBreakCreateDto)

Vendor price breaks

Responses

Request samples

Content type
{
  • "materialId": "string",
  • "vendorId": "stringstringstringstring",
  • "priceUnit": "kilogram",
  • "isPrimary": true,
  • "leadTimeInDays": 0,
  • "priceBreaks": [
    ]
}

Response samples

Content type
{
  • "id": "string"
}

Get a list of vendors for a material. DEPRECATED: use POST /v2/material-vendors/list instead, which accepts the material id in the request body. This endpoint fails for material ids that contain '/' characters (e.g. "SS-301-CR 1/2 HD") because ASP.NET Core routing cannot match URL-encoded forward slashes in path segments. Deprecated

path Parameters
materialId
required
string

Responses

Response samples

Content type
[
  • {
    }
]

List the vendors for a material. Use this endpoint instead of the path-based v1 when your material ids may contain '/' characters, which ASP.NET Core routing cannot match once URL-encoded.

Request Body schema:
required
materialId
required
string non-empty

Unique id of the material to list vendors for.

Responses

Request samples

Content type
{
  • "materialId": "string"
}

Response samples

Content type
[
  • {
    }
]

Update a specific material vendor. DEPRECATED: use PUT /v2/material-vendors/{vendorId} instead, which accepts the material id in the request body. This endpoint fails for material ids that contain '/' characters (e.g. "SS-301-CR 1/2 HD") because ASP.NET Core routing cannot match URL-encoded forward slashes in path segments. Deprecated

path Parameters
materialId
required
string

The id of the item to modify vendors for

vendorId
required
string = 24 characters

The id of the actual vendor.

Request Body schema:
required

The new data to apply to the given vendor detail

isPrimary
boolean

Signifies if this is the primary vendor for this material.

leadTimeInDays
integer or null <int32> >= 0

Lead time for this vendor.

required
Array of objects (MaterialShapeVendorPriceBreakCreateDto)

Vendor price breaks

Responses

Request samples

Content type
{
  • "isPrimary": true,
  • "leadTimeInDays": 0,
  • "priceBreaks": [
    ]
}

Response samples

Content type
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "vendorId": "stringstringstringstring",
  • "isPrimary": true,
  • "currencyCode": "string",
  • "priceUnit": "kilogram",
  • "leadTimeInDays": 0,
  • "priceBreaks": [
    ]
}

Update a specific material vendor. Use this endpoint instead of the path-based v1 when your material ids may contain '/' characters, which ASP.NET Core routing cannot match once URL-encoded.

path Parameters
vendorId
required
string = 24 characters

Unique id of the vendor to update on the material.

Request Body schema:
required

The new data to apply to the given vendor detail, including the material id

materialId
required
string non-empty

Unique id of the material whose vendor will be updated.

isPrimary
boolean

Signifies if this is the primary vendor for this material.

leadTimeInDays
integer or null <int32> >= 0

Lead time for this vendor.

required
Array of objects (MaterialShapeVendorPriceBreakCreateDto)

Vendor price breaks

Responses

Request samples

Content type
{
  • "materialId": "string",
  • "isPrimary": true,
  • "leadTimeInDays": 0,
  • "priceBreaks": [
    ]
}

Response samples

Content type
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "vendorId": "stringstringstringstring",
  • "isPrimary": true,
  • "currencyCode": "string",
  • "priceUnit": "kilogram",
  • "leadTimeInDays": 0,
  • "priceBreaks": [
    ]
}

Material Code

Get a material code.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "style": "primary",
  • "description": "string",
  • "types": [
    ],
  • "deleted": true
}

Find material codes based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter tags based on their name.

ids
Array of strings or null

Filter tags based on matching ids.

Responses

Request samples

Content type
{
  • "name": "string",
  • "ids": [
    ]
}

Response samples

Content type
[
  • {
    }
]

NCRs

Get a specific NCR by id.

path Parameters
ncrId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "type": "string",
  • "cause": "string",
  • "detail": "string",
  • "departmentId": "stringstringstringstring",
  • "department": {
    },
  • "vendorId": "stringstringstringstring",
  • "vendor": {
    },
  • "workCenters": "string",
  • "scheduledEquipment": "string",
  • "reason": "string",
  • "operator": {
    },
  • "status": "string",
  • "quantityImpacted": 0.1,
  • "incrementalCost": 0.1,
  • "createdUtc": "2019-08-24T14:15:22Z",
  • "completedUtc": "2019-08-24T14:15:22Z",
  • "jobIds": [
    ],
  • "customFields": {
    },
  • "completedBy": {
    },
  • "analyzedBy": {
    },
  • "impacts": [
    ]
}

Finds NCRs based on search parameters

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
status
string or null

Filter NCRs by a specific status Accepted Values: Closed, Hold, New, Quality Review, Engineering Review

type
string or null

Filter NCRs by a specific type. Available values are configured per tenant in Quality settings (NCR dropdowns).

cause
string or null

Filter NCRs by a specific cause. Available values are configured per tenant in Quality settings (NCR dropdowns).

reason
string or null

Filter NCRs by a specific reason. Available values are configured per tenant in Quality settings (NCR dropdowns).

createdUtc
string or null <date-time>

Filter NCRs created after a certain date

Responses

Request samples

Content type
{
  • "status": "string",
  • "type": "string",
  • "cause": "string",
  • "reason": "string",
  • "createdUtc": "2019-08-24T14:15:22Z"
}

Response samples

Content type
{
  • "data": [
    ],
  • "page": 0,
  • "pageSize": 0,
  • "totalCount": 0,
  • "totalPages": 0,
  • "hasPreviousPage": true,
  • "hasNextPage": true
}

Nesting

List nestable groups — each a material shape paired with the operation it is cut on, carrying the job operations still waiting to be nested and the work-order operations already created.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:

Optional filter. Every field is optional and filters combine with AND.

needNesting
boolean or null

When true, keeps only groups that still have job operations waiting to be nested.

existingNests
boolean or null

When true, keeps only groups that already have a work-order operation.

materialForms
Array of strings or null (NestingEnumNestableMaterialFormEnum)
Enum: "sheet" "plate" "roundBar" "flatBar" "channel" "squareTube" "angle" "treadPlate" "hexBar" "squareBar" "teeBar" "hBeam" "rectTube" "pipe" "wBeam" "sBeam" "roundTube" "rectBar" "wideBar" "reinforcingBar" "halfRoundBar" "halfOvalBar"

Keeps only groups whose material shape has one of these stock forms.

operationIds
Array of strings or null <= 500 items

Keeps only groups on one of these routing operations.

materialShapeIds
Array of strings or null <= 500 items

Keeps only groups on one of these material shapes.

earliestStartOnOrBefore
string or null <date-time>

Keeps only groups whose earliest scheduled-start job operation falls on or before this calendar date. Only the calendar date is used, exactly as written; any time or UTC offset is ignored. A group with no dated job operation is dropped as well, which means existing-nest-only groups never survive this filter.

search
string or null

Single search token, matched case-insensitively as a substring against the job name and number, the customer name, the sales order number and name, the item name, the work order name, the material shape name, and the operation name. Not split on whitespace.

Responses

Request samples

Content type
{
  • "needNesting": true,
  • "existingNests": true,
  • "materialForms": [
    ],
  • "operationIds": [
    ],
  • "materialShapeIds": [
    ],
  • "earliestStartOnOrBefore": "2019-08-24T14:15:22Z",
  • "search": "string"
}

Response samples

Content type
{
  • "data": [
    ],
  • "page": 0,
  • "pageSize": 0,
  • "totalCount": 0,
  • "totalPages": 0,
  • "hasPreviousPage": true,
  • "hasNextPage": true
}

Note

Create a new note on a parent document

Request Body schema:
required
parentId
required
string [ 24 .. 36 ] characters

Unique identifier of the object to which the note is attached Can be 24 or 36 characters, depending on parent type

parentType
required
string (NoteTypeEnum)
Enum: "salesOrder" "purchaseOrder" "quote" "invoice"

Note parent document type

body
required
string [ 1 .. 2000 ] characters

Note text

mentions
Array of strings or null

User Ids to tag in the note. Please reference /api/users endpoints.

Responses

Request samples

Content type
{
  • "parentId": "stringstringstringstring",
  • "parentType": "salesOrder",
  • "body": "string",
  • "mentions": [
    ]
}

Response samples

Content type
{
  • "id": "string"
}

Get a specific note

path Parameters
noteId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "parentId": "stringstringstringstring",
  • "parentType": "salesOrder",
  • "body": "string",
  • "mentions": [
    ]
}

Find notes based on search parameters.

Request Body schema:
required
parentType
required
string (NoteTypeEnum)
Enum: "salesOrder" "purchaseOrder" "quote" "invoice"

Note parent document type

parentId
required
string [ 24 .. 36 ] characters

Filter notes by parent Id. Either 24 or 36 characters, depending on parent type

Responses

Request samples

Content type
{
  • "parentType": "salesOrder",
  • "parentId": "stringstringstringstring"
}

Response samples

Content type
[
  • {
    }
]

Operation

Create a new operation

Request Body schema:
required
name
required
string [ 1 .. 200 ] characters

The name of operation.

description
required
string [ 1 .. 200 ] characters

The description of the operation.

isOutsideProcessing
boolean

Specifies whether this is an outside processing operation.

object (ItemRoutingOperationTime)

Operation time and type

object (ItemRoutingOperationTime)

Operation time and type

object (ItemRoutingOperationTime)

Operation time and type

machineTimeTrackingEnabled
boolean

Specifies whether machine tracking is enabled.

object (ItemRoutingOutsideProcessingOperationCost)

Outside processing operation cost

defaultVendorId
string or null = 24 characters

Default vendor id that will be used for this operation. Please reference /api/vendors endpoint.

vendors
Array of strings or null

Available vendors.

leadDays
integer or null <int32> >= 0

Lead days.

instructions
string or null [ 1 .. 2000 ] characters

Instructions.

accountingCodeId
string or null = 24 characters

Accounting code key identifier. Please reference /api/accounting-codes endpoint.

Responses

Request samples

Content type
{
  • "name": "string",
  • "description": "string",
  • "isOutsideProcessing": true,
  • "setupTime": {
    },
  • "laborTime": {
    },
  • "machineTime": {
    },
  • "machineTimeTrackingEnabled": true,
  • "outsideProcessingCost": {
    },
  • "defaultVendorId": "stringstringstringstring",
  • "vendors": [
    ],
  • "leadDays": 0,
  • "instructions": "string",
  • "accountingCodeId": "stringstringstringstring"
}

Response samples

Content type
{
  • "id": "string"
}

Get an operation.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "setupTime": {
    },
  • "laborTime": {
    },
  • "machineTimeTrackingEnabled": true,
  • "machineTime": {
    },
  • "isOutsideProcessing": true,
  • "outsideProcessingCost": {
    },
  • "unattended": true,
  • "defaultVendorId": "stringstringstringstring",
  • "leadDays": 0,
  • "accountingCodeId": "stringstringstringstring",
  • "workCenters": [
    ],
  • "isNestable": true,
  • "instructions": "string",
  • "rates": {
    }
}

Find operations based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter operations based on their name.

modifiedBeforeUtc
string or null <date-time>

Filters operations modified before (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used.

modifiedAfterUtc
string or null <date-time>

Filters operations modified after (exclusive) this parameter in UTC time. If no time component is passed, midnight UTC will be used. Useful for polling incrementally instead of re-syncing every operation.

Responses

Request samples

Content type
{
  • "name": "string",
  • "modifiedBeforeUtc": "2019-08-24T14:15:22Z",
  • "modifiedAfterUtc": "2019-08-24T14:15:22Z"
}

Response samples

Content type
[
  • {
    }
]

Update an operation.

path Parameters
id
required
string = 24 characters
Request Body schema:
required
name
required
string [ 1 .. 200 ] characters

The name of operation.

description
required
string [ 1 .. 200 ] characters

The description of the operation.

isOutsideProcessing
boolean

Specifies whether this is an outside processing operation.

object (ItemRoutingOperationTime)

Operation time and type

object (ItemRoutingOperationTime)

Operation time and type

object (ItemRoutingOperationTime)

Operation time and type

machineTimeTrackingEnabled
boolean

Specifies whether machine tracking is enabled.

object (ItemRoutingOutsideProcessingOperationCost)

Outside processing operation cost

defaultVendorId
string or null = 24 characters

Default vendor id that will be used for this operation. Please reference /api/vendors endpoint.

vendors
Array of strings or null

Available vendors.

leadDays
integer or null <int32> >= 0

Lead days.

instructions
string or null [ 1 .. 2000 ] characters

Instructions.

accountingCodeId
string or null = 24 characters

Accounting code key identifier. Please reference /api/accounting-codes endpoint.

Responses

Request samples

Content type
{
  • "name": "string",
  • "description": "string",
  • "isOutsideProcessing": true,
  • "setupTime": {
    },
  • "laborTime": {
    },
  • "machineTime": {
    },
  • "machineTimeTrackingEnabled": true,
  • "outsideProcessingCost": {
    },
  • "defaultVendorId": "stringstringstringstring",
  • "vendors": [
    ],
  • "leadDays": 0,
  • "instructions": "string",
  • "accountingCodeId": "stringstringstringstring"
}

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "setupTime": {
    },
  • "laborTime": {
    },
  • "machineTimeTrackingEnabled": true,
  • "machineTime": {
    },
  • "isOutsideProcessing": true,
  • "outsideProcessingCost": {
    },
  • "unattended": true,
  • "defaultVendorId": "stringstringstringstring",
  • "leadDays": 0,
  • "accountingCodeId": "stringstringstringstring",
  • "workCenters": [
    ],
  • "isNestable": true,
  • "instructions": "string",
  • "rates": {
    }
}

Payment Term

Create a new payment term

Request Body schema:
required
name
required
string [ 1 .. 200 ] characters

Identifying name. Must be unique.

dueDays
required
integer <int32> >= 0

Due days.

Responses

Request samples

Content type
{
  • "name": "string",
  • "dueDays": 0
}

Response samples

Content type
{
  • "id": "string"
}

Get a payment term.

path Parameters
id
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "name": "string",
  • "dueDays": 0,
  • "deleted": true
}

Find payment terms based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter payment terms based on their name.

Responses

Request samples

Content type
{
  • "name": "string"
}

Response samples

Content type
[
  • {
    }
]

Purchase Order

Create a new draft purchase order

Request Body schema:
required
vendorId
required
string = 24 characters

Vendor Id

type
required
string (PurchaseOrderTypeEnum)
Enum: "standard" "outsideProcessing" "vendorCredit"

Purchase order type

contactId
string or null = 36 characters

Vendor Contact Id; defaults to the Id of the first contact belonging to the input vendor

companyInfoId
string or null = 24 characters

Company Information Id; defaults to primary company info Id

currencyCode
string or null

Currency code override; defaults to vendor currency code override, then the company's primary currency code

object or null

External references associated with this entity.

expectedReceiveDate
string or null <date-time>

PO Expected receipt date

Responses

Request samples

Content type
{
  • "vendorId": "stringstringstringstring",
  • "type": "standard",
  • "contactId": "stringstringstringstringstringstring",
  • "companyInfoId": "stringstringstringstring",
  • "currencyCode": "string",
  • "externalReferences": {
    },
  • "expectedReceiveDate": "2019-08-24T14:15:22Z"
}

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "issueDate": "2019-08-24T14:15:22Z",
  • "earliestReceiveDate": "2019-08-24T14:15:22Z",
  • "orderDate": "2019-08-24T14:15:22Z",
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z",
  • "vendorId": "stringstringstringstring",
  • "contactId": "stringstringstringstring",
  • "paymentTermsId": "stringstringstringstring",
  • "paymentTerms": {
    },
  • "type": "standard",
  • "status": "draft",
  • "receivingStatus": "notReceived",
  • "vendorCredit": 0.1,
  • "discount": 0.1,
  • "subTotal": 0.1,
  • "total": 0.1,
  • "companyInfoId": "stringstringstringstring",
  • "vendorNote": "string",
  • "notes": [
    ],
  • "externalReferences": {
    },
  • "customFields": {
    },
  • "deleted": true,
  • "currencyCode": "string",
  • "vendorOrderNumber": "string",
  • "jobReferences": [
    ]
}

Delete a specific purchase order

path Parameters
purchaseOrderId
required
string = 24 characters

Responses

Get a specific purchase order

path Parameters
purchaseOrderId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "issueDate": "2019-08-24T14:15:22Z",
  • "earliestReceiveDate": "2019-08-24T14:15:22Z",
  • "orderDate": "2019-08-24T14:15:22Z",
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z",
  • "vendorId": "stringstringstringstring",
  • "contactId": "stringstringstringstring",
  • "paymentTermsId": "stringstringstringstring",
  • "paymentTerms": {
    },
  • "type": "standard",
  • "status": "draft",
  • "receivingStatus": "notReceived",
  • "vendorCredit": 0.1,
  • "discount": 0.1,
  • "subTotal": 0.1,
  • "total": 0.1,
  • "companyInfoId": "stringstringstringstring",
  • "vendorNote": "string",
  • "notes": [
    ],
  • "externalReferences": {
    },
  • "customFields": {
    },
  • "deleted": true,
  • "currencyCode": "string",
  • "vendorOrderNumber": "string",
  • "jobReferences": [
    ]
}

Partially update a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "issueDate": "2019-08-24T14:15:22Z",
  • "earliestReceiveDate": "2019-08-24T14:15:22Z",
  • "orderDate": "2019-08-24T14:15:22Z",
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z",
  • "vendorId": "stringstringstringstring",
  • "contactId": "stringstringstringstring",
  • "paymentTermsId": "stringstringstringstring",
  • "paymentTerms": {
    },
  • "type": "standard",
  • "status": "draft",
  • "receivingStatus": "notReceived",
  • "vendorCredit": 0.1,
  • "discount": 0.1,
  • "subTotal": 0.1,
  • "total": 0.1,
  • "companyInfoId": "stringstringstringstring",
  • "vendorNote": "string",
  • "notes": [
    ],
  • "externalReferences": {
    },
  • "customFields": {
    },
  • "deleted": true,
  • "currencyCode": "string",
  • "vendorOrderNumber": "string",
  • "jobReferences": [
    ]
}

Update a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
Request Body schema:
required
object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

vendorNote
string or null [ 1 .. 2000 ] characters

The vendor note is a string property that represents a note provided to the vendor.

vendorOrderNumber
string or null

Vendor order number associated to a third party system.

expectedReceiveDate
string or null <date-time>

PO Expected receipt date (UTC)

promiseDate
string or null <date-time>

PO Promise date (UTC).

Responses

Request samples

Content type
{
  • "externalReferences": {
    },
  • "vendorNote": "string",
  • "vendorOrderNumber": "string",
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z"
}

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "issueDate": "2019-08-24T14:15:22Z",
  • "earliestReceiveDate": "2019-08-24T14:15:22Z",
  • "orderDate": "2019-08-24T14:15:22Z",
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z",
  • "vendorId": "stringstringstringstring",
  • "contactId": "stringstringstringstring",
  • "paymentTermsId": "stringstringstringstring",
  • "paymentTerms": {
    },
  • "type": "standard",
  • "status": "draft",
  • "receivingStatus": "notReceived",
  • "vendorCredit": 0.1,
  • "discount": 0.1,
  • "subTotal": 0.1,
  • "total": 0.1,
  • "companyInfoId": "stringstringstringstring",
  • "vendorNote": "string",
  • "notes": [
    ],
  • "externalReferences": {
    },
  • "customFields": {
    },
  • "deleted": true,
  • "currencyCode": "string",
  • "vendorOrderNumber": "string",
  • "jobReferences": [
    ]
}

Download the PDF for a purchase order

The document is rendered when you call this, from the order's current state and the tenant's PDFs & Emails settings, so it is the same document the product's Download button produces rather than a stored copy of one sent earlier. The file name derives from the tenant's purchase-order title template with "Purchase Order" abbreviated to "PO" and spaces removed, so the default template yields PO104.pdf for an ordered purchase order and RFQ104.pdf for one still in Draft. The title printed inside the document keeps its spacing; only the file name is squashed. The printed line rows reflect the tenant's line-consolidation setting: with it on, stored part lines that agree on item, unit price after discount, expected receive date and the item's custom unit-of-measure multiplier print as one row carrying their summed quantity, their combined subtotal and each stored line's number, so the document may show fewer rows than the order holds. Outside processing lines consolidate on item, price and expected receive date.

path Parameters
purchaseOrderId
required
string = 24 characters

Responses

Find purchase orders based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
numbers
Array of integers or null <int32> [ 1 .. 500 ] items [ items <int32 > ]

Filter purchase orders to only given numbers

status
string (PurchaseOrderStatusEnum)
Enum: "draft" "needsApproval" "approved" "ordered" "paid" "cancelled"

Purchase order status

receivingStatus
string (PurchaseOrderReceivingStatusEnum)
Enum: "notReceived" "partiallyReceived" "received"

Purchase order receipt status

object (CommonExternalReferenceFindDto)

Search parameter for identifier record(s) via their external identifiers.

includeReceiptData
boolean

If set to true, receipt data will be included in the results

vendorId
string or null = 24 characters

The vendor id.

jobId
string or null = 24 characters

Filter to purchase orders associated with this job — associated with the order itself, allocated to one of its part line items, or carried by an outside-processing line item.

Responses

Request samples

Content type
{
  • "numbers": [
    ],
  • "status": "draft",
  • "receivingStatus": "notReceived",
  • "externalReference": {
    },
  • "includeReceiptData": true,
  • "vendorId": "stringstringstringstring",
  • "jobId": "stringstringstringstring"
}

Response samples

Content type
[
  • {
    }
]

Update a purchase order status

path Parameters
purchaseOrderId
required
string = 24 characters
Request Body schema:
required
status
required
string (PurchaseOrderStatusEnum)
Enum: "draft" "needsApproval" "approved" "ordered" "paid" "cancelled"

Purchase order status

paidDate
string or null <date-time>

The date that the purchase order was paid. Should be provided in UTC. Will default to current date/time if not provided when applicable.

Responses

Request samples

Content type
{
  • "status": "draft",
  • "paidDate": "2019-08-24T14:15:22Z"
}

Purchase Order Custom Fields

Update (selectively) custom fields on a purchase order

path Parameters
id
required
string = 24 characters

The purchase order identifier

Request Body schema:
required

The custom fields to update

object

The custom fields

property name*
additional property
any

Responses

Request samples

Content type
{
  • "customFields": {
    }
}

Response samples

Content type
{
  • "customFields": {
    }
}

Update (selectively) custom fields on a purchase order

path Parameters
id
required
string = 24 characters

The purchase order identifier

Request Body schema:
required

The custom fields to update

object

The custom fields

property name*
additional property
any

Responses

Request samples

Content type
{
  • "customFields": {
    }
}

Response samples

Content type
{
  • "customFields": {
    }
}

Purchase Order Discount Line Item

Get the discount line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "isPercentage": true,
  • "amount": 0.1,
  • "externalReferences": {
    },
  • "number": 0,
  • "accountingDetails": {
    },
  • "price": 0.1
}

Purchase Order Fee Line Item

Create a fee line item on a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
Request Body schema:
required
name
string or null [ 1 .. 200 ] characters

Verbose name for this entity.

description
string or null [ 1 .. 200 ] characters

Verbose description for this entity.

quantity
number or null <double> >= 0

The line item quantity. Required for receivable line items.

price
required
number <double> >= 0

The line item unit price.

isReceivable
boolean or null

Dictate if this fee is receivable. If not provided, defaults to false.

accountingCodeId
string or null = 24 characters

Accounting code key identifier. Please reference /api/accounting-codes endpoint.

unitOfMeasure
string (CommonEnumLineItemUomEnum)
Enum: "notApplicable" "piece" "linearFeet" "hour" "yard"

Line item unit of measure.

isTaxable
boolean or null

Dictate if this fee is taxable. If not provided, defaults to false.

taxCodeId
string or null = 24 characters

Tax code key identifier. Please reference /api/tax-rates endpoint.

taxRate
number or null <double> >= 0

Tax code to use for this entity. If a FulcrumProduct.PublicApi.Dto.PurchaseOrder.FeeLineItem.FeeLineItemCreateDto.TaxCodeId is provided, the provided FulcrumProduct.PublicApi.Dto.PurchaseOrder.FeeLineItem.FeeLineItemCreateDto.TaxRate will supercede the defined tax rate.

overrideTaxRate
boolean or null

Indicate if the tax supplied is intended to be an override.

object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

Responses

Request samples

Content type
{
  • "name": "string",
  • "description": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "isReceivable": true,
  • "accountingCodeId": "stringstringstringstring",
  • "unitOfMeasure": "notApplicable",
  • "isTaxable": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "overrideTaxRate": true,
  • "externalReferences": {
    }
}

Response samples

Content type
{
  • "id": "string"
}

Delete a fee line item on a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Get a specific fee line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "unitOfMeasure": "notApplicable",
  • "accountingCodeId": "stringstringstringstring",
  • "isTaxable": true,
  • "isReceivable": true,
  • "overrideTaxRate": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "externalReferences": {
    },
  • "number": 0,
  • "accountingDetails": {
    }
}

Partially update a specific fee line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "unitOfMeasure": "notApplicable",
  • "accountingCodeId": "stringstringstringstring",
  • "isTaxable": true,
  • "isReceivable": true,
  • "overrideTaxRate": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "externalReferences": {
    },
  • "number": 0,
  • "accountingDetails": {
    }
}

Update a specific fee line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema:
required
name
string or null [ 1 .. 200 ] characters

Verbose name for this entity.

description
string or null [ 1 .. 200 ] characters

Verbose description for this entity.

quantity
number or null <double> >= 0

The line item quantity. Required for receivable line items.

price
required
number <double> >= 0

The line item price.

accountingCodeId
string or null = 24 characters

Accounting code key identifier. Please reference /api/accounting-codes endpoint.

unitOfMeasure
string (CommonEnumLineItemUomEnum)
Enum: "notApplicable" "piece" "linearFeet" "hour" "yard"

Line item unit of measure.

isReceivable
boolean or null

Dictate if this fee is receivable. If not provided, defaults to false.

isTaxable
boolean or null

Dictate if this fee is taxable. If not provided, defaults to false.

taxCodeId
string or null = 24 characters

Tax code key identifier. Please reference /api/tax-rates endpoint.

taxRate
number or null <double> >= 0

Tax code to use for this entity. If a FulcrumProduct.PublicApi.Dto.PurchaseOrder.FeeLineItem.FeeLineItemUpdateDto.TaxCodeId is provided, the provided FulcrumProduct.PublicApi.Dto.PurchaseOrder.FeeLineItem.FeeLineItemUpdateDto.TaxRate will supercede the defined tax rate.

overrideTaxRate
boolean or null

Indicate if the tax supplied is intended to be an override.

object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

Responses

Request samples

Content type
{
  • "name": "string",
  • "description": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "accountingCodeId": "stringstringstringstring",
  • "unitOfMeasure": "notApplicable",
  • "isReceivable": true,
  • "isTaxable": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "overrideTaxRate": true,
  • "externalReferences": {
    }
}

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "unitOfMeasure": "notApplicable",
  • "accountingCodeId": "stringstringstringstring",
  • "isTaxable": true,
  • "isReceivable": true,
  • "overrideTaxRate": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "externalReferences": {
    },
  • "number": 0,
  • "accountingDetails": {
    }
}

Get a list of fee lines items for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Get tax allocations for a specific fee line item on a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "appliedTaxes": [
    ],
  • "totalTax": 0.1
}

Purchase Order Line Item

Get a specific line item for a purchase order of generic type

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "type": "part",
  • "price": 0.1,
  • "discountedPrice": 0.1,
  • "name": "string",
  • "description": "string",
  • "quantity": 0.1,
  • "externalReferences": {
    },
  • "accountingCodeId": "stringstringstringstring",
  • "taxCodeId": "stringstringstringstring",
  • "isTaxable": true,
  • "lineItemId": "string",
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "subTotal": 0.1,
  • "preDiscountSubTotal": 0.1,
  • "isPercentageDiscount": true,
  • "discountAmount": 0.1,
  • "number": 0,
  • "accountingDetails": {
    }
}

Get a list of lines items for a purchase order, regardless of type

path Parameters
purchaseOrderId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Get tax allocations for a specific line item on a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "appliedTaxes": [
    ],
  • "totalTax": 0.1
}

Purchase Order Outside Processing Line Item

Create an outside processing line item on a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
Request Body schema:
required
jobId
required
string = 24 characters

Job id associated with this line item.

operationId
required
string = 36 characters

Operation id associated with this line item.

quantity
number or null <double> >= 0

The line item quantity. If not provided, defaults to Job operation QuantityToMake

price
number or null <double> >= 0

The line item unit price. If not provided, defaults to price data stored on Job operation.

expectedReceiveDate
string or null <date-time>

Expected receipt date for this line item.

promiseDate
string or null <date-time>

Promise date (UTC).

Responses

Request samples

Content type
{
  • "jobId": "stringstringstringstring",
  • "operationId": "stringstringstringstringstringstring",
  • "quantity": 0.1,
  • "price": 0.1,
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z"
}

Response samples

Content type
{
  • "id": "string"
}

Delete an outside processing line item on a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Get a specific outside processing line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "jobId": "stringstringstringstring",
  • "operationId": "stringstringstringstringstringstring",
  • "itemId": "stringstringstringstring",
  • "isTaxable": true,
  • "accountingCodeId": "stringstringstringstring",
  • "description": "string",
  • "receivedStatus": "open",
  • "externalReferences": {
    },
  • "number": 0,
  • "accountingDetails": {
    },
  • "customFields": {
    },
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z"
}

Partially update a specific outside processing line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "jobId": "stringstringstringstring",
  • "operationId": "stringstringstringstringstringstring",
  • "itemId": "stringstringstringstring",
  • "isTaxable": true,
  • "accountingCodeId": "stringstringstringstring",
  • "description": "string",
  • "receivedStatus": "open",
  • "externalReferences": {
    },
  • "number": 0,
  • "accountingDetails": {
    },
  • "customFields": {
    },
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z"
}

Update a specific outside processing line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema:
required
quantity
number or null <double> >= 0

The line item quantity

price
number or null <double> >= 0

The line item price.

object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

expectedReceiveDate
string or null <date-time>

Expected receipt date for this line item.

promiseDate
string or null <date-time>

Promise date (UTC).

Responses

Request samples

Content type
{
  • "quantity": 0.1,
  • "price": 0.1,
  • "externalReferences": {
    },
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z"
}

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "jobId": "stringstringstringstring",
  • "operationId": "stringstringstringstringstringstring",
  • "itemId": "stringstringstringstring",
  • "isTaxable": true,
  • "accountingCodeId": "stringstringstringstring",
  • "description": "string",
  • "receivedStatus": "open",
  • "externalReferences": {
    },
  • "number": 0,
  • "accountingDetails": {
    },
  • "customFields": {
    },
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z"
}

Get a list of outside processing lines items for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Get tax allocations for a specific outside processing line item on a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "appliedTaxes": [
    ],
  • "totalTax": 0.1
}

Purchase Order Part Line Item

Create a part line item on a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
Request Body schema:
required
itemId
required
string = 24 characters

Item id associated with this line item.

quantity
number <double> >= 0

The line item quantity

price
number or null <double> >= 0

The line item unit price. Defaults to item's vendor price, if not provided.

isTaxExempt
boolean or null

Dictate if this line item is tax exempt. Defaults to item details, if not provided.

expectedReceiveDate
string or null <date-time>

Expected receipt date for this line item.

promiseDate
string or null <date-time>

Promise date (UTC).

Responses

Request samples

Content type
{
  • "itemId": "stringstringstringstring",
  • "quantity": 0.1,
  • "price": 0.1,
  • "isTaxExempt": true,
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z"
}

Response samples

Content type
{
  • "id": "string"
}

Delete a part line item on a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Get a specific part line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "discountedPrice": 0.1,
  • "itemId": "stringstringstringstring",
  • "isTaxable": true,
  • "overrideTaxRate": true,
  • "description": "string",
  • "accountingCodeId": "stringstringstringstring",
  • "receivedStatus": "open",
  • "convertedQuantity": 0.1,
  • "subTotal": 0.1,
  • "preDiscountSubTotal": 0.1,
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z",
  • "notes": "string",
  • "externalReferences": {
    },
  • "customFieldData": {
    },
  • "customFields": {
    },
  • "isPercentageDiscount": true,
  • "discountAmount": 0.1,
  • "vendorPartNumber": "string",
  • "vendorPartDescription": "string",
  • "vendorNote": "string",
  • "number": 0,
  • "accountingDetails": {
    },
  • "isInventoried": true,
  • "jobIds": [
    ]
}

Partially update a specific part line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "discountedPrice": 0.1,
  • "itemId": "stringstringstringstring",
  • "isTaxable": true,
  • "overrideTaxRate": true,
  • "description": "string",
  • "accountingCodeId": "stringstringstringstring",
  • "receivedStatus": "open",
  • "convertedQuantity": 0.1,
  • "subTotal": 0.1,
  • "preDiscountSubTotal": 0.1,
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z",
  • "notes": "string",
  • "externalReferences": {
    },
  • "customFieldData": {
    },
  • "customFields": {
    },
  • "isPercentageDiscount": true,
  • "discountAmount": 0.1,
  • "vendorPartNumber": "string",
  • "vendorPartDescription": "string",
  • "vendorNote": "string",
  • "number": 0,
  • "accountingDetails": {
    },
  • "isInventoried": true,
  • "jobIds": [
    ]
}

Update a specific part line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema:
required
quantity
required
number <double> >= 0

The line item quantity

price
number or null <double> >= 0

The line item unit price. Defaults to item's vendor price, if not provided.

isTaxExempt
boolean or null

Override tax exempt status of the part line item, if present.

object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

vendorNote
string or null [ 1 .. 2000 ] characters

Notes intended for the vendor for this part line item

expectedReceiveDate
string or null <date-time>

Expected receipt date (UTC)

promiseDate
string or null <date-time>

Promise date (UTC).

Responses

Request samples

Content type
{
  • "quantity": 0.1,
  • "price": 0.1,
  • "isTaxExempt": true,
  • "externalReferences": {
    },
  • "vendorNote": "string",
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z"
}

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "discountedPrice": 0.1,
  • "itemId": "stringstringstringstring",
  • "isTaxable": true,
  • "overrideTaxRate": true,
  • "description": "string",
  • "accountingCodeId": "stringstringstringstring",
  • "receivedStatus": "open",
  • "convertedQuantity": 0.1,
  • "subTotal": 0.1,
  • "preDiscountSubTotal": 0.1,
  • "expectedReceiveDate": "2019-08-24T14:15:22Z",
  • "promiseDate": "2019-08-24T14:15:22Z",
  • "notes": "string",
  • "externalReferences": {
    },
  • "customFieldData": {
    },
  • "customFields": {
    },
  • "isPercentageDiscount": true,
  • "discountAmount": 0.1,
  • "vendorPartNumber": "string",
  • "vendorPartDescription": "string",
  • "vendorNote": "string",
  • "number": 0,
  • "accountingDetails": {
    },
  • "isInventoried": true,
  • "jobIds": [
    ]
}

Get a list of part line items for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Get tax allocations for a specific part line item on a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "appliedTaxes": [
    ],
  • "totalTax": 0.1
}

Purchase Order Tax Line Item

Get a specific tax line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "description": "string",
  • "taxCodeId": "stringstringstringstring",
  • "code": "string",
  • "taxRate": 0.1,
  • "externalReferences": {
    },
  • "price": 0.1,
  • "taxCodeEditable": true,
  • "number": 0,
  • "accountingDetails": {
    }
}

Get a list of tax lines items for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Purchase Order Vendor Credit Line Item

Get a specific vendor credit line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "quantity": 0.1,
  • "vendorCredit": 0.1,
  • "itemId": "stringstringstringstring",
  • "purchaseOrderId": "stringstringstringstringstringstring",
  • "lineItemId": "stringstringstringstringstringstring",
  • "description": "string",
  • "externalReferences": {
    },
  • "accountingCodeId": "stringstringstringstring",
  • "number": 0,
  • "accountingDetails": {
    }
}

Partially update a specific vendor credit line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "quantity": 0.1,
  • "vendorCredit": 0.1,
  • "itemId": "stringstringstringstring",
  • "purchaseOrderId": "stringstringstringstringstringstring",
  • "lineItemId": "stringstringstringstringstringstring",
  • "description": "string",
  • "externalReferences": {
    },
  • "accountingCodeId": "stringstringstringstring",
  • "number": 0,
  • "accountingDetails": {
    }
}

Update a specific vendor credit line item for a purchase order

path Parameters
purchaseOrderId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema:
required
object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

additional property
object (CommonExternalReferenceDto)

The external reference for entities that implement FulcrumProduct.Domain.Common.IHasExternalReferences

type
string or null [ 0 .. 50 ] characters

Specifies the type of this identifier.

externalId
required
string [ 0 .. 500 ] characters

The external identifier

displayId
string or null [ 0 .. 500 ] characters

The id/number that a human sees. For a quote, this might be 'Q1000'. If this is null, the display will fall back to the ExternalId

status
string or null

A status for the external reference

url
string or null

An external url for the reference

modifiedUtc
string or null <date-time>

Date the external reference was modified

lastSyncedUtc
string or null <date-time>

Date the external system last successfully synced this reference. Set by integrations on successful sync only; null means never synced or that the sync timestamp isn't maintained by the integration.

Responses

Request samples

Content type
{
  • "externalReferences": {
    }
}

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "quantity": 0.1,
  • "vendorCredit": 0.1,
  • "itemId": "stringstringstringstring",
  • "purchaseOrderId": "stringstringstringstringstringstring",
  • "lineItemId": "stringstringstringstringstringstring",
  • "description": "string",
  • "externalReferences": {
    },
  • "accountingCodeId": "stringstringstringstring",
  • "number": 0,
  • "accountingDetails": {
    }
}

Get a list of vendor credit line items for a specific purchase order

path Parameters
purchaseOrderId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Quote

Convert a quote to a sales order

path Parameters
quoteId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "string"
}

TO BE REMOVED 06/30/2025 - Create a new draft quote Deprecated

Please use provided route instead ==> quotes

Request Body schema:
required
customerId
required
string = 24 characters

The id of the customer to be created

object (CommonAddressCreateDto)

Address with additional context

object (CommonAddressCreateDto)

Address with additional context

object (CustomerContactCreateDto)

A customer contact

object or null

Arbitrary key-value-pair like data that can be used to later on search for the Quote

salesPersonId
string or null = 24 characters

Sales Person identifier. Please reference /api/users endpoint. If not provided, the salesperson defined on the customer will be used.

object (FulcrumProDomainReference)
opportunity
string or null

CRM Opportunity identifier.

notesToCustomer
string or null [ 1 .. 2000 ] characters

A field for the seller to provide additional details or instructions for the customer relating to the order.

Responses

Request samples

Content type
{
  • "customerId": "stringstringstringstring",
  • "billingAddress": {
    },
  • "shippingAddress": {
    },
  • "contact": {
    },
  • "externalReferences": {
    },
  • "salesPersonId": "stringstringstringstring",
  • "crmOpportunity": {
    },
  • "opportunity": "string",
  • "notesToCustomer": "string"
}

Response samples

Content type
{
  • "id": "string"
}

Create a new draft quote

Request Body schema:
required
customerId
required
string = 24 characters

The id of the customer to be created

object (CommonAddressCreateDto)

Address with additional context

object (CommonAddressCreateDto)

Address with additional context

object (CustomerContactCreateDto)

A customer contact

object or null

Arbitrary key-value-pair like data that can be used to later on search for the Quote

salesPersonId
string or null = 24 characters

Sales Person identifier. Please reference /api/users endpoint. If not provided, the salesperson defined on the customer will be used.

object (FulcrumProDomainReference)
opportunity
string or null

CRM Opportunity identifier.

notesToCustomer
string or null [ 1 .. 2000 ] characters

A field for the seller to provide additional details or instructions for the customer relating to the order.

Responses

Request samples

Content type
{
  • "customerId": "stringstringstringstring",
  • "billingAddress": {
    },
  • "shippingAddress": {
    },
  • "contact": {
    },
  • "externalReferences": {
    },
  • "salesPersonId": "stringstringstringstring",
  • "crmOpportunity": {
    },
  • "opportunity": "string",
  • "notesToCustomer": "string"
}

Response samples

Content type
{
  • "id": "string"
}

TO BE REMOVED 06/30/2025 - Delete a specific Quote Deprecated

Please use provided route instead ==> quotes/{quoteId}

path Parameters
quoteId
required
string = 24 characters

Responses

Delete a specific Quote

path Parameters
quoteId
required
string = 24 characters

Responses

Get a specific Quote

path Parameters
quoteId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "customerId": "stringstringstringstring",
  • "quotedDate": "2019-08-24T14:15:22Z",
  • "status": "open",
  • "externalReferences": {
    },
  • "totalInPrimaryCurrency": 0.1,
  • "currencyInfo": {
    },
  • "customFields": {
    },
  • "opportunity": "string",
  • "salesPersonId": "stringstringstringstring",
  • "billingAddress": {
    },
  • "shippingAddresses": [
    ],
  • "companyId": "stringstringstringstring",
  • "paymentTermsId": "stringstringstringstring",
  • "paymentTerms": {
    },
  • "createdUtc": "2019-08-24T14:15:22Z",
  • "notesToCustomer": "string"
}

Partially update a quote

path Parameters
quoteId
required
string = 24 characters
Request Body schema: application/json-patch+json
Array
op
string
value
string
path
string

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "customerId": "stringstringstringstring",
  • "quotedDate": "2019-08-24T14:15:22Z",
  • "status": "open",
  • "externalReferences": {
    },
  • "totalInPrimaryCurrency": 0.1,
  • "currencyInfo": {
    },
  • "customFields": {
    },
  • "opportunity": "string",
  • "salesPersonId": "stringstringstringstring",
  • "billingAddress": {
    },
  • "shippingAddresses": [
    ],
  • "companyId": "stringstringstringstring",
  • "paymentTermsId": "stringstringstringstring",
  • "paymentTerms": {
    },
  • "createdUtc": "2019-08-24T14:15:22Z",
  • "notesToCustomer": "string"
}

Update a quote

path Parameters
quoteId
required
string = 24 characters
Request Body schema:
required
object (CommonAddressCreateDto)

Address with additional context

object or null

Arbitrary key-value-pair like data that can be used to later on search for the Quote

opportunity
string or null

CRM Opportunity identifier.

salesPersonId
string or null = 24 characters

Sales Person identifier. Please reference /api/users endpoint.

notesToCustomer
string or null [ 1 .. 2000 ] characters

A field for the seller to provide additional details or instructions for the customer relating to the order.

Responses

Request samples

Content type
{
  • "billingAddress": {
    },
  • "externalReferences": {
    },
  • "opportunity": "string",
  • "salesPersonId": "stringstringstringstring",
  • "notesToCustomer": "string"
}

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "number": 0,
  • "customerId": "stringstringstringstring",
  • "quotedDate": "2019-08-24T14:15:22Z",
  • "status": "open",
  • "externalReferences": {
    },
  • "totalInPrimaryCurrency": 0.1,
  • "currencyInfo": {
    },
  • "customFields": {
    },
  • "opportunity": "string",
  • "salesPersonId": "stringstringstringstring",
  • "billingAddress": {
    },
  • "shippingAddresses": [
    ],
  • "companyId": "stringstringstringstring",
  • "paymentTermsId": "stringstringstringstring",
  • "paymentTerms": {
    },
  • "createdUtc": "2019-08-24T14:15:22Z",
  • "notesToCustomer": "string"
}

Find quotes based on search parameters.

query Parameters
Sort.Field
string non-empty

Sort field

Sort.Dir
string (CommonEnumSortDirectionEnum)
Enum: "ascending" "descending"

Sort direction

Skip
integer <int32> >= 0

Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page through a result set larger than one page.

Take
integer <int32> [ 0 .. 5000 ]

Number of records to return. Validation accepts 0 through 5000, but 0 is not a page size and what an endpoint does with it varies, so send a value from 1 to 5000.

Two cases differ. A request that supplies paging but leaves this field out takes this field's default of 50. A request that supplies no paging at all is endpoint-specific — some define their own fallback — so it does not reliably mean any particular number of records. Either way the response says nothing about records it did not return, so send this explicitly whenever the size of the answer matters. Endpoints returning a paged envelope report totalCount and hasNextPage alongside the records; endpoints returning a bare array report neither, so page those with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.

Request Body schema:
numbers
Array of integers or null <int32> [ 1 .. 500 ] items [ items <int32 > ]

Filter quotes to only given numbers

object (CommonExternalReferenceFindDto)

Search parameter for identifier record(s) via their external identifiers.

status
string (DtoQuotesStatus)
Enum: "open" "draft" "needsApproval" "approved" "sent" "won" "lost"

Quotes status

modifiedAfterUtc
string or null <date-time>

Filter to quote records modified after the given datetime (in UTC)

Responses

Request samples

Content type
{
  • "numbers": [
    ],
  • "externalReference": {
    },
  • "status": "open",
  • "modifiedAfterUtc": "2019-08-24T14:15:22Z"
}

Response samples

Content type
[
  • {
    }
]

Update a quote status

path Parameters
quoteId
required
string = 24 characters
Request Body schema:
required
status
required
string (DtoQuoteUpdateQuotesStatus)
Enum: "draft" "needsApproval" "approved" "sent" "won" "lost"

Statuses you can update a quote too

Responses

Request samples

Content type
{
  • "status": "draft"
}

Quote Custom Fields

Update (selectively) custom fields on a quote

path Parameters
id
required
string = 24 characters

The quote identifier

Request Body schema:
required

The custom fields to update

object

The custom fields

property name*
additional property
any

Responses

Request samples

Content type
{
  • "customFields": {
    }
}

Response samples

Content type
{
  • "customFields": {
    }
}

Update (selectively) custom fields on a quote

path Parameters
id
required
string = 24 characters

The quote identifier

Request Body schema:
required

The custom fields to update

object

The custom fields

property name*
additional property
any

Responses

Request samples

Content type
{
  • "customFields": {
    }
}

Response samples

Content type
{
  • "customFields": {
    }
}

Quote Discount Line Item

Delete the discount line item for a Quote

path Parameters
quoteId
required
string = 24 characters

Responses

Get the discount line item for a quote

path Parameters
quoteId
required
string = 24 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "isPercentage": true,
  • "amount": 0.1,
  • "number": 0,
  • "accountingDetails": {
    }
}

Update the discount line item for a quote

path Parameters
quoteId
required
string = 24 characters
Request Body schema:
required
name
required
string [ 1 .. 200 ] characters

The name of the discount line.

description
string or null [ 0 .. 2000 ] characters

The description of the discount line.

isPercentage
required
boolean

Indicates whether "Amount" value is percentage based or an absolute amount.

amount
required
number <double> >= 0

The amount of the discount.

Responses

Request samples

Content type
{
  • "name": "string",
  • "description": "string",
  • "isPercentage": true,
  • "amount": 0.1
}

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "isPercentage": true,
  • "amount": 0.1,
  • "number": 0,
  • "accountingDetails": {
    }
}

Quote Fee Line Item

Create a fee line item on a Quote

path Parameters
quoteId
required
string = 24 characters
Request Body schema:
required
name
string or null [ 1 .. 200 ] characters

Verbose name for this entity.

description
string or null [ 0 .. 2000 ] characters

Verbose description for this entity.

quantity
number or null <double> >= 0

The line item quantity

price
required
number <double> >= 0

The line item price.

accountingCodeId
string or null = 24 characters

Accounting code key identifier. Please reference /api/accounting-codes endpoint.

unitOfMeasure
string (CommonEnumLineItemUomEnum)
Enum: "notApplicable" "piece" "linearFeet" "hour" "yard"

Line item unit of measure.

isTaxable
boolean or null

Dictate if this fee is taxable.

taxCodeId
string or null = 24 characters

Tax code key identifier.

taxRate
number or null <double> >= 0

Tax code to use for this entity. If a FulcrumProduct.PublicApi.Dto.Quote.FeeLineItem.QuoteFeeLineItemCreateDto.TaxCodeId is provided, the provided FulcrumProduct.PublicApi.Dto.Quote.FeeLineItem.QuoteFeeLineItemCreateDto.TaxRate will supercede the defined tax rate.

overrideTaxRate
boolean or null

Indicate if the tax supplied is intended to be an override.

object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

Responses

Request samples

Content type
{
  • "name": "string",
  • "description": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "accountingCodeId": "stringstringstringstring",
  • "unitOfMeasure": "notApplicable",
  • "isTaxable": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "overrideTaxRate": true,
  • "externalReferences": {
    }
}

Response samples

Content type
{
  • "id": "string"
}

Delete a specific fee line item for a Quote

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Get a specific fee line item for a Quote

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "unitOfMeasure": "notApplicable",
  • "isTaxable": true,
  • "overrideTaxRate": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "number": 0,
  • "accountingDetails": {
    },
  • "accountingCodeId": "stringstringstringstring"
}

Update a specific fee line item for a Quote

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema:
required
name
string or null [ 1 .. 200 ] characters

Verbose name for this entity.

description
string or null [ 0 .. 2000 ] characters

Verbose description for this entity.

quantity
number or null <double> >= 0

The line item quantity

price
required
number <double> >= 0

The line item price.

accountingCodeId
string or null = 24 characters

Accounting code key identifier. Please reference /api/accounting-codes endpoint.

unitOfMeasure
string (CommonEnumLineItemUomEnum)
Enum: "notApplicable" "piece" "linearFeet" "hour" "yard"

Line item unit of measure.

isTaxable
boolean or null

Dictate if this fee is taxable.

taxCodeId
string or null = 24 characters

Tax code key identifier. Please reference /api/tax-rates endpoint

taxRate
number or null <double> >= 0

Tax code to use for this entity. If a FulcrumProduct.PublicApi.Dto.Quote.FeeLineItem.QuoteFeeLineItemUpdateDto.TaxCodeId is provided, the provided FulcrumProduct.PublicApi.Dto.Quote.FeeLineItem.QuoteFeeLineItemUpdateDto.TaxRate will supercede the defined tax rate.

overrideTaxRate
boolean or null

Indicate if the tax supplied is intended to be an override.

object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

Responses

Request samples

Content type
{
  • "name": "string",
  • "description": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "accountingCodeId": "stringstringstringstring",
  • "unitOfMeasure": "notApplicable",
  • "isTaxable": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "overrideTaxRate": true,
  • "externalReferences": {
    }
}

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "description": "string",
  • "quantity": 0.1,
  • "price": 0.1,
  • "unitOfMeasure": "notApplicable",
  • "isTaxable": true,
  • "overrideTaxRate": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "number": 0,
  • "accountingDetails": {
    },
  • "accountingCodeId": "stringstringstringstring"
}

Get a list of fee lines items for a Quote

path Parameters
quoteId
required
string = 24 characters

Responses

Response samples

Content type
[
  • {
    }
]

Quote Part Line Item

Create a part line item on a Quote

path Parameters
quoteId
required
string = 24 characters
Request Body schema:
required
itemId
required
string = 24 characters

Item id associated with this line item.

quantity
number <double> >= 0

The line item quantity

price
number <double> >= 0

The line item price.

description
string or null [ 0 .. 2000 ] characters

The part line item description. Defaults to the item's description if none specified.

internalNotes
string or null [ 1 .. 2000 ] characters

The line item internal notes

itemNotes
string or null [ 1 .. 2000 ] characters

The line item notes.

isTaxable
boolean or null

Dictate if this line item is taxable.

taxCodeId
string or null = 24 characters

Tax code key identifier. Please reference /api/tax-rates endpoint.

taxRate
number or null <double> >= 0

Tax rate to use for this entity. If a FulcrumProduct.PublicApi.Dto.Quote.PartLineItem.QuotePartLineItemCreateDto.TaxCodeId is provided, the provided FulcrumProduct.PublicApi.Dto.Quote.PartLineItem.QuotePartLineItemCreateDto.TaxRate will supercede the defined tax rate.

overrideTaxRate
boolean or null

Indicate if the tax supplied is intended to be an override.

object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

isPercentageDiscount
boolean or null

Indicates whether FulcrumProduct.PublicApi.Dto.Quote.PartLineItem.QuotePartLineItemCreateDto.DiscountAmount discount is percentage based (else, it's an absolute amount).

discountAmount
number or null <double>

The amount of the discount.

accountingCodeId
string or null = 24 characters

Accounting code key identifier. Please reference /api/accounting-codes endpoint.

Responses

Request samples

Content type
{
  • "itemId": "stringstringstringstring",
  • "quantity": 0.1,
  • "price": 0.1,
  • "description": "string",
  • "internalNotes": "string",
  • "itemNotes": "string",
  • "isTaxable": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "overrideTaxRate": true,
  • "externalReferences": {
    },
  • "isPercentageDiscount": true,
  • "discountAmount": 0.1,
  • "accountingCodeId": "stringstringstringstring"
}

Response samples

Content type
{
  • "id": "string"
}

Create one or more part line items on a quote

path Parameters
quoteId
required
string = 24 characters
Request Body schema:
required
required
Array of objects (QuotePartLineItemCreateDto)

The line items to add to a sales order.

Array
itemId
required
string = 24 characters

Item id associated with this line item.

quantity
number <double> >= 0

The line item quantity

price
number <double> >= 0

The line item price.

description
string or null [ 0 .. 2000 ] characters

The part line item description. Defaults to the item's description if none specified.

internalNotes
string or null [ 1 .. 2000 ] characters

The line item internal notes

itemNotes
string or null [ 1 .. 2000 ] characters

The line item notes.

isTaxable
boolean or null

Dictate if this line item is taxable.

taxCodeId
string or null = 24 characters

Tax code key identifier. Please reference /api/tax-rates endpoint.

taxRate
number or null <double> >= 0

Tax rate to use for this entity. If a FulcrumProduct.PublicApi.Dto.Quote.PartLineItem.QuotePartLineItemCreateDto.TaxCodeId is provided, the provided FulcrumProduct.PublicApi.Dto.Quote.PartLineItem.QuotePartLineItemCreateDto.TaxRate will supercede the defined tax rate.

overrideTaxRate
boolean or null

Indicate if the tax supplied is intended to be an override.

object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

isPercentageDiscount
boolean or null

Indicates whether FulcrumProduct.PublicApi.Dto.Quote.PartLineItem.QuotePartLineItemCreateDto.DiscountAmount discount is percentage based (else, it's an absolute amount).

discountAmount
number or null <double>

The amount of the discount.

accountingCodeId
string or null = 24 characters

Accounting code key identifier. Please reference /api/accounting-codes endpoint.

Responses

Request samples

Content type
{
  • "lineItems": [
    ]
}

Response samples

Content type
{
  • "ids": [
    ]
}

Delete a specific part line item for a Quote

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Get a specific part line item for a quote

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
query Parameters
includeCostBreakdown
boolean
Default: false

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "quantity": 0.1,
  • "price": 0.1,
  • "discountedPrice": 0.1,
  • "itemId": "stringstringstringstring",
  • "description": "string",
  • "accountingCodeId": "stringstringstringstring",
  • "isTaxable": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "overrideTaxRate": true,
  • "externalReferences": {
    },
  • "isPercentageDiscount": true,
  • "discountAmount": 0.1,
  • "subTotal": 0.1,
  • "preDiscountSubTotal": 0.1,
  • "customFields": {
    },
  • "number": 0,
  • "accountingDetails": {
    },
  • "costBreakdown": {
    }
}

Update a specific part line item for a Quote

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
Request Body schema:
required
quantity
number <double> >= 0

The line item quantity

price
number <double> >= 0

The line item price.

description
string or null [ 0 .. 2000 ] characters

The part line item description. Defaults to the item's description if none specified.

internalNotes
string or null [ 1 .. 2000 ] characters

The line item internal notes

itemNotes
string or null [ 1 .. 2000 ] characters

The line item notes.

isTaxable
boolean or null

Dictate if this line item is taxable.

taxCodeId
string or null = 24 characters

Tax code key identifier. Please reference /api/tax-rates endpoint.

taxRate
number or null <double> >= 0

Tax rate to use for this entity. If a FulcrumProduct.PublicApi.Dto.Quote.PartLineItem.QuotePartLineItemUpdateDto.TaxCodeId is provided, the provided FulcrumProduct.PublicApi.Dto.Quote.PartLineItem.QuotePartLineItemUpdateDto.TaxRate will supercede the defined tax rate.

overrideTaxRate
boolean or null

Indicate if the tax supplied is intended to be an override.

object or null

Arbitrary key-value-pair like data that can be used to later on search for this line item.

isPercentageDiscount
boolean or null

Indicates whether FulcrumProduct.PublicApi.Dto.Quote.PartLineItem.QuotePartLineItemUpdateDto.DiscountAmount discount is percentage based (else, it's an absolute amount).

discountAmount
number or null <double>

The amount of the discount.

accountingCodeId
string or null = 24 characters

Accounting code key identifier. Please reference /api/accounting-codes endpoint.

Responses

Request samples

Content type
{
  • "quantity": 0.1,
  • "price": 0.1,
  • "description": "string",
  • "internalNotes": "string",
  • "itemNotes": "string",
  • "isTaxable": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "overrideTaxRate": true,
  • "externalReferences": {
    },
  • "isPercentageDiscount": true,
  • "discountAmount": 0.1,
  • "accountingCodeId": "stringstringstringstring"
}

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "quantity": 0.1,
  • "price": 0.1,
  • "discountedPrice": 0.1,
  • "itemId": "stringstringstringstring",
  • "description": "string",
  • "accountingCodeId": "stringstringstringstring",
  • "isTaxable": true,
  • "taxCodeId": "stringstringstringstring",
  • "taxRate": 0.1,
  • "overrideTaxRate": true,
  • "externalReferences": {
    },
  • "isPercentageDiscount": true,
  • "discountAmount": 0.1,
  • "subTotal": 0.1,
  • "preDiscountSubTotal": 0.1,
  • "customFields": {
    },
  • "number": 0,
  • "accountingDetails": {
    },
  • "costBreakdown": {
    }
}

Get a list of part lines items for a quote

path Parameters
quoteId
required
string = 24 characters
query Parameters
includeCostBreakdown
boolean
Default: false

Responses

Response samples

Content type
[
  • {
    }
]

Get the cost breakdown for a specific part line item for a quote

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstring",
  • "type": "estimated",
  • "quantity": 0,
  • "quantityScrapped": 0,
  • "calculatedOn": "2019-08-24T14:15:22Z",
  • "time": {
    },
  • "cumulative": {
    },
  • "cumulativeMaterial": {
    },
  • "cumulativeLabor": {
    },
  • "cumulativeMachine": {
    },
  • "cumulativeOutsideProcessing": {
    },
  • "itemMaterial": {
    },
  • "itemLabor": {
    },
  • "itemMachine": {
    },
  • "itemOutsideProcessing": {
    },
  • "shopRateSetup": {
    },
  • "shopRateRun": {
    },
  • "shopRateMachine": {
    },
  • "componentMaterial": {
    },
  • "componentLabor": {
    },
  • "componentMachine": {
    },
  • "componentOutsideProcessing": {
    },
  • "lines": [
    ]
}

Quote Part Line Item Custom Fields

Update (selectively) custom fields on a line item

path Parameters
quoteId
required
string = 24 characters

The quote identifier that contains the line item

lineItemId
required
string = 36 characters

The line item identifier that contains the custom fields you want to update.

Request Body schema:
required

The custom fields to update

object

The custom fields

property name*
additional property
any

Responses

Request samples

Content type
{
  • "customFields": {
    }
}

Response samples

Content type
{
  • "customFields": {
    }
}

Update (selectively) custom fields on a line item

path Parameters
quoteId
required
string = 24 characters

The quote identifier that contains the line item

lineItemId
required
string = 36 characters

The line item identifier that contains the custom fields you want to update.

Request Body schema:
required

The custom fields to update

object

The custom fields

property name*
additional property
any

Responses

Request samples

Content type
{
  • "customFields": {
    }
}

Response samples

Content type
{
  • "customFields": {
    }
}

Quote Part Line Item Full Routing

Create a full routing input item for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
Request Body schema:
required
itemId
required
string = 24 characters

The item id to be added. Please reference /api/items endpoint.

valueTypeUnits
required
number <double>

Measurement unit depending on FulcrumProduct.PublicApi.Dto.Item.Routing.InputItemCreateDto.ValueType

valueType
required
string (CommonEnumInputItemValueTypeEnum)
Enum: "creates" "requires"

Specifies how a routing input item quantity is measured.

Responses

Request samples

Content type
{
  • "itemId": "stringstringstringstring",
  • "valueTypeUnits": 0.1,
  • "valueType": "creates"
}

Response samples

Content type
{
  • "id": "string"
}

Delete a full routing input item from quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
inputItemId
required
string = 36 characters

Responses

Gets a full routing input item for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
inputItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "itemId": "stringstringstringstring",
  • "number": "string",
  • "revision": "string",
  • "description": "string",
  • "valueTypeUnits": 0.1,
  • "valueType": "creates",
  • "routingStepId": "stringstringstringstringstringstring",
  • "isMaterialLine": true
}

Update a full routing input item for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
inputItemId
required
string = 36 characters
Request Body schema:
required
itemId
required
string = 24 characters

The item id to be added. Please reference /api/items endpoint.

valueTypeUnits
required
number <double>

Measurement unit depending on FulcrumProduct.PublicApi.Dto.Item.Routing.InputItemCreateDto.ValueType

valueType
required
string (CommonEnumInputItemValueTypeEnum)
Enum: "creates" "requires"

Specifies how a routing input item quantity is measured.

Responses

Request samples

Content type
{
  • "itemId": "stringstringstringstring",
  • "valueTypeUnits": 0.1,
  • "valueType": "creates"
}

Lists the full routing input items for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
query Parameters
skip
integer <int32> >= 0
Default: 0
take
integer <int32> [ 0 .. 5000 ]
Default: 50
Request Body schema:
number
string or null [ 1 .. 200 ] characters

Filter to items who's number contains the given string

Responses

Request samples

Content type
{
  • "number": "string"
}

Response samples

Content type
[
  • {
    }
]

List input materials for a quote part line item's routing

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
query Parameters
skip
integer <int32> >= 0
Default: 0
take
integer <int32> [ 0 .. 5000 ]
Default: 50
Request Body schema:
number
string or null [ 1 .. 200 ] characters

Filter to items who's number contains the given string

Responses

Request samples

Content type
{
  • "number": "string"
}

Response samples

Content type
[
  • {
    }
]

Creates a full routing operations for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
phase
required
string (DomainInProcessTrackingFieldCheckpointPhase)
Enum: "preOperation" "duringOperation" "postOperation"
Request Body schema:
required
label
required
string non-empty

Label describing the in process tracking field

description
string or null

The description of the in process tracking field

units
string or null

The units used when this in process tracking field represents a number

fieldTypeId
required
string non-empty

The id of the field type for this in process tracking field

targetValue
number or null <double>

The target or ideal value of an in process tracking field response

minimumValue
number or null <double>

The minimum acceptable value for a tracking field response

maximumValue
number or null <double>

The maximum acceptable value for a tracking field response

triggeringBooleanValue
boolean or null

The target value for booleans. Typically Yes/No for proceeding with next checkpoint

triggeringDropdownValue
string or null

The target value for multiple options

required
boolean

Whether the in process tracking field requires a response

restricted
boolean

If true, only users with the appropriate permission will be allowed to save a response.

firstArticle
boolean

Only applies to the During phase. If true (and Required), this field will prevent adding any completed items to inventory if target is not met.

onFair
boolean

If true, this field's measurements are reported on the First Article Inspection Report (FAIR). Does not affect sampling frequency.

Responses

Request samples

Content type
{
  • "label": "string",
  • "description": "string",
  • "units": "string",
  • "fieldTypeId": "string",
  • "targetValue": 0.1,
  • "minimumValue": 0.1,
  • "maximumValue": 0.1,
  • "triggeringBooleanValue": true,
  • "triggeringDropdownValue": "string",
  • "required": true,
  • "restricted": true,
  • "firstArticle": true,
  • "onFair": true
}

Response samples

Content type
{
  • "id": "string"
}

Deletes a full routing operation in process tracking field for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
phase
required
string (DomainInProcessTrackingFieldCheckpointPhase)
Enum: "preOperation" "duringOperation" "postOperation"
iptId
required
string <uuid>

Responses

Gets a full routing operation in process tracking field for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
phase
required
string (DomainInProcessTrackingFieldCheckpointPhase)
Enum: "preOperation" "duringOperation" "postOperation"
iptId
required
string <uuid>

Responses

Response samples

Content type
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "label": "string",
  • "units": "string",
  • "fieldTypeId": "string",
  • "targetValue": 0.1,
  • "minimumValue": 0.1,
  • "maximumValue": 0.1,
  • "triggeringBooleanValue": true,
  • "triggeringDropdownValue": "string",
  • "required": true,
  • "restricted": true,
  • "firstArticle": true,
  • "onFair": true
}

Lists full routing operation in process tracking fields for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
phase
required
string (DomainInProcessTrackingFieldCheckpointPhase)
Enum: "preOperation" "duringOperation" "postOperation"
query Parameters
skip
integer <int32> >= 0
Default: 0
take
integer <int32> [ 0 .. 5000 ]
Default: 50
Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter to in process tracking fields whose label contains the given string

Responses

Request samples

Content type
{
  • "name": "string"
}

Response samples

Content type
[
  • {
    }
]

Get a summary of the make routing for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters

Responses

Response samples

Content type
[
  • {
    }
]

Creates a full routing operation for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
Request Body schema:
required
systemOperationId
required
string = 24 characters

System Operation Id

order
integer or null <int32> >= 0

The order of this operation. Operations with the same order are expected to run in parallel

object (ItemRoutingOutsideProcessingOperationDto)

Defines outside processing fields

object (ItemRoutingNormalOperationDto)

Defines non-outside-processing fields

leadDays
integer or null <int32> >= 0

Lead days. Will default to zero if not provided.

unattended
boolean or null

If true, the run portion of this step is unattended by an operator.

instructions
string or null [ 1 .. 2000 ] characters

Operation instructions. Will default to the instructions defined on the operation when not provided.

inputMaterialIds
Array of strings or null

The ids on the input material to associate to this operation. This value should be the Id from the response from items/{itemId}/routing/input-materials/list

Responses

Request samples

Content type
{
  • "systemOperationId": "stringstringstringstring",
  • "order": 0,
  • "outsideProcessingOperation": {
    },
  • "operation": {
    },
  • "leadDays": 0,
  • "unattended": true,
  • "instructions": "string",
  • "inputMaterialIds": [
    ]
}

Response samples

Content type
{
  • "id": "string"
}

Removes a full routing operation for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters

Responses

Gets a full routing operation for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "name": "string",
  • "systemOperationId": "stringstringstringstring",
  • "order": 0,
  • "isOutsideProcessing": true,
  • "outsideProcessingOperation": {
    },
  • "operation": {
    },
  • "leadDays": 0,
  • "unattended": true,
  • "machineTrackingEnabled": true,
  • "instructions": "string"
}

Updates a full routing operation for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
Request Body schema:
required
order
integer or null <int32> >= 0

The order of this operation. Operations with the same order are expected to run in parallel

object (ItemRoutingOutsideProcessingOperationDto)

Defines outside processing fields

object (ItemRoutingNormalOperationDto)

Defines non-outside-processing fields

leadDays
integer or null <int32> >= 0

Lead days. Will default to zero if not provided.

unattended
boolean or null

If true, the run portion of this step is unattended by an operator.

instructions
string or null [ 1 .. 2000 ] characters

Instructions for this operation.

Responses

Request samples

Content type
{
  • "order": 0,
  • "outsideProcessingOperation": {
    },
  • "operation": {
    },
  • "leadDays": 0,
  • "unattended": true,
  • "instructions": "string"
}

Gets a full routing operation item for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
operationItemId
required
string = 36 characters

Responses

Response samples

Content type
{
  • "id": "stringstringstringstringstringstring",
  • "itemId": "stringstringstringstring",
  • "number": "string",
  • "revision": "string",
  • "description": "string",
  • "valueTypeUnits": 0.1,
  • "valueType": "creates",
  • "routingStepId": "stringstringstringstringstringstring",
  • "isMaterialLine": true
}

List full routing operation items for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
operationId
required
string = 36 characters
query Parameters
skip
integer <int32> >= 0
Default: 0
take
integer <int32> [ 0 .. 5000 ]
Default: 50
Request Body schema:
number
string or null [ 1 .. 200 ] characters

Filter to items who's number contains the given string

Responses

Request samples

Content type
{
  • "number": "string"
}

Response samples

Content type
[
  • {
    }
]

Lists full routing operations for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters
query Parameters
skip
integer <int32> >= 0
Default: 0
take
integer <int32> [ 0 .. 5000 ]
Default: 50
Request Body schema:
name
string or null [ 1 .. 200 ] characters

Filter to operations who's name contains the given string

Responses

Request samples

Content type
{
  • "name": "string"
}

Response samples

Content type
[
  • {
    }
]

Gets a full routing routing for a quote part line item

path Parameters
quoteId
required
string = 24 characters
lineItemId
required
string = 36 characters
routingId
required
string = 36 characters

Responses