Skip to main content

Invoice Items

Invoice Item represents an individual line item on an Invoice

Schema​

InvoiceItem​

NameTypeDescriptionExample
idIDUnique identifier for invoice items"ckmnpybisiy5x08abky4g2d1f"
createdAtDateTimeWhen this invoice item was created"2021-03-24 17:26:46.983Z"
updatedAtDateTimeWhen this invoice item was updated"2021-03-24 17:26:46.983Z"
descriptionstring?Description of the invoice item3/4" EMT
extPriceFloatfloat?EXT price of the item125.00
hasExceptionbooleanIndicates whether the invoice item has any exceptionsfalse
invoiceIdIDThe ID of the invoice this item is attached to"ckmnpybisiy5x08abky4g2d1f"
lineNumberintNumber representing the index of the line item within it's invoice3
notesstring?Additional handwritten details attached to this item"This item is important"
shipQuantityfloat?Quantity of this item100
unitPriceFloatfloat?Unit price of this item1.25
unitsOfMeasurestring?Unit of measurement for this itemEA
taxCodestring?Tax code applicable to this invoice item"CA"
taxRatefloat?Tax rate applied to this invoice item0.075
phaseCodestring?Phase code associated with this invoice item"100"
costCategorystring?Cost category code associated with this invoice item"M"

REST Endpoints​

GET /invoices/:id/items​

Read the items associated with an invoice

Accepts all standard pagination parameters.

Allowed orderBy fields: createdAt, id, lineNumber, updatedAt.

Default (direction, orderBy): (lineNumber, ASC)

Allowed filter fields: createdAt, description, hasException, id, notes, updatedAt.

Response​

A list of Invoice Item objects.

Example Request​

GET https://api.kojo.tech/invoices/ckmnpybisiy5x08abky4g2d1f/items

Example Response​

[
{
"id": "clku7gtqt000cpwtzv6e971xg",
"createdAt": "2021-03-24 17:26:46.983Z",
"updatedAt": "2021-03-24 17:26:46.983Z",
"description": "LUT CABLE",
"extPriceFloat": 1328.22,
"hasException": false,
"invoiceId": "ckmnpybisiy5x08abky4g2d1f",
"lineNumber": 1,
"notes": null,
"shipQuantity": 1,
"unitPriceFloat": 1328.22,
"unitsOfMeasure": "EA",
"taxCode": "test",
"taxRate": 0,
"phaseCode": "1-010",
"costCategory": "L"
}
]

GET /invoice-items​

Get all invoice items across all invoices for your organization. This endpoint is optimized for bulk data pulling and warehousing operations.

Unlike the per-invoice endpoint /invoices/:id/items, this endpoint allows you to query invoice items across all invoices with advanced filtering capabilities.

Parameters​

Accepts all standard pagination parameters with a maximum limit of 2500 items per request.

NameTypeDescriptionRequired
limitint?Maximum number of invoice items to return (max: 2500, default: 500)No
offsetint?Number of invoice items to skip (default: 0)No
filterobject?Filter criteria for invoice itemsNo
filter[invoiceId]ID?Filter items by a specific invoice IDNo
filter[invoiceId_in]ID[]?Filter items by multiple invoice IDsNo
filter[jobId]ID?Filter items by a specific job ID (from the invoice's job)No
filter[jobId_in]ID[]?Filter items by multiple job IDsNo
filter[vendorId]ID?Filter items by a specific vendor ID (from the invoice's vendor)No
filter[vendorId_in]ID[]?Filter items by multiple vendor IDsNo
filter[hasException]boolean?Filter items by exception statusNo
orderBystring?Field to sort by (default: createdAt)No
directionASC \| DESCSort direction (default: DESC)No

Allowed orderBy fields: createdAt, description, hasException, id, invoiceId, lineNumber, notes, updatedAt

See standard filter documentation for additional filterable fields: createdAt, description, hasException, id, invoiceId, lineNumber, notes, updatedAt.

Response​

Returns an object with pagination metadata and an array of invoice item objects.

NameTypeDescription
metaobjectPagination metadata
meta.totalintTotal number of invoice items matching the filters
meta.limitintNumber of invoice items requested (max 2500)
meta.offsetintNumber of invoice items skipped
dataobject[]Array of invoice item objects

Each invoice item object in the data array includes the following fields:

NameTypeDescription
idIDUnique identifier for this invoice item
invoiceIdIDID of the invoice this item is attached to
lineNumberintNumber representing the index of the line item within its invoice
createdAtDateTimeWhen this invoice item was created
updatedAtDateTimeWhen this invoice item was last updated
descriptionstring?Description of the invoice item
notesstring?Additional handwritten details
manufacturerPartNumberstring?Manufacturer part number (MPN)
universalProductCodestring?Universal product code (UPC)
unitPriceFloatfloat?Unit price of the invoice item
extPriceFloatfloat?Extended price of the invoice item
extPriceFloatIncludingTaxfloat?Extended price including tax
shipQuantityfloat?Quantity shipped
extendedQuantityfloat?Extended quantity (calculated with unit conversions)
unitsOfMeasurestring?Unit of measurement for this invoice item
requestedUOMstring?Requested unit of measure
pricingUOMstring?Pricing unit of measure
extendedUOMstring?Extended unit of measure
taxRatefloat?Tax rate applied to this item
hasExceptionbooleanWhether this invoice item has an exception
phaseCodestring?Phase code for this invoice item
costCategorystring?Cost category for this invoice item
taxCodestring?Tax code for this invoice item
phaseCodeCodestring?Phase code string from item or integration data
costCategoryCodestring?Cost category code string from item or integration data
glCodeCodestring?GL code string from item or integration data
taxCodeCodestring?Tax code string from item or integration data
costTypeCodestring?Cost type code string from item or integration data
jobIdID?Job ID from the parent invoice (denormalized for efficient querying)
vendorIdID?Vendor ID from the parent invoice (denormalized for efficient querying)
itemCodeobject?Full ItemCode object with id, code, and description fields
scaledUnitPricefloat?Scaled unit price (when UOM v2 feature is enabled)
itemCodeTextstring?Free-form item code text from integration data

Example Request (Single Filter)​

GET https://api.kojo.tech/invoice-items?limit=100&offset=0&filter[jobId]=ckb91ig8400d307335u4p92lq

Example Request (Multiple Invoices)​

GET https://api.kojo.tech/invoice-items?limit=100&filter[invoiceId_in][]=ckb91ig8400d307335u4p92lq&filter[invoiceId_in][]=ckb91ig8400d307335u4p92lr&filter[invoiceId_in][]=ckb91ig8400d307335u4p92ls

Example Request (Combined Filters)​

GET https://api.kojo.tech/invoice-items?filter[jobId]=ckb91ig8400d307335u4p92lq&filter[vendorId]=ckb91igzr01e70733dehis81o&filter[hasException]=false&orderBy=createdAt&direction=DESC

Example Response​

{
"meta": {
"total": 850,
"limit": 100,
"offset": 0
},
"data": [
{
"createdAt": "2025-10-28T15:56:19.137Z",
"costCategory": null,
"description": "1/2\" Copper Pipe",
"extPriceFloat": 250.50,
"extPriceFloatIncludingTax": 280.56,
"extendedQuantity": 500,
"extendedUOM": "FT",
"hasException": false,
"id": "cmhar18ox000o13mixao4iqzq",
"invoiceId": "cmhar18nl000n13mi15m20p39",
"lineNumber": 1,
"manufacturerPartNumber": "CP-500",
"notes": "Delivered on time",
"phaseCode": "01-100",
"pricingUOM": "FT",
"requestedUOM": "FT",
"shipQuantity": 500,
"taxCode": "GST/PST BC",
"taxRate": 0.12,
"unitPriceFloat": 0.501,
"unitsOfMeasure": "FT",
"universalProductCode": "987654321",
"updatedAt": "2025-10-28T15:59:14.267Z",
"phaseCodeCode": "01-100",
"costCategoryCode": "01",
"glCodeCode": "5000",
"taxCodeCode": "GST/PST BC",
"costTypeCode": "MATERIAL",
"jobId": "cmg9nv1ye001eyxj7fwnht7mn",
"vendorId": "cmg9o1gjb001jyxj7hb20q862",
"scaledUnitPrice": 0.501,
"itemCodeText": "PIPE-CP-500",
"itemCode": {
"id": "ckb91igzt01e90733giki0v0q",
"code": "PIPE-CP-500",
"description": "1/2\" Copper Pipe"
}
}
]
}