Skip to main content

Product Lines

Entity›ProductLine

Product lines represent line items on activities — the individual rows on a quote, sales order, or invoice. Each product line links an activity to a Product, with a quantity, price, discount, and VAT calculation.

Use the ProductLine endpoint to query and manage product lines. You can also access them via the ProductLines navigation property on any activity.

Endpoints​

List Product Lines​

GET/v1/odata/ProductLine

Single Product Line​

GET/v1/odata/ProductLine({id})

Create Product Line​

POST/v1/odata/ProductLine

Update Product Line​

PUT/v1/odata/ProductLine({id})

Delete Product Line​

DELETE/v1/odata/ProductLine({id})

Fields​

Product Line Fields​

FieldTypeDescription
DescriptionStringLine item description
LocalizedDescriptionStringLocalized description
ExtraDescriptionStringAdditional description
QuantityDoubleQuantity
PriceDoubleUnit price
PriceInCurrencyDoubleUnit price (in currency)
PurchasePriceDoublePurchase / cost price
TotalPurchasePriceDoubleTotal purchase price
DiscountPercentageDoubleDiscount percentage
CurrencyStringCurrency code (e.g., EUR)
IsPriceManuallyChangedBooleanWhether the price was manually overridden
IsBilledBooleanWhether the line has been invoiced
IsProcessableInParentBooleanWhether processable in parent activity

Totals​

FieldTypeDescription
TotalDoubleLine total
TotalExcludingVatDoubleTotal excluding VAT
TotalIncludingVatDoubleTotal including VAT
TotalInCurrencyDoubleTotal (in currency)
TotalExcludingVatInCurrencyDoubleTotal excluding VAT (in currency)
TotalIncludingVatInCurrencyDoubleTotal including VAT (in currency)
VatPercentageDoubleVAT percentage
VatAmountDoubleVAT amount
VatAmountInCurrencyDoubleVAT amount (in currency)
VatAmountIncludingDiscountDoubleVAT amount after discount
VatAmountIncludingDiscountInCurrencyDoubleVAT amount after discount (in currency)

Date Fields​

FieldTypeDescription
StartDateDateTimeOffsetStart date (for recurring lines)
EndDateDateTimeOffsetEnd date (for recurring lines)
BilledUntilDateTimeOffsetDate until which the line has been billed

Relationships​

RelationshipTarget EntityCardinalityDescription
ActivityActivityN:1Parent activity
ProductProductN:1Linked product
VatGroupDatastore.VatGroupN:1VAT group
RepeatIntervalDateIntervalN:1Repeat interval (for recurring lines)
MilestoneProjectMilestoneN:1Project milestone
InvoiceProductLineProductLineN:1Linked invoice product line
ProductLineProductLineN:1Parent product line
TimeRegistrationTimeRegistrationN:1Linked time registration
BilledTimeRegistrationsTimeRegistration1:NBilled time registrations

Expanding Relationships​

GET/v1/odata/ProductLine({id})?$expand=Activity
GET/v1/odata/ProductLine({id})/Activity

Filtering Examples​

GET/v1/odata/ProductLine?$filter=Activity/ID eq cbf40345-333a-4e5b-a149-276d22c1418d&$top={top}
GET/v1/odata/ProductLine?$filter=contains(Description, '{Description}')&$top={top}
GET/v1/odata/ProductLine?$filter=Quantity gt {Quantity}&$top={top}
GET/v1/odata/ProductLine?$filter=IsBilled eq {IsBilled}&$top={top}
GET/v1/odata/ProductLine?$filter=Price gt {Price}&$top={top}

Custom Query​

Build your own OData query against ProductLine. Open Run and edit the whole request inline — swap the entity set, change the $filter, or add $expand, $select, $orderby, $top, $skip. Type $ for suggestions; use ↺ Reset to restore this example.

GET/v1/odata/ProductLine?$top=10