openapi: 3.0.0
info:
title: batches compositeitems API
description: Batches help you track inventory items by batch numbers, manufacturing dates, and expiration dates.
contact: {}
version: 1.0.0
servers:
- url: https://www.zohoapis.com/inventory/v1
description: API Endpoint
tags:
- name: compositeitems
description: CompositeItems Module
paths:
/compositeitems:
x-mcp-group:
- Composite Items
parameters:
- $ref: '#/components/parameters/organization_id'
post:
tags:
- compositeitems
operationId: create_composite_item
summary: Creating a Composite Item
description: A new composite item can be created after creating items that we want to associcate with composite item. User can attach image for composite item by calling Different API 'https://www.zohoapis.com/inventory/v1/compositeitems/{composite_item_id}/image', passing form-data parameter image i.e. -F image=bag_s.jpg
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/creating-a-composite-item-request'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/creating-a-composite-item-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.CREATE
get:
tags:
- compositeitems
operationId: list_composite_items
summary: List All Composite Items
description: List of all composite items.
parameters:
- name: page
in: query
description: Page Number
required: false
schema:
type: integer
example: 1
- name: per_page
in: query
description: Items to be displayed per page
required: false
schema:
type: integer
example: 25
- name: sort_column
in: query
description: 'column to be used for sorting. Allowed values: <code>name</code>,<code>sku</code>,<code>rate</code>,<code>tax_name</code>,<code>purchase_rate</code>,<code>created_time</code>,<code>last_modified_time</code>,<code>reorder_level</code>'
required: false
schema:
type: string
example: ''
- name: sort_order
in: query
description: order used for sorting
required: false
schema:
type: string
example: A
- name: filter_by
in: query
description: 'Filter items by status. Allowed values: <code>Status.All</code>,<code>Status.Active</code>,<code>Status.Inactive</code>,<code>Status.Lowstock</code>,<code>Status.Unmapped</code>,<code>Source.Crm</code>,<code>ComboType.Assembly</code>,<code>ComboType.Kit</code>'
required: false
schema:
type: string
example: ''
- name: usestate
in: query
description: Whether current filter needs to be saved
required: false
schema:
type: boolean
example: true
- name: response_option
in: query
description: response format number
required: false
schema:
type: integer
example: 0
- name: search_text
in: query
description: Search composite items by name or other attributes.
required: false
schema:
type: string
- name: name
in: query
description: Search composite items by exact name.
required: false
schema:
type: string
- name: name_contains
in: query
description: Search composite items where name contains the given value.
required: false
schema:
type: string
- name: name_startswith
in: query
description: Search composite items where name starts with the given value.
required: false
schema:
type: string
- name: sku
in: query
description: Search composite items by exact SKU.
required: false
schema:
type: string
- name: sku_contains
in: query
description: Search composite items where SKU contains the given value.
required: false
schema:
type: string
- name: status
in: query
description: 'Filter by status. Allowed values: <code>all</code>, <code>active</code>, <code>inactive</code>.'
required: false
schema:
type: string
- name: category_id
in: query
description: Filter composite items by category ID.
required: false
schema:
type: string
- name: warehouse_id
in: query
description: Filter composite items by warehouse ID.
required: false
schema:
type: string
- name: tax_id
in: query
description: Filter composite items by tax ID.
required: false
schema:
type: string
- name: last_modified_time
in: query
description: Filter composite items modified after the given date and time in UTC format.
required: false
schema:
type: string
- name: combo_type
in: query
description: 'Filter by composite item type. Allowed values: <code>assembly</code>, <code>kit</code>.'
required: false
schema:
type: string
- name: account_id
in: query
description: Filter composite items by sales account ID.
required: false
schema:
type: string
- name: purchase_account_id
in: query
description: Filter composite items by purchase account ID.
required: false
schema:
type: string
- name: location_id
in: query
description: Filter composite items by location ID.
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/list-all-composite-items-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.READ
/compositeitems/{composite_item_id}:
x-mcp-group:
- Composite Items
parameters:
- name: composite_item_id
in: path
required: true
description: Unique identifier of the composite item.
schema:
type: string
example: 504366000000053250
- $ref: '#/components/parameters/organization_id'
get:
tags:
- compositeitems
operationId: get_composite_item
summary: Retrieving a Composite Item
description: Retrieving details of an existing compostie item.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/retrieving-a-composite-item-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.READ
put:
tags:
- compositeitems
operationId: update_composite_item
summary: Updating a composite item
description: Updating details of an existing composite item.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/updating-a-composite-item-request'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/updating-a-composite-item-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.UPDATE
delete:
tags:
- compositeitems
operationId: delete_composite_item
summary: Deleting a Composite Item
description: Deleting an existing Composite Item.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/deleting-a-composite-item-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.DELETE
/compositeitems/{composite_item_id}/active:
x-mcp-group:
- Composite Items
parameters:
- name: composite_item_id
in: path
required: true
description: Unique identifier of the composite item.
schema:
type: string
example: 504366000000053250
- $ref: '#/components/parameters/organization_id'
post:
tags:
- compositeitems
operationId: mark_composite_item_active
summary: Mark as Active
description: Changing status of an existing composite item to active.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/mark-as-active-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.CREATE
/compositeitems/{composite_item_id}/inactive:
x-mcp-group:
- Composite Items
parameters:
- name: composite_item_id
in: path
required: true
description: Unique identifier of the composite item.
schema:
type: string
example: 504366000000053250
- $ref: '#/components/parameters/organization_id'
post:
tags:
- compositeitems
operationId: mark_composite_item_inactive
summary: Mark as Inactive
description: Changing status of an existing composite item to inactive.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/mark-as-inactive-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.CREATE
/compositeitems/{composite_item_id}/image:
x-mcp-group:
- Composite Items
parameters:
- name: composite_item_id
in: path
required: true
description: Unique identifier of the composite item.
schema:
type: string
example: 504366000000053250
- $ref: '#/components/parameters/organization_id'
post:
tags:
- compositeitems
operationId: upload_composite_item_image
summary: Upload Composite Item Images
description: 'Uploads an image for a composite item. Accepted image formats: <code>gif</code>, <code>png</code>, <code>jpeg</code>, <code>jpg</code>, <code>bmp</code>, <code>webp</code>. Maximum file size is 7 MB.'
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
image:
type: string
format: binary
description: Image file to upload.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/upload-composite-item-image-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.CREATE
delete:
tags:
- compositeitems
operationId: delete_composite_item_image
summary: Delete Composite Item Image
description: Deletes the images associated with a composite item.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/delete-composite-item-image-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.DELETE
/bundles:
x-mcp-group:
- Composite Items
parameters:
- $ref: '#/components/parameters/organization_id'
post:
tags:
- compositeitems
operationId: create_assemblies
summary: Create Assemblies
description: Assemblies is the technique of putting together different components in desired quantities to produce a single commodity. These components could be goods, services and other non-inventory items of your choice.
parameters:
- name: ignore_auto_number_generation
in: query
description: Ignore auto-generation of reference number. If <code>true</code>, the reference number provided in the request body is used as-is.
required: false
schema:
type: boolean
example: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/create-bundle-request'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/create-bundle-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.CREATE
get:
tags:
- compositeitems
operationId: list_assemblies
summary: Assemblies History
description: List of all Assemblies of a given composite item.
parameters:
- name: composite_item_id
in: query
description: Unique ID generated for the composite item by the server. This is used as identifier
required: true
schema:
type: string
example: 504366000000053250
- name: item_id
in: query
description: Filter assemblies by item ID.
required: false
schema:
type: string
- name: warehouse_id
in: query
description: Filter assemblies by warehouse ID.
required: false
schema:
type: string
- name: filter_by
in: query
description: 'Filter assemblies by date or status. Allowed values: <code>WorkOrderDate.All</code>, <code>WorkOrderDate.Today</code>, <code>WorkOrderDate.ThisWeek</code>, <code>WorkOrderDate.ThisMonth</code>, <code>WorkOrderDate.ThisQuarter</code>, <code>WorkOrderDate.ThisYear</code>, <code>Status.All</code>, <code>Status.Pending</code>, <code>Status.Built</code>, <code>Status.Confirmed</code>.'
required: false
schema:
type: string
example: Status.All
- name: sort_column
in: query
description: 'Column used for sorting. Allowed values: <code>date</code>, <code>total</code>, <code>created_time</code>, <code>last_modified_time</code>, <code>reference_number</code>.'
required: false
schema:
type: string
example: created_time
- name: sort_order
in: query
description: 'Order used for sorting. Allowed values: <code>A</code> for ascending, <code>D</code> for descending.'
required: false
schema:
type: string
example: D
- name: search_text
in: query
description: Search assemblies by keyword.
required: false
schema:
type: string
- name: location_id
in: query
description: Filter assemblies by location ID.
required: false
schema:
type: string
- name: project_id
in: query
description: Filter assemblies by project ID.
required: false
schema:
type: string
- name: reference_number
in: query
description: Search assemblies by exact reference number.
required: false
schema:
type: string
- name: reference_number_contains
in: query
description: Search assemblies where reference number contains the given value.
required: false
schema:
type: string
- name: date_start
in: query
description: Filter assemblies with date on or after the given date (yyyy-mm-dd).
required: false
schema:
type: string
format: date
- name: date_end
in: query
description: Filter assemblies with date on or before the given date (yyyy-mm-dd).
required: false
schema:
type: string
format: date
- name: status
in: query
description: 'Filter assemblies by status. Allowed values: <code>draft</code>, <code>confirmed</code>, <code>bundled</code>.'
required: false
schema:
type: string
- name: page
in: query
description: Page number to be fetched. Default value is 1.
required: false
schema:
type: integer
default: 1
example: 1
- name: per_page
in: query
description: Number of records to be fetched per page. Default value is 200.
required: false
schema:
type: integer
default: 200
example: 200
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/bundling-history-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.READ
/bundles/{bundle_id}:
x-mcp-group:
- Composite Items
parameters:
- name: bundle_id
in: path
required: true
description: Unique identifier of the bundle.
schema:
type: string
example: 504366000000053250
- $ref: '#/components/parameters/organization_id'
get:
tags:
- compositeitems
operationId: get_assembly
summary: Retrieve Assemblies
description: Fetches the details for an existing Assemblies.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/retrieve-bundle-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.READ
put:
tags:
- compositeitems
operationId: update_assembly
summary: Update an Assembly
description: Updates the details of an existing assembly.
parameters:
- name: ignore_auto_number_generation
in: query
description: Ignore auto-generation of reference number. If <code>true</code>, the reference number provided in the request body is used as-is.
required: false
schema:
type: boolean
example: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/update-bundle-request'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/update-bundle-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.UPDATE
delete:
tags:
- compositeitems
operationId: delete_assembly
summary: Delete Assemblies
description: Deletes an existing Assemblies from Zoho Inventory.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/delete-bundle-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.DELETE
/bundles/{bundle_id}/bundled:
x-mcp-group:
- Composite Items
parameters:
- name: bundle_id
in: path
required: true
description: Unique identifier of the bundle.
schema:
type: string
example: 504366000000053250
- $ref: '#/components/parameters/organization_id'
post:
tags:
- compositeitems
operationId: mark_assembly_as_built
summary: Mark Assembly as Assembled
description: Marks an existing assembly as built, indicating that the composite item has been assembled from its components.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/mark-assembly-as-built-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.CREATE
/bundles/{bundle_id}/confirmed:
x-mcp-group:
- Composite Items
parameters:
- name: bundle_id
in: path
required: true
description: Unique identifier of the bundle.
schema:
type: string
example: 504366000000053250
- $ref: '#/components/parameters/organization_id'
post:
tags:
- compositeitems
operationId: mark_assembly_as_confirmed
summary: Mark Assembly as Confirmed
description: Marks an existing assembly as confirmed.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/mark-assembly-as-confirmed-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.compositeitems.CREATE
components:
schemas:
deleting-a-composite-item-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: The item has been deleted.
readOnly: true
composite_item_id:
description: Unique ID generated for the composite item by the server. This is used as identifier
type: string
example: 504366000000053250
updating-a-composite-item-request:
required:
- name
- sku
- mapped_items
- rate
- item_type
- product_type
type: object
properties:
composite_item_id:
$ref: '#/components/schemas/composite_item_id'
name:
$ref: '#/components/schemas/name'
unit:
$ref: '#/components/schemas/unit'
tax_id:
$ref: '#/components/schemas/tax_id'
description:
$ref: '#/components/schemas/description'
tax_name:
$ref: '#/components/schemas/tax_name'
tax_percentage:
$ref: '#/components/schemas/tax_percentage'
tax_type:
$ref: '#/components/schemas/tax_type'
purchase_account_id:
$ref: '#/components/schemas/purchase_account_id'
purchase_account_name:
$ref: '#/components/schemas/purchase_account_name'
account_id:
$ref: '#/components/schemas/account_id'
account_name:
$ref: '#/components/schemas/account_name'
inventory_account_id:
$ref: '#/components/schemas/inventory_account_id'
inventory_account_name:
$ref: '#/components/schemas/inventory_account_name'
status:
$ref: '#/components/schemas/status'
source:
$ref: '#/components/schemas/source'
is_combo_product:
$ref: '#/components/schemas/is_combo_product'
item_type:
$ref: '#/components/schemas/item_type'
rate:
$ref: '#/components/schemas/rate'
pricebook_rate:
$ref: '#/components/schemas/pricebook_rate'
purchase_rate:
$ref: '#/components/schemas/purchase_rate'
reorder_level:
$ref: '#/components/schemas/reorder_level'
initial_stock:
$ref: '#/components/schemas/initial_stock'
initial_stock_rate:
$ref: '#/components/schemas/initial_stock_rate'
vendor_id:
$ref: '#/components/schemas/vendor_id'
vendor_name:
$ref: '#/components/schemas/vendor_name'
stock_on_hand:
$ref: '#/components/schemas/stock_on_hand'
asset_value:
$ref: '#/components/schemas/asset_value'
available_stock:
$ref: '#/components/schemas/available_stock'
actual_available_stock:
$ref: '#/components/schemas/actual_available_stock'
sku:
$ref: '#/components/schemas/sku'
upc:
$ref: '#/components/schemas/upc'
ean:
$ref: '#/components/schemas/ean'
isbn:
$ref: '#/components/schemas/isbn'
part_number:
$ref: '#/components/schemas/part_number'
image_id:
$ref: '#/components/schemas/image_id'
image_name:
$ref: '#/components/schemas/image_name'
purchase_description:
$ref: '#/components/schemas/purchase_description'
custom_fields:
$ref: '#/components/schemas/custom_fields'
mapped_items:
$ref: '#/components/schemas/mapped_items'
item_tax_preferences:
$ref: '#/components/schemas/item_tax_preferences'
hsn_or_sac:
$ref: '#/components/schemas/hsn_or_sac'
product_type:
description: Type of the product.
type: string
example: goods
combo_type:
description: 'Type of composite item. Allowed values: <code>assembly</code>, <code>kit</code>.'
type: string
example: assembly
ean:
description: European Article Number, 13 digit barcode number of the item
type: string
example: 5789414385764
inventory_account_name:
description: Name of inventory type
type: string
example: Inventory Asset
vendor_name:
description: Name of the preferred vendor
type: string
example: Mr. vendor combo
batches:
description: Batch details for the line item. Reference an existing batch using <code>batch_id</code>. Applicable only for items with batch tracking enabled.
type: array
items:
type: object
required:
- batch_id
- out_quantity
properties:
batch_id:
description: Unique identifier of an existing batch.
type: string
example: '6780203000000176162'
out_quantity:
description: Quantity consumed from the batch.
type: number
format: float
example: 1
storages:
description: Bin/storage locations from which stock was consumed for this batch.
type: array
x-node_available_in:
- Batch with Bin tracked items
items:
type: object
required:
- storage_id
- out_quantity
properties:
storage_id:
description: Unique identifier of the bin/storage location.
type: string
example: '6780203000000093226'
out_quantity:
description: Quantity consumed from the bin.
type: number
format: float
example: 1
mark-as-active-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: Re-activation complete! The item is back in business!
readOnly: true
available_stock:
description: Stock based on Shipments and Receives
type: number
format: double
example: 2
item_id:
description: Unique ID generated by the server for the Item. This is used as an identifier.
type: string
example: 4815000000044208
bundle_id:
description: Unique ID generated for the Assemblies by the server. This is used as identifier
type: string
example: 504366000000053250
updating-a-composite-item-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: Item details have been saved.
readOnly: true
composite_item:
$ref: '#/components/schemas/composite_item'
account_id:
description: Unique ID generated by the server for the type of sale of this item
type: string
example: 504366000000000400
serial_numbers:
description: Serial numbers for the line item. Applicable only for items with serial tracking enabled.
type: array
items:
type: string
example: PKG-003
date:
description: The date on which Assemblies is done
type: string
format: date
example: '2017-01-05'
purchase_account_id:
description: Unique ID generated by the server for the type of purchase
type: string
example: 504366000000034000
purchase_rate:
description: Buying price of the item
type: number
format: double
example: 30000
custom_fields:
description: Custom fields are used to add more information about the item
type: array
items:
type: object
properties:
customfield_id:
$ref: '#/components/schemas/customfield_id'
value:
$ref: '#/components/schemas/value'
label:
$ref: '#/components/schemas/label'
item_type:
description: Type of item <code>Always inventory</code>
type: string
example: inventory
value:
description: Value of the custom field.
type: string
example: GBGD078
tax_specification:
description: Type of tax. It can be <code> intra</code> or <code> inter</code>
type: string
example: intra
x-node_available_in:
- in
x-node_unavailable_in: []
create-bundle-request:
required:
- reference_number
- date
- composite_item_id
- composite_item_name
- quantity_to_bundle
- line_items
- is_completed
type: object
properties:
reference_number:
$ref: '#/components/schemas/reference_number'
date:
$ref: '#/components/schemas/date'
description:
$ref: '#/components/schemas/description'
composite_item_id:
$ref: '#/components/schemas/composite_item_id'
composite_item_name:
$ref: '#/components/schemas/composite_item_name'
composite_item_sku:
$ref: '#/components/schemas/composite_item_sku'
quantity_to_bundle:
$ref: '#/components/schemas/quantity_to_bundle'
status:
description: 'Status of the assembly. Allowed values: <code>draft</code>, <code>confirmed</code>, <code>bundled</code>.'
type: string
example: draft
warehouse_id:
description: Warehouse ID for the assembly.
type: string
example: '460000000038080'
location_id:
$ref: '#/components/schemas/location_id'
line_items:
description: A assemblies can contain multiple line items. Each line item contains <code>item_id</code>,<code>name</code>,<code>description</code>,<code>quantity_consumed</code>,<code>unit</code>,<code>account_id</code>,<code>location_id</code>.
type: array
items:
type: object
required:
- item_id
- name
- quantity_consumed
- account_id
- location_id
properties:
item_id:
$ref: '#/components/schemas/item_id'
name:
$ref: '#/components/schemas/name'
sku:
description: SKU of the component item.
type: string
example: SK123
description:
$ref: '#/components/schemas/description'
quantity_consumed:
$ref: '#/components/schemas/quantity_consumed'
total_quantity_consumed:
description: Total quantity consumed for this component.
type: number
format: double
example: 2
unit:
$ref: '#/components/schemas/unit'
rate:
$ref: '#/components/schemas/rate'
account_id:
$ref: '#/components/schemas/account_id'
account_name:
$ref: '#/components/schemas/account_name'
location_id:
$ref: '#/components/schemas/location_id'
location_name:
$ref: '#/components/schemas/location_name'
warehouse_id:
description: Warehouse ID for the component item.
type: string
example: '460000000038080'
item_order:
description: Sort order
# --- truncated at 32 KB (86 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoho-inventory/refs/heads/main/openapi/zoho-inventory-compositeitems-api-openapi.yml