{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/lightspeed/main/json-schema/lightspeed-service-order-schema.json", "title": "ServiceOrder", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/lightspeed-service-orders-api-openapi.yml#/components/schemas/ServiceOrder", "properties": { "agenda": { "$ref": "#/$defs/DailyAgenda" }, "assigned_user_id": { "type": "string" }, "created_at": { "type": "string" }, "id": { "type": "string" }, "line_items": { "description": "Collection of line items associated with this service order.", "items": { "properties": { "fulfillment_type": { "description": "Type of fulfillment for this line item.", "type": "string" }, "gift_card": { "description": "Gift card information if applicable.", "type": [ "object", "null" ] }, "id": { "description": "The ID of this line item.", "type": "string" }, "is_picklist_pickable": { "description": "Indicates if this line item can be picked from a picklist.", "type": "boolean" }, "note": { "description": "Line item note.", "type": "string" }, "price_set": { "description": "Indicates whether the price was set manually.", "type": "boolean" }, "product_id": { "description": "The ID of the product associated with this line item.", "type": "string" }, "promotions": { "description": "Array of promotions applied to this line item.", "items": { "$ref": "#/$defs/PromotionDescription" }, "type": "array" }, "quantity": { "description": "Quantity of products for the line item.", "type": "string" }, "register_id": { "description": "The register ID associated with this line item.", "type": "string" }, "register_sequence_id": { "description": "The register sequence ID for this line item.", "type": "string" }, "sales_person_id": { "description": "The ID of the salesperson associated with this line item.", "type": "string" }, "sequence": { "description": "Order of the line item in the service order.", "type": "integer" }, "sku": { "description": "The SKU of the product.", "type": "string" }, "state": { "description": "State of the line item.", "type": "string" }, "tax_components": { "description": "Collection of tax components associated with the line item.", "items": { "$ref": "#/$defs/LineItemTaxComponent" }, "type": "array" }, "unit_discount": { "description": "Unit discount value for the line item.", "type": "string" }, "unit_loyalty": { "description": "Unit loyalty value for the line item.", "type": "string" }, "unit_price": { "description": "Unit price of the line item.", "type": "string" } }, "type": "object" }, "type": "array" }, "location": { "type": "string" }, "retailer_id": { "type": "string" }, "sale_id": { "type": "string" }, "status": { "type": "string" }, "status_details": { "$ref": "#/$defs/ServiceStatusDetails" }, "totals": { "description": "Financial totals for the service order.", "properties": { "is_sale_level_discount_percentage": { "description": "Indicates if the sale level discount is a percentage.", "type": "boolean" }, "sale_level_discount_value": { "description": "Total discount value applied at the sale level.", "type": "string" }, "sub_total": { "description": "Subtotal amount before taxes and discounts.", "type": "string" }, "total_amount": { "description": "Final total amount including all taxes and discounts.", "type": "string" }, "total_promotion": { "description": "Total promotion value applied.", "type": "string" }, "total_tax": { "description": "Total tax amount.", "type": "string" } }, "type": "object" }, "updated_at": { "type": [ "string", "null" ] }, "updated_by": { "type": "string" } }, "type": [ "object", "null" ], "$defs": { "DailyAgenda": { "properties": { "date": { "type": "string" }, "minutes_scheduled": { "type": "integer" } }, "title": "DailyAgenda", "type": "object" }, "LineItemTaxComponent": { "properties": { "rate_id": { "description": "Tax rate ID.", "type": "string" }, "total_tax": { "description": "Tax total.", "format": "double", "type": "number" } }, "required": [ "rate_id", "total_tax" ], "title": "Line Item Tax Component", "type": "object" }, "PromotionDescription": { "description": "Basic description for a Promotion.", "properties": { "description": { "description": "A short description for the promotion.", "type": "string" }, "id": { "description": "Auto-generated object ID.", "type": "string" }, "name": { "description": "The name of the promotion.", "type": "string" } }, "title": "PromotionDescription", "type": "object" }, "ServiceStatusDetails": { "description": "Details of a custom service status assigned to a service order.", "properties": { "created_at": { "description": "The date and time the status was created.", "format": "date-time", "type": "string" }, "display_name": { "description": "Human-readable name of the status.", "type": "string" }, "display_order": { "description": "The order in which this status appears in the UI. Null if not set.", "type": [ "integer", "null" ] }, "id": { "description": "The unique ID of the status.", "type": "string" }, "retailer_id": { "description": "The retailer this status belongs to.", "type": "string" }, "status_key": { "description": "The underlying key mapping this status to a system status (e.g. NEW, IN_PROGRESS).", "type": "string" }, "system_default": { "description": "Whether this is a system-managed default status.", "type": "boolean" }, "updated_at": { "description": "The date and time the status was last updated.", "format": "date-time", "type": "string" } }, "type": [ "object", "null" ] } } }