{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Picklists", "description": "Picklists help teams track and manage the picking of items for sales orders and purchase returns. You can create picklists, assign them to staff, track picking progress by status, and add comments for collaboration.", "definitions": { "picklist_id": { "description": "Unique ID generated by the server for the picklist.", "type": "string", "readOnly": true, "example": "130426000000810001" }, "picklist_number": { "description": "Unique number assigned to the picklist. Auto-generated unless overridden.", "type": "string", "maxLength": 50, "example": "Pick-00001" }, "picklist-line-item": { "description": "A line item in a picklist representing one item to be picked.\n\nThe fields depend on `group_by`:\n\n- **`group_by=none` (flat)** - every pick-related fields below (item, quantities, tracking, storages, status, and similar) is added directly on the line item. `mapping_entity_details` is **not** used.\n- **`group_by=item` or `sales_order` (grouped)** - only the grouping fields (`line_item_id`, `assignee_id`, `assignee_name`, `parent_id`, `parent_name`, item-summary fields, and for `sales_order` also `customer_name`, `order_date`, `shipment_date`, `delivery_method`) are added on the parent. The actual per-pick fields (quantities, status, storages, tracking) are added inside `mapping_entity_details`.\n\n> Grouping is applicable only for sales-order picklists. Purchase-return picklists are always flat (`group_by=none`).\n", "type": "object", "properties": { "line_item_id": { "description": "Unique ID of the line item", "type": "string", "example": "130426000000810011" }, "parent_id": { "description": "Grouping entity ID: the `item_id` for `group_by=item`, or the `salesorder_id` for `group_by=sales_order`. Returned only for grouped picklists.", "type": "string", "example": "130426000000664040" }, "parent_name": { "description": "Display name of the grouping entity (item name or sales order number). Returned only for grouped picklists.", "type": "string", "example": "Office Chair" }, "customer_name": { "description": "Customer name of the grouped sales order. Returned only when `group_by=sales_order`.", "type": "string", "example": "Acme Corp" }, "order_date": { "description": "Date of the grouped sales order. Returned only when `group_by=sales_order`.", "type": "string", "format": "date", "example": "2024-01-12" }, "shipment_date": { "description": "Expected shipment date of the grouped sales order. Returned only when `group_by=sales_order`.", "type": "string", "format": "date", "example": "2024-01-18" }, "delivery_method": { "description": "Delivery method of the grouped sales order. Returned only when `group_by=sales_order`.", "type": "string", "example": "FedEx" }, "assignee_id": { "description": "ID of the user assigned to pick this line item. For grouped picklists this is the picker assigned to the entire group.", "type": "string", "example": "130426000000664060" }, "assignee_name": { "description": "Name of the assigned user.", "type": "string", "example": "John Doe" }, "mapping_entity_details": { "description": "Child pick entries grouped under this parent line item. Returned **only** for grouped picklists (`group_by=item` or `sales_order`). For `group_by=none`, this field is omitted and pick details are returned directly on the line item.", "type": "array", "items": { "$ref": "#/components/schemas/picklist-line-item-mapping" } }, "salesorder_id": { "description": "ID of the associated sales order. Returned for `group_by=none` and `group_by=sales_order`.", "type": "string", "example": "130426000000700001" }, "salesorder_number": { "description": "Number of the associated sales order. Returned only for `group_by=none`.", "type": "string", "example": "SO-00001" }, "purchasereturn_id": { "description": "ID of the associated purchase return. Returned for purchase-return picklists.", "type": "string", "example": "130426000000720001" }, "purchasereturn_number": { "description": "Number of the associated purchase return. Returned for purchase-return picklists.", "type": "string", "example": "PR-00001" }, "so_line_item_id": { "description": "ID of the underlying sales order line item. Returned only for `group_by=none`.", "type": "string", "example": "130426000000700011" }, "pr_line_item_id": { "description": "ID of the underlying purchase return line item. Returned for purchase-return picklists.", "type": "string", "example": "130426000000720011" }, "item_id": { "description": "ID of the item to be picked. Returned only for `group_by=none`.", "type": "string", "example": "130426000000664040" }, "name": { "description": "Name of the item. Returned only for `group_by=none`.", "type": "string", "example": "Office Chair" }, "sku": { "description": "SKU of the item. Returned for `group_by=none` and `group_by=item`.", "type": "string", "example": "CHAIR-001" }, "is_storage_location_enabled": { "description": "Whether storage location tracking is enabled for this item. Returned only when Zoho Inventory and storage tracking are enabled, and `group_by` is `none` or `item`.", "type": "boolean", "example": true }, "is_combo_product": { "description": "Whether the item is a composite/combo product. Returned only when Zoho Inventory is enabled, and `group_by` is `none` or `item`.", "type": "boolean", "example": false }, "unit": { "description": "Usage unit of the line item. Returned only for `group_by=none`.", "type": "string", "example": "pcs" }, "base_unit": { "description": "Base unit configured on the item. Returned only for `group_by=none`.", "type": "string", "example": "pcs" }, "base_unit_id": { "description": "ID of the base unit. Returned only when unit conversion is enabled and `group_by=none`.", "type": "string", "example": "130426000000900020" }, "unit_conversion_id": { "description": "ID of the unit conversion applied. Returned only when unit conversion is enabled and `group_by=none`.", "type": "string", "example": "130426000000900001" }, "conversion_rate": { "description": "Unit conversion rate. Returned only when unit conversion is enabled and `group_by=none`.", "type": "number", "example": 1 }, "quantity_decimal_place": { "description": "Number of decimal places used for quantity values on this line item. Returned only for `group_by=none`.", "type": "integer", "example": 2 }, "description": { "description": "Description of the line item. Returned only for `group_by=none`.", "type": "string", "example": "Ergonomic mesh office chair." }, "image_name": { "description": "File name of the item image. Returned only for `group_by=none`.", "type": "string", "example": "chair.png" }, "image_type": { "description": "File type of the item image. Returned only for `group_by=none`.", "type": "string", "example": "png" }, "image_document_id": { "description": "Document ID of the item image. Returned only for `group_by=none`.", "type": "string", "example": "130426000000910001" }, "quantity_ordered": { "description": "Quantity ordered on the underlying sales order line item, normalized to the picking unit. Returned only for `group_by=none`.", "type": "number", "example": 10 }, "quantity_returned": { "description": "Quantity on the underlying purchase return line item. Returned for purchase-return picklists.", "type": "number", "example": 5 }, "so_quantity_ordered": { "description": "Total quantity ordered on the underlying sales order line item (in the SO unit). Returned only for `group_by=none`.", "type": "number", "example": 10 }, "pr_quantity_returned": { "description": "Total quantity on the underlying purchase return line item. Returned for purchase-return picklists.", "type": "number", "example": 5 }, "so_quantity_picked": { "description": "Quantity already picked across all picklists for the underlying sales order line item. Returned only for `group_by=none`.", "type": "number", "example": 3 }, "pr_quantity_picked": { "description": "Quantity already picked across all picklists for the underlying purchase return line item. Returned for purchase-return picklists.", "type": "number", "example": 2 }, "quantity_to_be_picked": { "description": "Quantity of the item to be picked. Returned only for `group_by=none`.", "type": "number", "example": 5 }, "quantity_picked": { "description": "Quantity already picked. Returned only for `group_by=none`.", "type": "number", "example": 3 }, "quantity_picked_remaining": { "description": "Remaining quantity yet to be picked. Returned only for `group_by=none`.", "type": "number", "example": 2 }, "quantity_packed": { "description": "Quantity that has been packed. Returned only for `group_by=none`.", "type": "number", "example": 3 }, "quantity_manually_fulfilled": { "description": "Quantity that was manually fulfilled. Returned only for `group_by=none`.", "type": "number", "example": 0 }, "rate": { "description": "Unit price/rate of the underlying line item. Returned only for `group_by=none`.", "type": "number", "example": 199.99 }, "status": { "description": "Status of the line item. Returned only for `group_by=none` (for grouped picklists, status lives on each child entry inside `mapping_entity_details`).", "type": "string", "example": "inprogress" }, "preferred_storage_id": { "description": "ID of the preferred storage location for this item. Returned when storage tracking is enabled and `group_by` is `none` or `item`.", "type": "string", "example": "130426000000801001" }, "preferred_storage_name": { "description": "Name of the preferred storage location. Returned when storage tracking is enabled and `group_by` is `none` or `item`.", "type": "string", "example": "A-R1-B01" }, "storages": { "description": "Storage location breakdown used for picking. Returned only when storage tracking is enabled and `group_by=none`.", "type": "array", "items": { "type": "object", "properties": { "storage_id": { "type": "string", "example": "130426000000801001" }, "storage_name": { "type": "string", "example": "A-R1-B01" }, "out_quantity": { "type": "number", "example": 5 } } } }, "serial_numbers": { "description": "Serial numbers picked. Returned only when serial-number tracking is enabled and `group_by=none`.", "type": "array", "items": { "type": "string" }, "example": [ "SN-001", "SN-002" ] }, "batches": { "description": "Batch details picked. Returned only when batch tracking is enabled and `group_by=none`.", "type": "array", "items": { "type": "object", "properties": { "batch_number": { "type": "string", "example": "BATCH-001" }, "out_quantity": { "type": "number", "example": 5 } } } }, "track_serial_number": { "description": "Whether serial-number tracking is enabled for this item. Returned only when serial-number tracking is enabled and `group_by=none`.", "type": "boolean", "example": false }, "track_batch_number": { "description": "Whether batch tracking is enabled for this item. Returned only when batch tracking is enabled and `group_by=none`.", "type": "boolean", "example": false }, "track_serial_for_package": { "description": "Whether serial numbers are required at the package level for this line item. Returned only for `group_by=none`.", "type": "boolean", "example": false }, "track_batch_for_package": { "description": "Whether batch numbers are required at the package level for this line item. Returned only for `group_by=none`.", "type": "boolean", "example": false }, "item_custom_fields": { "description": "Custom field values for the picked item. Returned only for `group_by=none`.", "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string", "example": "Lot" }, "value": { "type": "string", "example": "L-2024-01" } } } }, "available_stock_for_picking": { "description": "Stock currently available for picking. Returned only when `showAvailableStockForPicking` is enabled and `group_by` is `none` or `item`.", "type": "number", "example": 25 }, "advanced_tracking_missing_quantity": { "description": "Quantity for which advanced tracking (serial / batch) details are missing. Returned only on create when tracking relaxation is enabled and `group_by=none`.", "type": "number", "example": 0 }, "upc": { "description": "Universal Product Code of the item. Returned only when Zoho Inventory is enabled, the request is from a Zoho Books client, and `group_by=none`.", "type": "string", "example": "012345678905" }, "ean": { "description": "European Article Number of the item. Same return conditions as `upc`.", "type": "string", "example": "4006381333931" }, "isbn": { "description": "International Standard Book Number of the item. Same return conditions as `upc`.", "type": "string", "example": "978-3-16-148410-0" } } }, "picklist-line-item-mapping": { "description": "A child pick entry under a grouped picklist line item. Returned only for grouped picklists (`group_by=item` or `sales_order`). Each entry describes one underlying sales order line item being picked under the parent group, and carries the per-pick details (quantities, status, storages, tracking) that, in flat picklists, would live on the line item itself.", "type": "object", "properties": { "mapping_line_item_id": { "description": "Unique ID of this child mapping line item.", "type": "string", "example": "130426000000810031" }, "mapping_entity_id": { "description": "ID of the underlying child entity (sales order or item) this child entry belongs to.", "type": "string", "example": "130426000000700001" }, "mapping_entity_name": { "description": "Number / name of the underlying child entity (sales order number or item name).", "type": "string", "example": "SO-00001" }, "mapping_entity_item_id": { "description": "ID of the underlying sales order or purchase return line item being picked under this group.", "type": "string", "example": "130426000000700011" }, "so_quantity_ordered": { "description": "Total quantity ordered on the underlying sales order line item. Returned when the underlying entity is a sales order.", "type": "number", "example": 10 }, "quantity_ordered": { "description": "Quantity ordered, normalized to the picking unit.", "type": "number", "example": 10 }, "so_quantity_picked": { "description": "Quantity already picked across all picklists for the underlying sales order line item. Returned when the underlying entity is a sales order.", "type": "number", "example": 3 }, "item_id": { "description": "ID of the item being picked. Returned when the parent group is grouped by sales order.", "type": "string", "example": "130426000000664040" }, "name": { "description": "Name of the item being picked.", "type": "string", "example": "Office Chair" }, "sku": { "description": "SKU of the item being picked.", "type": "string", "example": "CHAIR-001" }, "is_storage_location_enabled": { "description": "Whether storage location tracking is enabled for this item. Returned only when Zoho Inventory and storage tracking are enabled.", "type": "boolean", "example": true }, "is_combo_product": { "description": "Whether the item is a composite/combo product. Returned only when Zoho Inventory is enabled.", "type": "boolean", "example": false }, "unit": { "description": "Usage unit of the line item.", "type": "string", "example": "pcs" }, "base_unit": { "description": "Base unit configured on the item.", "type": "string", "example": "pcs" }, "base_unit_id": { "description": "ID of the base unit. Returned only when unit conversion is enabled.", "type": "string", "example": "130426000000900020" }, "unit_conversion_id": { "description": "ID of the unit conversion applied. Returned only when unit conversion is enabled.", "type": "string", "example": "130426000000900001" }, "conversion_rate": { "description": "Unit conversion rate. Returned only when unit conversion is enabled.", "type": "number", "example": 1 }, "quantity_decimal_place": { "description": "Number of decimal places used for quantity values on this line item.", "type": "integer", "example": 2 }, "description": { "description": "Description of the underlying line item.", "type": "string", "example": "Ergonomic mesh office chair." }, "image_name": { "description": "File name of the item image.", "type": "string", "example": "chair.png" }, "image_type": { "description": "File type of the item image.", "type": "string", "example": "png" }, "image_document_id": { "description": "Document ID of the item image.", "type": "string", "example": "130426000000910001" }, "quantity_to_be_picked": { "description": "Quantity to be picked for this child entry.", "type": "number", "example": 5 }, "quantity_picked": { "description": "Quantity already picked for this child entry.", "type": "number", "example": 3 }, "quantity_picked_remaining": { "description": "Remaining quantity yet to be picked for this child entry.", "type": "number", "example": 2 }, "quantity_packed": { "description": "Quantity already packed for this child entry.", "type": "number", "example": 0 }, "quantity_manually_fulfilled": { "description": "Quantity that was manually fulfilled for this child entry.", "type": "number", "example": 0 }, "rate": { "description": "Unit price/rate of the underlying line item.", "type": "number", "example": 199.99 }, "status": { "description": "Status of this child mapping entry.", "type": "string", "pattern": "(yet_to_start|in_progress|on_hold|completed)", "example": "in_progress" }, "preferred_storage_id": { "description": "ID of the preferred storage location for this child entry.", "type": "string", "example": "130426000000801001" }, "preferred_storage_name": { "description": "Name of the preferred storage location.", "type": "string", "example": "A-R1-B01" }, "storages": { "description": "Storage location breakdown used for picking this child entry.", "type": "array", "items": { "type": "object", "properties": { "storage_id": { "type": "string", "example": "130426000000801001" }, "storage_name": { "type": "string", "example": "A-R1-B01" }, "out_quantity": { "type": "number", "example": 5 } } } }, "serial_numbers": { "description": "Serial numbers picked for this child entry.", "type": "array", "items": { "type": "string" }, "example": [ "SN-001", "SN-002" ] }, "batches": { "description": "Batch details picked for this child entry.", "type": "array", "items": { "type": "object", "properties": { "batch_number": { "type": "string", "example": "BATCH-001" }, "out_quantity": { "type": "number", "example": 5 }, "storages": { "description": "Storage location breakdown used for picking this child entry.", "type": "array", "items": { "type": "object", "properties": { "storage_id": { "type": "string", "example": "130426000000801001" }, "storage_name": { "type": "string", "example": "A-R1-B01" }, "out_quantity": { "type": "number", "example": 5 } } } } } } }, "item_custom_fields": { "description": "Custom field values for the picked item in this child entry.", "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string", "example": "Lot" }, "value": { "type": "string", "example": "L-2024-01" } } } }, "track_serial_number": { "description": "Whether serial-number tracking is enabled for this item. Returned only when serial-number tracking is enabled in the org.", "type": "boolean", "example": false }, "track_batch_number": { "description": "Whether batch tracking is enabled for this item. Returned only when batch tracking is enabled in the org.", "type": "boolean", "example": false }, "track_serial_for_package": { "description": "Whether serial numbers are required at the package level for this line item.", "type": "boolean", "example": false }, "track_batch_for_package": { "description": "Whether batch numbers are required at the package level for this line item.", "type": "boolean", "example": false }, "available_stock_for_picking": { "description": "Stock currently available for picking. Returned only when `showAvailableStockForPicking` is enabled.", "type": "number", "example": 25 }, "advanced_tracking_missing_quantity": { "description": "Quantity for which advanced tracking (serial / batch) details are missing. Returned only on create when tracking relaxation is enabled in the org.", "type": "number", "example": 0 }, "upc": { "description": "Universal Product Code of the item. Returned only when Zoho Inventory is enabled and the request is from a Zoho Books client.", "type": "string", "example": "012345678905" }, "ean": { "description": "European Article Number of the item. Returned only when Zoho Inventory is enabled and the request is from a Zoho Books client.", "type": "string", "example": "4006381333931" }, "isbn": { "description": "International Standard Book Number of the item. Returned only when Zoho Inventory is enabled and the request is from a Zoho Books client.", "type": "string", "example": "978-3-16-148410-0" } } }, "picklist-line-item-mapping-request": { "description": "A child pick entry under a grouped picklist line item. Used only when `group_by` is `item` or `sales_order`. Provide one entry inside `mapping_entity_details` for every underlying sales order line item to be picked under the parent group.", "type": "object", "properties": { "mapping_line_item_id": { "description": "ID of an existing child entry. Pass on update to identify the row being modified; omit when adding a new one.", "type": "string", "example": "130426000000810031" }, "mapping_entity_item_id": { "description": "ID of the underlying sales order line item to be picked. Required when adding a new child entry.", "type": "string", "example": "130426000000700011" }, "quantity_to_be_picked": { "description": "Quantity to be picked for this child entry.", "type": "number", "example": 5 }, "quantity_picked": { "description": "Quantity already picked for this child entry.", "type": "number", "example": 3 }, "status": { "description": "Status of this child mapping entry.", "type": "string", "enum": [ "yettostart", "inprogress", "onhold", "completed" ], "example": "inprogress" }, "preferred_storage_id": { "description": "ID of the preferred storage location for this child entry.", "type": "string", "example": "130426000000801001" }, "storages": { "description": "Storage location assignments for this child entry. Maximum 100.", "type": "array", "maxItems": 100, "items": { "type": "object", "properties": { "storage_id": { "description": "ID of the storage location.", "type": "string", "example": "130426000000801001" }, "out_quantity": { "description": "Quantity assigned to this storage location.", "type": "number", "example": 5 } } } }, "serial_numbers": { "description": "Serial numbers picked for this child entry. Maximum 10000.", "type": "array", "maxItems": 10000, "items": { "type": "string" }, "example": [ "SN-001", "SN-002" ] }, "batches": { "description": "Batch details picked for this child entry. Maximum 100.", "type": "array", "maxItems": 100, "items": { "type": "object", "properties": { "batch_id": { "description": "Batch identifier.", "type": "string", "example": "130426000000810031" }, "out_quantity": { "description": "Quantity in this batch.", "type": "number", "example": 5 }, "storages": { "description": "Storage location breakdown used for picking this child entry.", "type": "array", "items": { "type": "object", "properties": { "storage_id": { "description": "ID of the storage location.", "type": "string", "example": "130426000000801001" }, "out_quantity": { "description": "Quantity assigned to this storage location.", "type": "number", "example": 5 } } } } } } }, "item_custom_fields": { "description": "Custom field values for the picked item in this child entry. Maximum 1000.", "type": "array", "maxItems": 1000, "items": { "type": "object", "properties": { "label": { "description": "Label of the custom field.", "type": "string", "example": "Lot" }, "value": { "description": "Value for the custom field.", "type": "string", "example": "L-2024-01" } } } } } }, "picklist-line-item-request": { "description": "A line item in a picklist create/update request. Two mutually-exclusive shapes, controlled by `group_by`:\n\n- **Flat (`group_by=none`)** - populate pick fields (`quantity_to_be_picked`, `storages`, `serial_numbers`, `batches`, `status`, `preferred_storage_id`, `item_custom_fields`, the `*_line_item_id` references) directly on this object. Do **not** send `mapping_entity_details`.\n- **Grouped (`group_by=item` or `sales_order`)** - only `line_item_id` (on update), `assignee_id` and `mapping_entity_details` are valid here. All actual pick details belong to each child entry inside `mapping_entity_details`.\n", "type": "object", "properties": { "line_item_id": { "description": "ID of an existing picklist line item. Pass on update to identify the row being modified; omit on create.", "type": "string", "example": "130426000000810011" }, "salesorder_id": { "description": "ID of the associated sales order. Flat mode or group by sales order.", "type": "string", "example": "130426000000700001" }, "parent_entity_id": { "description": "ID of the parent entity (sales order or purchase return). Flat mode only.", "type": "string", "example": "130426000000700001" }, "so_line_item_id": { "description": "ID of the underlying sales order line item. Flat mode only.", "type": "string", "example": "130426000000700011" }, "pr_line_item_id": { "description": "ID of the underlying purchase return line item. Flat mode only.", "type": "string", "example": "130426000000720011" }, "parent_line_item_id": { "description": "ID of the parent line item on the source entity. Flat mode only.", "type": "string", "example": "130426000000700011" }, "quantity_to_be_picked": { "description": "Quantity of the item to be picked. Flat mode only.", "type": "number", "example": 5 }, "quantity_picked": { "description": "Quantity already picked. Flat mode only.", "type": "number", "example": 3 }, "status": { "description": "Status of the line item. Flat mode only.", "type": "string", "enum": [ "yettostart", "inprogress", "onhold", "completed" ], "example": "inprogress" }, "preferred_storage_id": { "description": "ID of the preferred storage location for this item. Flat mode or group by item.", "type": "string", "example": "130426000000801001" }, "storages": { "description": "Storage location assignments. Flat mode only. Maximum 100.", "type": "array", "maxItems": 100, "items": { "type": "object", "properties": { "storage_id": { "description": "ID of the storage location.", "type": "string", "example": "130426000000801001" }, "out_quantity": { "description": "Quantity assigned to this storage location.", "type": "number", "example": 5 } } } }, "serial_numbers": { "description": "Serial numbers assigned to this line item. Flat mode only. Maximum 10000.", "type": "array", "maxItems": 10000, "items": { "type": "string" }, "example": [ "SN-001", "SN-002" ] }, "batches": { "description": "Batch details for this line item. Flat mode only. Maximum 100.", "type": "array", "maxItems": 100, "items": { "type": "object", "properties": { "batch_id": { "description": "Batch identifier.", "type": "string", "example": "130426000000810031" }, "out_quantity": { "description": "Quantity in this batch.", "type": "number", "example": 5 }, "storages": { "description": "Storage location breakdown for this batch.", "type": "array", "items": { "type": "object", "properties": { "storage_id": { "description": "ID of the storage location.", "type": "string", "example": "130426000000801001" }, "out_quantity": { "description": "Quantity assigned to this storage location.", "type": "number", "example": 5 } } } } } } }, "item_custom_fields": { "description": "Custom field values for the item. Flat mode only. Maximum 1000.", "type": "array", "maxItems": 1000, "items": { "type": "object", "properties": { "label": { "description": "Label of the custom field.", "type": "string", "example": "Zone" }, "value": { "description": "Value for the custom field.", "type": "string", "example": "Zone A" } } } }, "assignee_id": { "description": "ID of the user assigned to this line item. For grouped picklists, assigns the picker to the entire group. This is not used for non-grouped picklists.", "type": "string", "example": "130426000000664060" }, "mapping_entity_details": { "description": "Child pick entries grouped under this parent line item. **Required for grouped picklists** (`group_by=item` or `sales_order`) and must contain at least one entry. Must be omitted for `group_by=none`. Maximum 1000 entries.", "type": "array", "maxItems": 1000, "items": { "$ref": "#/components/schemas/picklist-line-item-mapping-request" } } } }, "create-a-picklist-request": { "description": "Request body for creating a picklist.", "type": "object", "required": [ "line_items", "location_id" ], "properties": { "picklist_number": { "description": "Custom picklist number. Used when `ignore_auto_number_generation` is true.", "type": "string", "maxLength": 50, "example": "Pick-00001" }, "date": { "description": "Date of the picklist (yyyy-mm-dd).", "type": "string", "format": "date", "example": "2024-01-15" }, "location_id": { "description": "ID of the location.", "type": "string", "example": "130426000000664030" }, "parent_entity": { "description": "Type of the parent entity associated with the picklist.", "type": "string", "enum": [ "salesorder", "purchase_return" ], "example": "salesorder" }, "group_by": { "description": "Grouping strategy for picklist items. Controls the shape of `line_items`.
\n\nnone - flat picklist; each entry is a single pick row with all pick fields supplied directly on the line item.
\nitem - grouped by item; each entry represents one product, with the actual picks supplied as child entries inside `mapping_entity_details`.
\nsales_order - grouped by sales order; each entry represents one sales order, with picks supplied inside `mapping_entity_details`.
\n\nGrouping (`item` / `sales_order`) is supported only when `parent_entity` is `salesorder`. Picklists for `parent_entity=purchase_return` must use `group_by=none`.
\nCannot be changed after creation.\n", "type": "string", "enum": [ "none", "item", "sales_order" ], "example": "none" }, "assignee_id": { "description": "ID of the user to assign the picklist to.", "type": "string", "example": "130426000000664060" }, "notes": { "description": "Internal notes for the picklist.", "type": "string", "maxLength": 2000, "example": "Fragile items - handle with care." }, "line_items": { "description": "Picklist line items. Shape depends on `group_by`. Min 1, Max 1000.", "type": "array", "minItems": 1, "maxItems": 1000, "items": { "$ref": "#/components/schemas/picklist-line-item-request" } }, "custom_fields": { "description": "Custom field values for the picklist.", "type": "array", "maxItems": 250, "items": { "type": "object", "properties": { "label": { "description": "Label of the custom field.", "type": "string", "example": "Zone" }, "value": { "description": "Value for the custom field.", "type": "string", "example": "Zone A" } } } } } }, "update-a-picklist-request": { "description": "Request body for updating a picklist.", "type": "object", "required": [ "date", "line_items" ], "properties": { "picklist_number": { "description": "Custom picklist number. Used when `ignore_auto_number_generation` is true.", "type": "string", "maxLength": 50, "example": "Pick-00001" }, "date": { "description": "Date of the picklist (yyyy-mm-dd).", "type": "string", "format": "date", "example": "2024-01-15" }, "location_id": { "description": "ID of the location.", "type": "string", "example": "130426000000664030" }, "parent_entity": { "description": "Type of the parent entity associated with the picklist.", "type": "string", "enum": [ "salesorder", "purchase_return" ], "example": "salesorder" }, "group_by": { "description": "Same semantics as on create; see `create-a-picklist-request.group_by`. Cannot be changed after creation; resend the original value.", "type": "string", "enum": [ "none", "item", "sales_order" ], "example": "none" }, "assignee_id": { "description": "ID of the user to assign the picklist to.", "type": "string", "example": "130426000000664060" }, "notes": { "description": "Internal notes for the picklist.", "type": "string", "maxLength": 2000, "example": "Fragile items - handle with care." }, "line_items": { "description": "Updated list of picklist line items. Shape depends on `group_by`. On update, pass `line_item_id` / `mapping_line_item_id` to update existing rows; omit them to add new rows. Rows not included are removed. Min 1, Max 1000.", "type": "array", "minItems": 1, "maxItems": 1000, "items": { "$ref": "#/components/schemas/picklist-line-item-request" } }, "custom_fields": { "description": "Custom field values for the picklist.", "type": "array", "maxItems": 250, "items": { "type": "object", "properties": { "label": { "description": "Label of the custom field.", "type": "string", "example": "Zone" }, "value": { "description": "Value for the custom field.", "type": "string", "example": "Zone A" } } } } } }, "picklist-object": { "description": "A picklist record.", "type": "object", "properties": { "picklist_id": { "$ref": "#/components/schemas/picklist_id" }, "picklist_number": { "$ref": "#/components/schemas/picklist_number" }, "date": { "description": "Date of the picklist.", "type": "string", "format": "date", "readOnly": true, "example": "2024-01-15" }, "notes": { "description": "Internal notes for the picklist.", "type": "string", "readOnly": true, "example": "Fragile items - handle with care." }, "assignee_id": { "description": "ID of the user assigned to the picklist.", "type": "string", "readOnly": true, "example": "130426000000664060" }, "assignee_name": { "description": "Name of the user assigned to the picklist.", "type": "string", "readOnly": true, "example": "John Doe" }, "location_id": { "description": "ID of the location.", "type": "string", "readOnly": true, "example": "130426000000664030" }, "location_name": { "description": "Name of the location.", "type": "string", "readOnly": true, "example": "New York" }, "status": { "description": "Current status of the picklist.", "type": "string", "readOnly": true, "example": "inprogress" }, "created_time": { "description": "Timestamp when the picklist was created.", "type": "string", "readOnly": true, "example": "2024-01-15T10:30:00+05:30" }, "last_modified_time": { "description": "Timestamp when the picklist was last modified.", "type": "string", "readOnly": true, "example": "2024-01-15T11:00:00+05:30" }, "salesorder_numbers": { "description": "List of sales order numbers associated with this picklist.", "type": "array", "readOnly": true, "items": { "type": "string" }, "example": [ "SO-00001", "SO-00002" ] }, "purchase_return_numbers": { "description": "List of purchase return numbers associated with this picklist.", "type": "array", "readOnly": true, "items": { "type": "string" }, "example": [ "PR-00001" ] }, "customer_names": { "description": "List of customer names associated with this picklist.", "type": "array", "readOnly": true, "items": { "type": "string" }, "example": [ "Acme Corp" ] } } }, "picklist-detail-object": { "description": "Detailed picklist record including line items and comments.", "allOf": [ { "$ref": "#/components/schemas/picklist-object" }, { "type": "object", "properties": { "group_by": { "description": "Grouping strategy used for the picklist items: `none`, `item`, or `sales_order`. See `create-a-picklist-request.group_by` for full semantics.", "type": "string", "readOnly": true, "example": "none" }, "group_by_formatted": { "description": "Formatted display label for the group-by value.", "type": "string", "readOnly": true, "example": "None" }, "total_picking_quantity": { "description": "Total quantity of all items to be picked.", "type": "number", "readOnly": true, "example": 25 }, "parent_entity": { "description": "Type of the parent entity.", "type": "string", "readOnly": true, "example": "salesorder" }, "line_items": { "description": "Line items in the picklist.", "type": "array", "readOnly": true, "items": { "$ref": "#/components/schemas/picklist-line-item" } }, "comments": { "description": "Comments added to the picklist.", "type": "array", "readOnly": true, "items": { "type": "object", "properties": { "comment_id": { "description": "Unique ID of the comment.", "type": "string", "readOnly": true, "example": "130426000000810021" }, "description": { "description": "Text content of the comment.", "type": "string", "readOnly": true, "example": "Items checked and ready for dispatch." }, "commented_by": { "description": "Name of the user who added the comment.", "type": "string", "readOnly": true, "example": "John Doe" }, "date": { "description": "Date the comment was added.", "type": "string", "readOnly": true, "example": "2024-01-15" } } } }, "custom_fields": { "description": "Custom field values for the picklist.", "type": "array", "readOnly": true, "items": { "type": "object", "properties": { "label": { "type": "string", "readOnly": true, "example": "Zone" }, "value": { "type": "string", "readOnly": true, "example": "Zone A" } } } } } } ] }, "list-picklists-response": { "description": "Response for listing picklists.", "type": "object", "properties": { "code": { "type": "integer", "readOnly": true, "example": 0 }, "message": { "type": "string", "readOnly": true, "example": "success" }, "picklists": { "type": "array", "readOnly": true, "items": { "$ref": "#/components/schemas/picklist-object" } }, "page_context": { "type": "object", "readOnly": true, "properties": { "page": { "type": "integer", "readOnly": true, "example": 1 }, "per_page": { "type": "integer", "readOnly": true, "example": 10 }, "has_more_page": { "type": "boolean", "readOnly": true, "example": false } } } } }, "picklist-response": { "description": "Response containing a single picklist record.", "type": "object", "properties": { "code": { "type": "integer", "readOnly": true, "example": 0 }, "message": { "type": "string", "readOnly": true, "example": "Picklist has been created." }, "picklist": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/picklist-detail-object" } ] } } }, "message-response": { "description": "Generic success response with a message.", "type": "object", "properties": { "code": { "type": "integer", "readOnly": true, "example": 0 }, "message": { "type": "string", "readOnly": true, "example": "The picklist has been deleted." } } }, "add-comment-request": { "description": "Request body for adding a comment to a picklist.", "type": "object", "properties": { "description": { "description": "Text content of the comment.", "type": "string", "example": "Items checked and ready for dispatch." } } }, "comment-response": { "description": "Response containing the created comment.", "type": "object", "properties": { "code": { "type": "integer", "readOnly": true, "example": 0 }, "message": { "type": "string", "readOnly": true, "example": "Comment has been added." }, "comment": { "type": "object", "readOnly": true, "properties": { "comment_id": { "description": "Unique ID of the comment.", "type": "string", "readOnly": true, "example": "130426000000810021" }, "description": { "description": "Text content of the comment.", "type": "string", "readOnly": true, "example": "Items checked and ready for dispatch." }, "commented_by": { "description": "Name of the user who added the comment.", "type": "string", "readOnly": true, "example": "John Doe" }, "date": { "description": "Date the comment was added.", "type": "string", "readOnly": true, "example": "2024-01-15" } } } } }, "advanced-tracking-response": { "description": "Response containing advanced tracking details for a picklist.", "type": "object", "properties": { "code": { "type": "integer", "readOnly": true, "example": 0 }, "message": { "type": "string", "readOnly": true, "example": "success" }, "transaction": { "type": "object", "readOnly": true, "properties": { "transaction_id": { "$ref": "#/components/schemas/picklist_id" }, "line_items": { "description": "Line items with tracking details.", "type": "array", "readOnly": true, "items": { "type": "object", "properties": { "line_item_id": { "type": "string", "readOnly": true, "example": "130426000000810011" }, "item_id": { "type": "string", "readOnly": true, "example": "130426000000664040" }, "name": { "type": "string", "readOnly": true, "example": "Office Chair" }, "serial_numbers": { "description": "Serial numbers tracked for this line item.", "type": "array", "readOnly": true, "items": { "type": "string" }, "example": [ "SN-001", "SN-002" ] }, "batches": { "description": "Batch details tracked for this line item.", "type": "array", "readOnly": true, "items": { "type": "object", "properties": { "batch_number": { "type": "string", "readOnly": true, "example": "BATCH-001" }, "out_quantity": { "type": "number", "readOnly": true, "example": 5 } } } } } } } } } } }, "update-advanced-tracking-request": { "description": "Request body for updating advanced tracking details of a picklist.", "type": "object", "properties": { "line_items": { "description": "Line items with updated tracking information.", "type": "array", "items": { "type": "object", "properties": { "line_item_id": { "description": "ID of the line item to update.", "type": "string", "example": "130426000000810011" }, "serial_numbers": { "description": "List of serial numbers for this line item. Maximum 10000.", "type": "array", "maxItems": 10000, "items": { "type": "string" }, "example": [ "SN-001", "SN-002" ] }, "batches": { "description": "Batch details for this line item. Maximum 100.", "type": "array", "maxItems": 100, "items": { "type": "object", "properties": { "batch_id": { "description": "Batch number identifier.", "type": "string", "example": "130426000000810031" }, "out_quantity": { "description": "Quantity in this batch.", "type": "number", "example": 5 } } } } } } } } }, "search-so-line-items-response": { "description": "Response containing sales order line items available for picklist creation.", "type": "object", "properties": { "code": { "type": "integer", "readOnly": true, "example": 0 }, "message": { "type": "string", "readOnly": true, "example": "success" }, "so_line_items": { "type": "array", "readOnly": true, "items": { "type": "object", "properties": { "so_line_item_id": { "description": "Unique ID of the sales order line item.", "type": "string", "readOnly": true, "example": "130426000000700011" }, "salesorder_id": { "description": "ID of the sales order.", "type": "string", "readOnly": true, "example": "130426000000700001" }, "salesorder_number": { "description": "Number of the sales order.", "type": "string", "readOnly": true, "example": "SO-00001" }, "item_id": { "description": "ID of the item.", "type": "string", "readOnly": true, "example": "130426000000664040" }, "name": { "description": "Name of the item.", "type": "string", "readOnly": true, "example": "Office Chair" }, "customer_id": { "description": "ID of the customer.", "type": "string", "readOnly": true, "example": "130426000000664040" }, "customer_name": { "description": "Name of the customer.", "type": "string", "readOnly": true, "example": "alan" }, "sku": { "description": "SKU of the item.", "type": "string", "readOnly": true, "example": "CHAIR-001" }, "quantity": { "description": "Ordered quantity.", "type": "number", "readOnly": true, "example": 10 }, "quantity_picked": { "description": "Quantity already picked.", "type": "number", "readOnly": true, "example": 3 }, "quantity_to_be_picked": { "description": "Quantity yet to be picked for this line item.", "type": "number", "readOnly": true, "example": 7 }, "available_stock_for_picking": { "description": "Stock currently available for picking. Returned only when `showAvailableStockForPicking` is enabled.", "type": "number", "readOnly": true, "example": 25 }, "unit": { "description": "Usage unit of the line item.", "type": "string", "readOnly": true, "example": "pcs" }, "base_unit": { "description": "Base unit configured on the item.", "type": "string", "readOnly": true, "example": "pcs" }, "quantity_decimal_place": { "description": "Number of decimal places used for quantity values on this line item.", "type": "integer", "readOnly": true, "example": 2 }, "unit_conversion_id": { "description": "ID of the unit conversion applied. Returned only when unit conversion is enabled.", "type": "string", "readOnly": true, "example": "130426000000900001" }, "conversion_rate": { "description": "Unit conversion rate. Returned only when unit conversion is enabled.", "type": "number", "readOnly": true, "example": 1 }, "unit_group_id": { "description": "ID of the unit group. Returned only when unit conversion is enabled.", "type": "string", "readOnly": true, "example": "130426000000900010" }, "description": { "description": "Description of the line item.", "type": "string", "readOnly": true, "example": "Ergonomic mesh office chair." }, "image_name": { "description": "File name of the item image.", "type": "string", "readOnly": true, "example": "chair.png" }, "image_type": { "description": "File type of the item image.", "type": "string", "readOnly": true, "example": "png" }, "image_document_id": { "description": "Document ID of the item image.", "type": "string", "readOnly": true, "example": "130426000000910001" }, "is_storage_location_enabled": { "description": "Whether storage location tracking is enabled for this item. Returned only when Zoho Inventory and storage tracking are enabled.", "type": "boolean", "readOnly": true, "example": true }, "location_id": { "description": "ID of the location associated with the line item. Returned when locations are enabled.", "type": "string", "readOnly": true, "example": "130426000000664030" }, "location_name": { "description": "Name of the location.", "type": "string", "readOnly": true, "example": "New York" }, "item_custom_fields": { "description": "Custom field values configured on the item.", "type": "array", "readOnly": true, "items": { "type": "object", "properties": { "label": { "type": "string", "readOnly": true, "example": "Color" }, "value": { "type": "string", "readOnly": true, "example": "Black" } } } }, "track_serial_number": { "description": "Whether serial-number tracking is enabled for this item. Returned only when serial-number tracking is enabled in the org.", "type": "boolean", "readOnly": true, "example": false }, "track_batch_number": { "description": "Whether batch tracking is enabled for this item. Returned only when batch tracking is enabled in the org.", "type": "boolean", "readOnly": true, "example": false }, "track_serial_for_package": { "description": "Whether serial numbers are required at the package level for this line item.", "type": "boolean", "readOnly": true, "example": false }, "track_batch_for_package": { "description": "Whether batch numbers are required at the package level for this line item.", "type": "boolean", "readOnly": true, "example": false } } } } } }, "search-sales-orders-response": { "description": "Response containing sales orders available for picklist creation.", "type": "object", "properties": { "code": { "type": "integer", "readOnly": true, "example": 0 }, "message": { "type": "string", "readOnly": true, "example": "success" }, "salesorders": { "type": "array", "readOnly": true, "items": { "type": "object", "properties": { "salesorder_id": { "description": "Unique ID of the sales order.", "type": "string", "readOnly": true, "example": "130426000000700001" }, "salesorder_number": { "description": "Number of the sales order.", "type": "string", "readOnly": true, "example": "SO-00001" }, "customer_id": { "description": "ID of the customer.", "type": "string", "readOnly": true, "example": "130426000000664050" }, "customer_name": { "description": "Name of the customer.", "type": "string", "readOnly": true, "example": "Acme Corp" }, "sales_channel": { "description": "Sales channel through which the order was placed.", "type": "string", "readOnly": true, "example": "direct_sales" }, "shipment_date": { "description": "Scheduled shipment date of the sales order (yyyy-mm-dd).", "type": "string", "format": "date", "readOnly": true, "example": "2024-01-20" }, "date": { "description": "Date of the sales order (yyyy-mm-dd).", "type": "string", "format": "date", "readOnly": true, "example": "2024-01-15" }, "delivery_method_id": { "description": "ID of the delivery method.", "type": "string", "readOnly": true, "example": "130426000000750001" }, "delivery_method": { "description": "Name of the delivery method.", "type": "string", "readOnly": true, "example": "FedEx" } } } } } }, "search-pr-line-items-response": { "description": "Response containing purchase return line items available for picklist creation.", "type": "object", "properties": { "code": { "type": "integer", "readOnly": true, "example": 0 }, "message": { "type": "string", "readOnly": true, "example": "success" }, "pr_line_items": { "type": "array", "readOnly": true, "items": { "type": "object", "properties": { "pr_line_item_id": { "description": "Unique ID of the purchase return line item.", "type": "string", "readOnly": true, "example": "130426000000720011" }, "purchasereturn_id": { "description": "ID of the purchase return.", "type": "string", "readOnly": true, "example": "130426000000720001" }, "purchasereturn_number": { "description": "Number of the purchase return.", "type": "string", "readOnly": true, "example": "PR-00001" }, "item_id": { "description": "ID of the item.", "type": "string", "readOnly": true, "example": "130426000000664040" }, "name": { "description": "Name of the item.", "type": "string", "readOnly": true, "example": "Office Chair" }, "sku": { "description": "SKU of the item.", "type": "string", "readOnly": true, "example": "CHAIR-001" }, "quantity": { "description": "Return quantity.", "type": "number", "readOnly": true, "example": 5 }, "quantity_picked": { "description": "Quantity already picked.", "type": "number", "readOnly": true, "example": 2 }, "quantity_to_be_picked": { "description": "Quantity yet to be picked for this line item.", "type": "number", "readOnly": true, "example": 3 }, "available_stock_for_picking": { "description": "Stock currently available for picking. Returned only when `showAvailableStockForPicking` is enabled.", "type": "number", "readOnly": true, "example": 25 }, "unit": { "description": "Usage unit of the line item.", "type": "string", "readOnly": true, "example": "pcs" }, "base_unit": { "description": "Base unit configured on the item.", "type": "string", "readOnly": true, "example": "pcs" }, "quantity_decimal_place": { "description": "Number of decimal places used for quantity values on this line item.", "type": "integer", "readOnly": true, "example": 2 }, "unit_conversion_id": { "description": "ID of the unit conversion applied. Returned only when unit conversion is enabled.", "type": "string", "readOnly": true, "example": "130426000000900001" }, "conversion_rate": { "description": "Unit conversion rate. Returned only when unit conversion is enabled.", "type": "number", "readOnly": true, "example": 1 }, "unit_group_id": { "description": "ID of the unit group. Returned only when unit conversion is enabled.", "type": "string", "readOnly": true, "example": "130426000000900010" }, "description": { "description": "Description of the line item.", "type": "string", "readOnly": true, "example": "Ergonomic mesh office chair." }, "image_name": { "description": "File name of the item image.", "type": "string", "readOnly": true, "example": "chair.png" }, "image_type": { "description": "File type of the item image.", "type": "string", "readOnly": true, "example": "png" }, "image_document_id": { "description": "Document ID of the item image.", "type": "string", "readOnly": true, "example": "130426000000910001" }, "is_storage_location_enabled": { "description": "Whether storage location tracking is enabled for this item. Returned only when Zoho Inventory and storage tracking are enabled.", "type": "boolean", "readOnly": true, "example": true }, "location_id": { "description": "ID of the location associated with the line item. Returned when locations are enabled.", "type": "string", "readOnly": true, "example": "130426000000664030" }, "location_name": { "description": "Name of the location.", "type": "string", "readOnly": true, "example": "New York" }, "item_custom_fields": { "description": "Custom field values configured on the item.", "type": "array", "readOnly": true, "items": { "type": "object", "properties": { "label": { "type": "string", "readOnly": true, "example": "Color" }, "value": { "type": "string", "readOnly": true, "example": "Black" } } } }, "track_serial_number": { "description": "Whether serial-number tracking is enabled for this item. Returned only when serial-number tracking is enabled in the org.", "type": "boolean", "readOnly": true, "example": false }, "track_batch_number": { "description": "Whether batch tracking is enabled for this item. Returned only when batch tracking is enabled in the org.", "type": "boolean", "readOnly": true, "example": false }, "track_serial_for_package": { "description": "Whether serial numbers are required at the package level for this line item.", "type": "boolean", "readOnly": true, "example": false }, "track_batch_for_package": { "description": "Whether batch numbers are required at the package level for this line item.", "type": "boolean", "readOnly": true, "example": false } } } } } } } }