Stock Counts

Stock Counts AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Stock Counts enable you to physically verify the actual quantity of items available in your inventory and compare them with the quantities recorded in the system. By identifying and reconciling any differences, you can maintain accurate stock levels, improve inventory control, and prevent issues such as stock discrepancies, shrinkage, or mismanagement. Regular stock counts ensure your inventory data stays reliable and up to date.

Download Stock Counts OpenAPI Document
End Points
Create a stock count
List all stock counts
Bulk delete stock counts
Update a stock count
Retrieve a stock count
Delete a stock count
Start a stock count
Update counted quantities
Submit a stock count for approval
Approve or reject line items in a stock count
Cancel a stock count
Create a recurring stock count profile
List all recurring stock count profiles
Mark a recurring stock count profile as active
Mark a recurring stock count profile as inactive
Update a recurring stock count profile
Retrieve a recurring stock count profile
Delete a recurring stock count profile
List serial/batch tracking details for a count line item
List storage details for a count item
Search items in in-progress stock counts
Search storage locations in in-progress stock counts
Update stock count auto-numbering settings
Update stock counts preferences

Create a stock count AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Creates a new stock count (stock take) in Zoho Inventory. The count starts in yet_to_start status. You must specify the warehouse/location and the line items (products) to count. Duplicate products in line items are not allowed. A maximum of 1000 line items per count (5000 if extended limit is enabled).
OAuth Scope : ZohoInventory.inventorycount.CREATE

Arguments

inventorycount_number
string
Custom stock count number. Used only when ignore_auto_number_generation=true is passed as a query parameter. Otherwise the number is auto-generated.
description
string
Additional notes or remarks for the stock count.
warehouse_id
string
Unique ID of the warehouse to count. Required when multi-warehouse is enabled and locations are not enabled.
location_id
string
(Required)
Unique ID of the location to count. Required when locations are enabled. Mutually exclusive with warehouse_id.
assignee_id
string
(Required)
Unique ID of the user assigned to perform the count.
line_items
array
(Required)
Products to include in this stock count. Each line item requires an item_id. Duplicate products are not allowed.
Show Sub-Attributes arrow
item_id
string
(Required)
Unique ID of the product (item) in the line item.
item_order
integer
Position/order of the line item within the stock count. Used to control the display sequence of items.

Query Parameters

organization_id
string
(Required)
ID of the organization
ignore_auto_number_generation
boolean
When true, the auto-numbering sequence is not used and the inventorycount_number value from the request body is used as-is. Default is false.
importfile
binary
File containing line items to import. Allowed formats: csv, xls, tsv, xlsx. Max size 10 MB.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/inventorycounts?organization_id=10234695" type: POST headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/inventorycounts?organization_id=10234695") .post(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/inventory/v1/inventorycounts?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("POST", "/inventory/v1/inventorycounts?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/inventorycounts?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request POST \ --url 'https://www.zohoapis.com/inventory/v1/inventorycounts?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "inventorycount_number": "IC-00001", "description": "Monthly stock take for warehouse A.", "warehouse_id": "4815000000038080", "location_id": "4815000000038080", "assignee_id": "4815000000012345", "line_items": [ { "item_id": "4815000000033001", "item_order": 1 } ] }

Response Example

{ "code": 0, "message": "Stock count has been saved.", "inventorycount": { "inventorycount_id": "4815000000044100", "inventorycount_number": "IC-00001", "count_date": "2025-06-15", "description": "Monthly stock take for warehouse A.", "status": "yet_to_start", "count_type": "count", "location_id": "4815000000038080", "location_name": "Main Warehouse", "assignee_id": "4815000000012345", "assignee_name": "John Smith", "line_items": [ { "line_item_id": "4815000000044897", "item_id": "4815000000033001", "item_name": "Laptop 15-inch", "item_order": 1, "sku": "LAP-15-WHT", "unit": "pcs", "system_quantity": 50, "counted_quantity": 48, "stock_variance": -2, "track_serial_number": false, "track_batch_number": true, "is_matched": false, "has_tracking_details_mismatch": false, "status": "draft", "reason_id": "4815000000000388" } ] } }

List all stock counts AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Returns a paginated list of all stock counts in the organization. Supports filtering by status or assignee, searching by count number or description, and sorting by various columns. Default sort is by created_time descending.
OAuth Scope : ZohoInventory.inventorycount.READ

Query Parameters

organization_id
string
(Required)
ID of the organization
filter_by
string
Filter counts by status or assignee. Allowed values: Status.All (default, all counts), Assignee.Self (counts assigned to the current user).
status
string
Filter counts by a specific status value. Allowed values: yet_to_start, counting, submitted, processing, completed, cancelled, expired, approval_in_progress, start_in_progress, submission_in_progress.
search_text
string
Search text to filter counts by stock count number or description.
inventorycount_number
string
Filter by an exact or partial stock count number.
description
string
Filter by count description (notes).
assignee_id
string
Filter counts assigned to a specific user ID.
assignee_ids
string
Comma-separated list of assignee user IDs to filter by.
created_by
string
Filter counts created by a specific user ID.
warehouse_ids
string
Comma-separated list of warehouse IDs to filter counts by.
location_ids
string
Comma-separated list of location IDs to filter counts by. Use when locations are enabled.
count_date
string
Filter counts by scheduled count date in YYYY-MM-DD format.
recurring_inventorycount_id
string
Filter counts that were generated by a specific recurring stock count profile.
sort_column
string
Column to sort results by. Allowed values: created_time, count_date, inventorycount_number, last_modified_time. Default is created_time.
sort_order
string
Sort direction. A for ascending, D for descending. Default is D.
page
integer
Page number to fetch. Default is 1.
per_page
integer
Number of records per page. Default is 200.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/inventorycounts?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/inventorycounts?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/inventorycounts?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/inventory/v1/inventorycounts?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/inventorycounts?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/inventory/v1/inventorycounts?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "inventorycounts": [ { "inventorycount_id": "4815000000044100", "inventorycount_number": "IC-00001", "status": "yet_to_start", "count_date": "2025-06-15", "warehouse_id": "4815000000038080", "warehouse_name": "Main Warehouse", "location_id": "4815000000038080", "location_name": "Main Warehouse", "number_of_items": 20, "number_of_items_counted": 15, "number_of_items_skipped": 2, "number_of_items_adjusted": 5, "number_of_items_approved": 3, "number_of_items_rejected": 2, "accuracy": 85.5, "assignee_id": "4815000000012345", "assignee_name": "John Smith", "assignee_photo_url": "https://contacts.zoho.com/file?t=photo&ID=12345", "created_by_id": "4815000000012300", "created_by_name": "Jane Doe", "created_by_photo_url": "https://contacts.zoho.com/file?t=photo&ID=12300", "last_modified_by_id": "4815000000012345", "last_modified_by_name": "John Smith", "created_time": "2025-06-15T09:00:00+0530", "last_modified_time": "2025-06-15T11:30:00+0530" }, {...}, {...} ], "page_context": { "page": 1, "per_page": 200, "has_more_page": false, "sort_column": "created_time", "sort_order": "D", "applied_filter": "Status.All" } }

Bulk delete stock counts AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Deletes multiple stock counts in a single request. Counts with associated inventory adjustments cannot be deleted.
OAuth Scope : ZohoInventory.inventorycount.DELETE

Query Parameters

organization_id
string
(Required)
ID of the organization
inventorycount_ids
string
(Required)
Comma-separated list of stock count IDs to delete.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/inventorycounts?organization_id=10234695&inventorycount_ids=4815000000044100,4815000000044101" type: DELETE headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/inventorycounts?organization_id=10234695&inventorycount_ids=4815000000044100%2C4815000000044101") .delete(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'DELETE', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/inventorycounts?organization_id=10234695&inventorycount_ids=4815000000044100%2C4815000000044101', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("DELETE", "/inventory/v1/inventorycounts?organization_id=10234695&inventorycount_ids=4815000000044100%2C4815000000044101", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "DELETE", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/inventorycounts?organization_id=10234695&inventorycount_ids=4815000000044100%2C4815000000044101", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request DELETE \ --url 'https://www.zohoapis.com/inventory/v1/inventorycounts?organization_id=10234695&inventorycount_ids=4815000000044100%2C4815000000044101' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "Stock counts have been deleted." }

Update a stock count AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Updates the details of an existing stock count that is in yet_to_start status. You can update the assignee, notes, and line items. Warehouse/location cannot be changed once child counts exist.
OAuth Scope : ZohoInventory.inventorycount.UPDATE

Arguments

inventorycount_number
string
Custom stock count number. Used only when ignore_auto_number_generation=true was specified during creation.
description
string
Additional notes or remarks for the stock count.
assignee_id
string
Unique ID of the user assigned to perform the count.
line_items
array
Updated list of products for this stock count. Include line_item_id for existing items; omit it to add new items. Product IDs cannot be changed for existing line items.
Show Sub-Attributes arrow
line_item_id
string
Unique ID generated by the server for this line item in the stock count.
item_id
string
Unique ID of the product (item) in the line item.
item_order
integer
Position/order of the line item within the stock count. Used to control the display sequence of items.

Path Parameters

inventorycount_id
string
(Required)
Unique identifier of the stock count.

Query Parameters

organization_id
string
(Required)
ID of the organization
ignore_auto_number_generation
boolean
When true, the auto-numbering sequence is not used and the inventorycount_number value from the request body is used as-is.
is_overwrite
boolean
When true, the existing line items are completely replaced with the line items provided in the request body. When false, the provided line items are merged with existing ones. Applicable only when importfile are included in the request.
importfile
binary
File containing line items to import. Allowed formats: csv, xls, tsv, xlsx. Max size 10 MB.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695" type: PUT headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695") .put(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PUT', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("PUT", "/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PUT", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request PUT \ --url 'https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "inventorycount_number": "IC-00001", "description": "Monthly stock take for warehouse A.", "assignee_id": "4815000000012345", "line_items": [ { "line_item_id": "4815000000044897", "item_id": "4815000000033001", "item_order": 1 } ] }

Response Example

{ "code": 0, "message": "Stock count has been saved.", "inventorycount": { "inventorycount_id": "4815000000044100", "inventorycount_number": "IC-00001", "count_date": "2025-06-15", "description": "Monthly stock take for warehouse A.", "status": "yet_to_start", "count_type": "count", "location_id": "4815000000038080", "location_name": "Main Warehouse", "assignee_id": "4815000000012345", "assignee_name": "John Smith", "line_items": [ { "line_item_id": "4815000000044897", "item_id": "4815000000033001", "item_name": "Laptop 15-inch", "item_order": 1, "sku": "LAP-15-WHT", "unit": "pcs", "system_quantity": 50, "counted_quantity": 48, "stock_variance": -2, "track_serial_number": false, "track_batch_number": true, "is_matched": false, "has_tracking_details_mismatch": false, "status": "draft", "reason_id": "4815000000000388" } ] } }

Retrieve a stock count AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Fetches the complete details of an existing stock count including its header information, line items, status, assignee details, and any associated inventory adjustments.
OAuth Scope : ZohoInventory.inventorycount.READ

Path Parameters

inventorycount_id
string
(Required)
Unique identifier of the stock count.

Query Parameters

organization_id
string
(Required)
ID of the organization

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "inventorycount": { "inventorycount_id": "4815000000044100", "inventorycount_number": "IC-00001", "count_date": "2025-06-15", "description": "Monthly stock take for warehouse A.", "status": "yet_to_start", "count_type": "count", "location_id": "4815000000038080", "location_name": "Main Warehouse", "assignee_id": "4815000000012345", "assignee_name": "John Smith", "line_items": [ { "line_item_id": "4815000000044897", "item_id": "4815000000033001", "item_name": "Laptop 15-inch", "item_order": 1, "sku": "LAP-15-WHT", "unit": "pcs", "system_quantity": 50, "counted_quantity": 48, "stock_variance": -2, "track_serial_number": false, "track_batch_number": true, "is_matched": false, "has_tracking_details_mismatch": false, "status": "draft", "reason_id": "4815000000000388" } ] }, "can_assignee_count": true, "can_assignee_access_warehouse": true }

Delete a stock count AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Deletes an existing stock count. Counts with associated inventory adjustments cannot be deleted.
OAuth Scope : ZohoInventory.inventorycount.DELETE

Path Parameters

inventorycount_id
string
(Required)
Unique identifier of the stock count.

Query Parameters

organization_id
string
(Required)
ID of the organization

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695" type: DELETE headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695") .delete(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'DELETE', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("DELETE", "/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "DELETE", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request DELETE \ --url 'https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "Stock count has been deleted." }

Start a stock count AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Initiates the counting process for a stock count that is in yet_to_start status. This captures the system quantities for each line item at the time of start and moves the count to counting status. Only the assigned user can start the count. If start is scheduled in background, the response message indicates it is in progress.
OAuth Scope : ZohoInventory.inventorycount.UPDATE

Path Parameters

inventorycount_id
string
(Required)
Unique identifier of the stock count.

Query Parameters

organization_id
string
(Required)
ID of the organization

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/start?organization_id=10234695" type: POST headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/start?organization_id=10234695") .post(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/start?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("POST", "/inventory/v1/inventorycounts/4815000000044100/start?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/inventorycounts/4815000000044100/start?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request POST \ --url 'https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/start?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "Stock count has been saved.", "inventorycount": { "inventorycount_id": "4815000000044100", "inventorycount_number": "IC-00001", "count_date": "2025-06-15", "description": "Monthly stock take for warehouse A.", "status": "yet_to_start", "count_type": "count", "location_id": "4815000000038080", "location_name": "Main Warehouse", "assignee_id": "4815000000012345", "assignee_name": "John Smith", "line_items": [ { "line_item_id": "4815000000044897", "item_id": "4815000000033001", "item_name": "Laptop 15-inch", "item_order": 1, "sku": "LAP-15-WHT", "unit": "pcs", "system_quantity": 50, "counted_quantity": 48, "stock_variance": -2, "track_serial_number": false, "track_batch_number": true, "is_matched": false, "has_tracking_details_mismatch": false, "status": "draft", "reason_id": "4815000000000388" } ] } }

Update counted quantities AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Records or updates the physical counted quantities for line items in a count that is in counting status. Only the assigned user can enter counted quantities. Pass next_action: "submit" to automatically submit the count after recording quantities. If next_action is submit and no line items are provided, only the submission is triggered. Counted quantity can be set to null to mark a line item as uncounted.
OAuth Scope : ZohoInventory.inventorycount.UPDATE

Arguments

next_action
string
Optional action to perform after saving counted quantities. Use submit to automatically submit the count for approval after recording quantities.
line_items
array
Line items with counted quantities to record. Each item requires the line_item_id and the counted_quantity. Pass "" for counted_quantity to mark the item as uncounted.
Show Sub-Attributes arrow
line_item_id
string
(Required)
Unique ID generated by the server for this line item in the stock count.
counted_quantity
double
(Required)
The physical quantity of the product as counted by the assignee. Null indicates the item has not been counted yet.
counted_serial_numbers
array
Array of serial number strings counted for this line item. Applicable only for serial-tracked items.
counted_batches
array
Array of batch entries counted for this line item. Applicable only for batch-tracked items.
Show Sub-Attributes arrow
batch_number
string
(Required)
Batch number of the counted batch.
counted_quantity
double
(Required)
Quantity counted for this batch.

Path Parameters

inventorycount_id
string
(Required)
Unique identifier of the stock count.

Query Parameters

organization_id
string
(Required)
ID of the organization
set_uncounted_as_zero
boolean
When true, uncounted line items are treated as having a counted quantity of zero. Passed only when next_action=submit.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/count?organization_id=10234695" type: PUT headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/count?organization_id=10234695") .put(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PUT', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/count?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("PUT", "/inventory/v1/inventorycounts/4815000000044100/count?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PUT", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/inventorycounts/4815000000044100/count?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request PUT \ --url 'https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/count?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "next_action": "submit", "line_items": [ { "line_item_id": "4815000000044897", "counted_quantity": 48, "counted_serial_numbers": [ "SN-00123", "SN-00124" ], "counted_batches": [ { "batch_number": "BATCH-2025-06", "counted_quantity": 10 } ] } ] }

Response Example

{ "code": 0, "message": "Stock count has been saved.", "inventorycount": { "inventorycount_id": "4815000000044100", "inventorycount_number": "IC-00001", "count_date": "2025-06-15", "description": "Monthly stock take for warehouse A.", "status": "yet_to_start", "count_type": "count", "location_id": "4815000000038080", "location_name": "Main Warehouse", "assignee_id": "4815000000012345", "assignee_name": "John Smith", "line_items": [ { "line_item_id": "4815000000044897", "item_id": "4815000000033001", "item_name": "Laptop 15-inch", "item_order": 1, "sku": "LAP-15-WHT", "unit": "pcs", "system_quantity": 50, "counted_quantity": 48, "stock_variance": -2, "track_serial_number": false, "track_batch_number": true, "is_matched": false, "has_tracking_details_mismatch": false, "status": "draft", "reason_id": "4815000000000388" } ] } }

Submit a stock count for approval AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Submits a count that is in counting status for review and approval. Moves the count to submitted (pending approval) status. Pass set_uncounted_as_zero=true as a query parameter to treat any uncounted items as having a counted quantity of zero before submission. If submission is scheduled in background, the response message indicates it is in progress.
OAuth Scope : ZohoInventory.inventorycount.UPDATE

Path Parameters

inventorycount_id
string
(Required)
Unique identifier of the stock count.

Query Parameters

organization_id
string
(Required)
ID of the organization
set_uncounted_as_zero
boolean
When true, uncounted line items are treated as having a counted quantity of zero before submission.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/submit?organization_id=10234695" type: POST headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/submit?organization_id=10234695") .post(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/submit?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("POST", "/inventory/v1/inventorycounts/4815000000044100/submit?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/inventorycounts/4815000000044100/submit?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request POST \ --url 'https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/submit?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "Stock count has been saved.", "inventorycount": { "inventorycount_id": "4815000000044100", "inventorycount_number": "IC-00001", "count_date": "2025-06-15", "description": "Monthly stock take for warehouse A.", "status": "yet_to_start", "count_type": "count", "location_id": "4815000000038080", "location_name": "Main Warehouse", "assignee_id": "4815000000012345", "assignee_name": "John Smith", "line_items": [ { "line_item_id": "4815000000044897", "item_id": "4815000000033001", "item_name": "Laptop 15-inch", "item_order": 1, "sku": "LAP-15-WHT", "unit": "pcs", "system_quantity": 50, "counted_quantity": 48, "stock_variance": -2, "track_serial_number": false, "track_batch_number": true, "is_matched": false, "has_tracking_details_mismatch": false, "status": "draft", "reason_id": "4815000000000388" } ] } }

Approve or reject line items in a stock count AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Approves or rejects individual line items in a count that is in submitted (pending approval) status. Each line item must specify an item_id and an approval_status of either approved or rejected. Approved items with quantity differences trigger inventory adjustments. Rejected items can be recounted. If approval is scheduled in background, the response message indicates it is in progress.
OAuth Scope : ZohoInventory.inventorycount.UPDATE

Arguments

line_items
array
(Required)
List of line items with approval decisions. For each item specify the line_item_id, the approval_status (approved or rejected), and optionally a reason_id for the adjustment.
Show Sub-Attributes arrow
line_item_id
string
(Required)
Unique ID generated by the server for this line item in the stock count.
approval_status
string
(Required)
Approval decision for the line item. Use approved to approve and create an adjustment for any discrepancy, or rejected to reject and trigger a recount.
reason_id
string
Unique ID of the adjustment reason used when approving a discrepancy. When this ID is provided, reason-based adjustments will be generated.

Path Parameters

inventorycount_id
string
(Required)
Unique identifier of the stock count.

Query Parameters

organization_id
string
(Required)
ID of the organization

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/approve?organization_id=10234695" type: PUT headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/approve?organization_id=10234695") .put(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PUT', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/approve?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("PUT", "/inventory/v1/inventorycounts/4815000000044100/approve?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PUT", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/inventorycounts/4815000000044100/approve?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request PUT \ --url 'https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/approve?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "line_items": [ { "line_item_id": "4815000000044897", "approval_status": "approved", "reason_id": "4815000000000388" } ] }

Response Example

{ "code": 0, "message": "Stock count has been saved.", "inventorycount": { "inventorycount_id": "4815000000044100", "inventorycount_number": "IC-00001", "count_date": "2025-06-15", "description": "Monthly stock take for warehouse A.", "status": "yet_to_start", "count_type": "count", "location_id": "4815000000038080", "location_name": "Main Warehouse", "assignee_id": "4815000000012345", "assignee_name": "John Smith", "line_items": [ { "line_item_id": "4815000000044897", "item_id": "4815000000033001", "item_name": "Laptop 15-inch", "item_order": 1, "sku": "LAP-15-WHT", "unit": "pcs", "system_quantity": 50, "counted_quantity": 48, "stock_variance": -2, "track_serial_number": false, "track_batch_number": true, "is_matched": false, "has_tracking_details_mismatch": false, "status": "draft", "reason_id": "4815000000000388" } ] } }

Cancel a stock count AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Cancels a stock count that is in yet_to_start or counting status. Cancelled counts cannot be restarted.
OAuth Scope : ZohoInventory.inventorycount.UPDATE

Path Parameters

inventorycount_id
string
(Required)
Unique identifier of the stock count.

Query Parameters

organization_id
string
(Required)
ID of the organization

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/cancel?organization_id=10234695" type: POST headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/cancel?organization_id=10234695") .post(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/cancel?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("POST", "/inventory/v1/inventorycounts/4815000000044100/cancel?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/inventorycounts/4815000000044100/cancel?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request POST \ --url 'https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/cancel?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "Stock count has been cancelled." }

Create a recurring stock count profile AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Creates a recurring stock count profile that automatically generates stock counts on a schedule. Two schedule types are supported: auto (system-generated schedule based on recurrence frequency) and manual (user-specified count dates). For auto schedules, provide start_date, recurrence_frequency, repeat_every, and optionally end_date or no_of_cycles. For manual schedules, provide count_dates. Maximum 1000 line items (5000 if extended limit is enabled).
OAuth Scope : ZohoInventory.inventorycount.CREATE

Arguments

title
string
Name of the recurring stock count profile.
schedule_type
string
(Required)
Type of schedule for the recurring count. auto generates counts automatically based on a recurrence frequency; manual uses specific user-defined dates.
location_id
string
(Required)
Unique ID of the warehouse or location being counted.
assignee_id
string
Unique ID of the user assigned to perform the count.
description
string
Additional notes or remarks for the stock count.
remind_before
integer
Number of days before the next count date to send a reminder notification. Set to 0 or omit to disable reminders.
start_date
string
Required for auto schedule. The start date of the recurrence in YYYY-MM-DD format. Must be today or a future date.
end_date
string
Optional for auto schedule. The end date of the recurrence in YYYY-MM-DD format. Mutually exclusive with no_of_cycles.
no_of_cycles
integer
Optional for auto schedule. The maximum number of count cycles. Mutually exclusive with end_date.
recurrence_frequency
string
Required for auto schedule. Frequency unit for recurrence. Allowed values: days, weeks, months.
repeat_every
integer
Required for auto schedule. Interval value for recurrence (e.g., 1 for every 1 month).
count_dates
array
Required for manual schedule. List of specific count dates in YYYY-MM-DD format.
execution_time
string
Time of day at which the count should be triggered, in HH:mm (24-hour) format. Applies to both auto and manual schedules. Defaults to 00:00 if not specified.
run_specific_days
array
For auto schedule with recurrence_frequency: weeks. Array of day-of-week values on which the count should run (e.g., ["MON", "WED", "FRI"]).
run_specific_date
integer
For auto schedule with recurrence_frequency: months. Day of the month (1-31) on which the count should run.
run_specific_week
string
For auto schedule with recurrence_frequency: months. The week of the month to run the count. Allowed values: first, second, third, fourth, last.
run_specific_month
string
For auto schedule. Specific month of the year to run the count (e.g., january).
line_items
array
(Required)
Products to count in each generated count. Each line item requires an item_id. Duplicate products are not allowed.
Show Sub-Attributes arrow
item_id
string
(Required)
Unique ID of the product (item) in the line item.
line_item_id
string
Unique ID generated by the server for this line item in the stock count.

Query Parameters

organization_id
string
(Required)
ID of the organization
importfile
binary
File containing line items to import. Allowed formats: csv, xls, tsv, xlsx. Max size 10 MB.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/recurringinventorycounts?organization_id=10234695" type: POST headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/recurringinventorycounts?organization_id=10234695") .post(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/inventory/v1/recurringinventorycounts?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("POST", "/inventory/v1/recurringinventorycounts?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/recurringinventorycounts?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request POST \ --url 'https://www.zohoapis.com/inventory/v1/recurringinventorycounts?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "title": "Monthly Warehouse A Count", "schedule_type": "auto", "location_id": "4815000000038080", "assignee_id": "4815000000012345", "description": "Monthly stock take for warehouse A.", "remind_before": 3, "start_date": "2025-07-01", "end_date": "2026-06-30", "no_of_cycles": 12, "recurrence_frequency": "months", "repeat_every": 1, "count_dates": [ "2025-07-01", "2025-08-01" ], "execution_time": "09:00", "run_specific_days": [ "MON", "FRI" ], "run_specific_date": 15, "run_specific_week": "first", "run_specific_month": "january", "line_items": [ { "item_id": "4815000000033001", "line_item_id": "4815000000044897" } ] }

Response Example

{ "code": 0, "message": "Recurring stock count profile has been saved.", "recurringinventorycount": { "recurringinventorycount_id": "4815000000055200", "title": "Monthly Warehouse A Count", "status": "active", "schedule_type": "auto", "recurrence_frequency": "months", "repeat_every": 1, "start_date": "2025-07-01", "end_date": "2026-06-30", "no_of_cycles": 12, "executed_cycles": 3, "count_dates": [ "2025-07-01", "2025-08-01", "2025-09-01" ], "location_id": "4815000000038080", "location_name": "Main Warehouse", "assignee_id": "4815000000012345", "assignee_name": "John Smith", "next_count_date": "2025-08-01", "last_count_created_date": "2025-07-01", "execution_time": "09:00", "run_specific_days": [ "MON", "FRI" ], "run_specific_date": 15, "run_specific_week": "first", "run_specific_month": "january", "remind_before": 3, "description": "Monthly stock take for warehouse A.", "created_by_id": "4815000000012300", "created_by_name": "Jane Doe", "last_modified_by_id": "4815000000012345", "last_modified_by_name": "John Smith", "created_time": "2025-06-15T09:00:00+0530", "last_modified_time": "2025-06-15T11:30:00+0530", "line_items": [ { "line_item_id": "4815000000044897", "item_id": "4815000000033001", "item_name": "Laptop 15-inch", "unit": "pcs" } ] } }

List all recurring stock count profiles AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Returns a paginated list of all recurring stock count profiles in the organization. Supports filtering by status, schedule frequency, assignee, warehouse/location, and date ranges.
OAuth Scope : ZohoInventory.inventorycount.READ

Query Parameters

organization_id
string
(Required)
ID of the organization
importfile
binary
File containing line items to import. Allowed formats: csv, xls, tsv, xlsx. Max size 10 MB.
filter_by
string
Filter profiles by status or assignee. Allowed values: Status.All (default), Assignee.Self.
status
string
Filter by profile status. Allowed values: active, inactive, expired.
search_text
string
Search term to filter profiles by title or description.
assignee_id
string
Filter profiles assigned to a specific user ID.
assignee_ids
string
Comma-separated list of assignee user IDs to filter by.
created_by
string
Filter profiles created by a specific user ID.
frequency
string
Filter by recurrence frequency. Allowed values: days, weeks, months, years, manual.
start_date
string
Filter profiles whose recurrence start date matches this value (YYYY-MM-DD).
end_date
string
Filter profiles whose recurrence end date matches this value (YYYY-MM-DD).
warehouse_id
string
Filter profiles by a specific warehouse ID.
next_count_date
string
Filter profiles by their next scheduled count date (YYYY-MM-DD).
warehouse_ids
string
Comma-separated list of warehouse IDs to filter by.
location_ids
string
Comma-separated list of location IDs to filter by.
sort_column
string
Column to sort results by. Allowed values: created_time, title, next_count_date, last_modified_time. Default is created_time.
sort_order
string
Sort direction. A for ascending, D for descending. Default is D.
page
integer
Page number. Default is 1.
per_page
integer
Number of records per page. Default is 200.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/recurringinventorycounts?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/recurringinventorycounts?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/recurringinventorycounts?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/inventory/v1/recurringinventorycounts?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/recurringinventorycounts?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/inventory/v1/recurringinventorycounts?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "recurringinventorycounts": [ { "recurringinventorycount_id": "4815000000055200", "title": "Monthly Warehouse A Count", "status": "active", "schedule_type": "auto", "recurrence_frequency": "months", "repeat_every": 1, "start_date": "2025-07-01", "end_date": "2026-06-30", "no_of_cycles": 12, "executed_cycles": 3, "count_dates": [ "2025-07-01", "2025-08-01", "2025-09-01" ], "location_id": "4815000000038080", "location_name": "Main Warehouse", "assignee_id": "4815000000012345", "assignee_name": "John Smith", "next_count_date": "2025-08-01", "last_count_created_date": "2025-07-01", "execution_time": "09:00", "run_specific_days": [ "MON", "FRI" ], "run_specific_date": 15, "run_specific_week": "first", "run_specific_month": "january", "remind_before": 3, "description": "Monthly stock take for warehouse A.", "created_by_id": "4815000000012300", "created_by_name": "Jane Doe", "last_modified_by_id": "4815000000012345", "last_modified_by_name": "John Smith", "created_time": "2025-06-15T09:00:00+0530", "last_modified_time": "2025-06-15T11:30:00+0530", "line_items": [ { "line_item_id": "4815000000044897", "item_id": "4815000000033001", "item_name": "Laptop 15-inch", "unit": "pcs" } ] }, {...}, {...} ], "page_context": { "page": 1, "per_page": 200, "has_more_page": false, "sort_column": "created_time", "sort_order": "D", "applied_filter": "Status.All" } }

Mark a recurring stock count profile as active AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Changes the status of a recurring stock count profile to active. Active profiles will continue generating counts on schedule.
OAuth Scope : ZohoInventory.inventorycount.UPDATE

Path Parameters

recurringinventorycount_id
string
(Required)
Unique identifier of the recurring stock count profile.

Query Parameters

organization_id
string
(Required)
ID of the organization

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200/active?organization_id=10234695" type: POST headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200/active?organization_id=10234695") .post(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200/active?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("POST", "/inventory/v1/recurringinventorycounts/4815000000055200/active?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/recurringinventorycounts/4815000000055200/active?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request POST \ --url 'https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200/active?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "Recurring stock count status has been changed." }

Mark a recurring stock count profile as inactive AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Changes the status of a recurring stock count profile to inactive. Inactive profiles will not generate new counts until reactivated.
OAuth Scope : ZohoInventory.inventorycount.UPDATE

Path Parameters

recurringinventorycount_id
string
(Required)
Unique identifier of the recurring stock count profile.

Query Parameters

organization_id
string
(Required)
ID of the organization

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200/inactive?organization_id=10234695" type: POST headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200/inactive?organization_id=10234695") .post(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200/inactive?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("POST", "/inventory/v1/recurringinventorycounts/4815000000055200/inactive?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/recurringinventorycounts/4815000000055200/inactive?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request POST \ --url 'https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200/inactive?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "Recurring stock count status has been changed." }

Update a recurring stock count profile AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Updates an existing recurring stock count profile. For auto schedules, start_date cannot be changed once the profile has executed at least once. The next count date cannot be set to today if an active count already exists for this profile.
OAuth Scope : ZohoInventory.inventorycount.UPDATE

Arguments

title
string
Name of the recurring stock count profile.
schedule_type
string
Type of schedule for the recurring count. auto generates counts automatically based on a recurrence frequency; manual uses specific user-defined dates.
assignee_id
string
Unique ID of the user assigned to perform the count.
description
string
Additional notes or remarks for the stock count.
remind_before
integer
Number of days before the next count date to send a reminder notification. Set to 0 or omit to disable reminders.
start_date
string
For auto schedule. Cannot be changed after the profile has executed at least once.
end_date
string
For auto schedule. End date for the recurrence. Mutually exclusive with no_of_cycles.
no_of_cycles
integer
For auto schedule. Maximum number of count cycles. Mutually exclusive with end_date.
recurrence_frequency
string
For auto schedule. Frequency unit for recurrence.
repeat_every
integer
For auto schedule. Interval value for recurrence.
count_dates
array
For manual schedule. Updated list of future count dates in YYYY-MM-DD format.
execution_time
string
Time of day at which the count should be triggered, in HH:mm (24-hour) format. Applies to both auto and manual schedules.
run_specific_days
array
For auto schedule with weekly recurrence. Array of day-of-week values on which the count should run.
run_specific_date
integer
For auto schedule with monthly recurrence. Day of the month (1-31) on which the count should run.
run_specific_week
string
For auto schedule with monthly recurrence. Week of the month. Allowed values: first, second, third, fourth, last.
run_specific_month
string
For auto schedule. Specific month of the year to run the count.
line_items
array
Updated list of products. Include line_item_id for existing items; omit it to add new items.
Show Sub-Attributes arrow
item_id
string
(Required)
Unique ID of the product (item) in the line item.
line_item_id
string
Unique ID generated by the server for this line item in the stock count.

Path Parameters

recurringinventorycount_id
string
(Required)
Unique identifier of the recurring stock count profile.

Query Parameters

organization_id
string
(Required)
ID of the organization
is_overwrite
boolean
When true, the existing line items are completely replaced with the line items provided in the request body. When false, the provided line items are merged with existing ones. Applicable only when importfile are included in the request.
importfile
binary
File containing line items to import. Allowed formats: csv, xls, tsv, xlsx. Max size 10 MB.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695" type: PUT headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695") .put(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PUT', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("PUT", "/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PUT", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request PUT \ --url 'https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "title": "Monthly Warehouse A Count", "schedule_type": "auto", "assignee_id": "4815000000012345", "description": "Monthly stock take for warehouse A.", "remind_before": 3, "start_date": "2025-07-01", "end_date": "2026-06-30", "no_of_cycles": 12, "recurrence_frequency": "months", "repeat_every": 1, "count_dates": [ "2025-10-01", "2025-11-01" ], "execution_time": "09:00", "run_specific_days": [ "MON", "FRI" ], "run_specific_date": 15, "run_specific_week": "first", "run_specific_month": "january", "line_items": [ { "item_id": "4815000000033001", "line_item_id": "4815000000044897" } ] }

Response Example

{ "code": 0, "message": "Recurring stock count profile has been saved.", "recurringinventorycount": { "recurringinventorycount_id": "4815000000055200", "title": "Monthly Warehouse A Count", "status": "active", "schedule_type": "auto", "recurrence_frequency": "months", "repeat_every": 1, "start_date": "2025-07-01", "end_date": "2026-06-30", "no_of_cycles": 12, "executed_cycles": 3, "count_dates": [ "2025-07-01", "2025-08-01", "2025-09-01" ], "location_id": "4815000000038080", "location_name": "Main Warehouse", "assignee_id": "4815000000012345", "assignee_name": "John Smith", "next_count_date": "2025-08-01", "last_count_created_date": "2025-07-01", "execution_time": "09:00", "run_specific_days": [ "MON", "FRI" ], "run_specific_date": 15, "run_specific_week": "first", "run_specific_month": "january", "remind_before": 3, "description": "Monthly stock take for warehouse A.", "created_by_id": "4815000000012300", "created_by_name": "Jane Doe", "last_modified_by_id": "4815000000012345", "last_modified_by_name": "John Smith", "created_time": "2025-06-15T09:00:00+0530", "last_modified_time": "2025-06-15T11:30:00+0530", "line_items": [ { "line_item_id": "4815000000044897", "item_id": "4815000000033001", "item_name": "Laptop 15-inch", "unit": "pcs" } ] } }

Retrieve a recurring stock count profile AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Fetches the details of an existing recurring stock count profile including its schedule configuration, line items, and status.
OAuth Scope : ZohoInventory.inventorycount.READ

Path Parameters

recurringinventorycount_id
string
(Required)
Unique identifier of the recurring stock count profile.

Query Parameters

organization_id
string
(Required)
ID of the organization

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "recurringinventorycount": { "recurringinventorycount_id": "4815000000055200", "title": "Monthly Warehouse A Count", "status": "active", "schedule_type": "auto", "recurrence_frequency": "months", "repeat_every": 1, "start_date": "2025-07-01", "end_date": "2026-06-30", "no_of_cycles": 12, "executed_cycles": 3, "count_dates": [ "2025-07-01", "2025-08-01", "2025-09-01" ], "location_id": "4815000000038080", "location_name": "Main Warehouse", "assignee_id": "4815000000012345", "assignee_name": "John Smith", "next_count_date": "2025-08-01", "last_count_created_date": "2025-07-01", "execution_time": "09:00", "run_specific_days": [ "MON", "FRI" ], "run_specific_date": 15, "run_specific_week": "first", "run_specific_month": "january", "remind_before": 3, "description": "Monthly stock take for warehouse A.", "created_by_id": "4815000000012300", "created_by_name": "Jane Doe", "last_modified_by_id": "4815000000012345", "last_modified_by_name": "John Smith", "created_time": "2025-06-15T09:00:00+0530", "last_modified_time": "2025-06-15T11:30:00+0530", "line_items": [ { "line_item_id": "4815000000044897", "item_id": "4815000000033001", "item_name": "Laptop 15-inch", "unit": "pcs" } ] }, "can_assignee_count": true, "can_assignee_access_warehouse": true }

Delete a recurring stock count profile AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Permanently deletes an existing recurring stock count profile. Stock counts already generated by this profile are not affected.
OAuth Scope : ZohoInventory.inventorycount.DELETE

Path Parameters

recurringinventorycount_id
string
(Required)
Unique identifier of the recurring stock count profile.

Query Parameters

organization_id
string
(Required)
ID of the organization

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695" type: DELETE headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695") .delete(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'DELETE', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("DELETE", "/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "DELETE", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request DELETE \ --url 'https://www.zohoapis.com/inventory/v1/recurringinventorycounts/4815000000055200?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "Recurring stock count profile has been deleted." }

List serial/batch tracking details for a count line item AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Returns a paginated list of serial number or batch tracking entries for a specific stock count line item. Use filter_by to show all, missing, or newly-added tracking entries relative to the system records.
OAuth Scope : ZohoInventory.inventorycount.READ

Path Parameters

inventorycount_item_id
string
(Required)
Unique identifier of the stock count line item.

Query Parameters

organization_id
string
(Required)
ID of the organization
filter_by
string
Filter tracking entries by status. Allowed values: Status.All (default, all entries), Status.Missing (serial/batch numbers present in the system but not counted), Status.NewlyAdded (serial/batch numbers counted but not present in the system).
search_text
string
Search term to filter tracking entries by serial number or batch number.
page
integer
Page number. Default is 1.
per_page
integer
Number of records per page. Default is 1000.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/inventorycountitems/4815000000044897/trackingdetails?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/inventorycountitems/4815000000044897/trackingdetails?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/inventorycountitems/4815000000044897/trackingdetails?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/inventory/v1/inventorycountitems/4815000000044897/trackingdetails?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/inventorycountitems/4815000000044897/trackingdetails?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/inventory/v1/inventorycountitems/4815000000044897/trackingdetails?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "serial_numbers": [ { "serialnumber": "SN-00123", "found": true, "is_new": false }, {...}, {...} ], "batches": [ { "batch_number": "BATCH-2025-06", "counted_quantity": 10, "system_quantity": 12, "stock_variance": -2, "is_new": false } ], "page_context": { "page": 1, "per_page": 200, "has_more_page": false, "sort_column": "created_time", "sort_order": "D", "applied_filter": "Status.All" } }

List storage details for a count item AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Retrieves all storage location (bin) details for a specific product (item) that has been added to a stock count. This is used for items that are tracked by storage/bin location. Returns basic storage info when the count is in yet_to_start status; returns system quantities, counted quantities, variances, and serial/batch tracking details once counting has started.
OAuth Scope : ZohoInventory.inventorycount.READ

Path Parameters

inventorycount_id
string
(Required)
Unique identifier of the stock count.
item_id
string
(Required)
Unique identifier of the product (item) whose storage bin details are to be retrieved.

Query Parameters

organization_id
string
(Required)
ID of the organization
page
integer
Page number to be fetched. Default value is 1.
per_page
integer
Number of records per page. Default value is 1000.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/items/4815000000033001/storages?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/items/4815000000033001/storages?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/items/4815000000033001/storages?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/inventory/v1/inventorycounts/4815000000044100/items/4815000000033001/storages?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/inventorycounts/4815000000044100/items/4815000000033001/storages?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/inventory/v1/inventorycounts/4815000000044100/items/4815000000033001/storages?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "storages": [ { "line_item_id": "4815000000044897", "storage_id": "4815000000050010", "storage_name": "Rack A - Shelf 2", "system_quantity": 50, "counted_quantity": 48, "stock_variance": -2, "is_matched": false, "has_tracking_details_mismatch": false, "total_counted_serials": 48, "total_counted_batches": 3 }, {...}, {...} ], "page_context": { "page": 1, "per_page": 200, "has_more_page": false, "sort_column": "created_time", "sort_order": "D", "applied_filter": "Status.All" } }

Search items in in-progress stock counts AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Returns a list of stock count line items from in-progress counts, suitable for autocomplete/search UI. Supports filtering by item ID, storage location, warehouse, category, manufacturer, and item type (bin-tracked vs non-bin-tracked). Use the filter_by parameter to filter by item status (e.g., Items.Uncounted) or type (e.g., ItemType.BinTracked, ItemType.NonBinTracked). Use the group_by parameter to group results.
OAuth Scope : ZohoInventory.inventorycount.READ

Query Parameters

organization_id
string
(Required)
ID of the organization
inventorycount_id
string
Filter results to a specific stock count.
item_id
string
Filter results to a specific item (product).
storage_location_id
string
Filter results to a specific storage location (bin).
location_id
string
Filter results by location ID.
warehouse_id
string
Filter results by a specific warehouse ID.
category_ids
string
Comma-separated list of category IDs to filter items.
manufacturer_ids
string
Comma-separated list of manufacturer IDs to filter items.
brand_ids
string
Comma-separated list of brand IDs to filter items.
filter_by
string
Filter items by status or type. Allowed values: Items.Uncounted (only uncounted items), ItemType.BinTracked (only bin/storage-tracked items), ItemType.NonBinTracked (only non-bin-tracked items).
group_by
string
Groups the results by the specified field (e.g., item_id).
search_text
string
Search term to filter items by name or SKU.
page
integer
Page number. Default value is 1.
per_page
integer
Number of records per page. Default value is 200.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/autocomplete/inventorycounts/items?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/autocomplete/inventorycounts/items?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/autocomplete/inventorycounts/items?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/inventory/v1/autocomplete/inventorycounts/items?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/autocomplete/inventorycounts/items?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/inventory/v1/autocomplete/inventorycounts/items?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "inventorycount_items": [ { "inventory_count_id": "4815000000044100", "inventory_count_number": "IC-00001", "line_item_id": "4815000000044897", "item_id": "4815000000033001", "item_name": "Laptop 15-inch", "sku": "LAP-15-WHT", "unit": "pcs", "storage_location_id": "4815000000050010", "storage_location_name": "Rack A - Shelf 2", "system_quantity": 50, "counted_quantity": 48, "stock_variance": -2, "is_matched": false, "status": "draft", "track_serial_number": false, "track_batch_number": true, "is_storage_location_enabled": true }, {...}, {...} ], "page_context": { "page": 1, "per_page": 200, "has_more_page": false, "sort_column": "created_time", "sort_order": "D", "applied_filter": "Status.All" } }

Search storage locations in in-progress stock counts AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Returns a list of storage locations (bins) from in-progress stock counts, suitable for autocomplete/search UI. Supports filtering by storage location, warehouse/location, item ID, and counted status. Use filter_by=Storages.Uncounted to return only storage locations that have uncounted items.
OAuth Scope : ZohoInventory.inventorycount.READ

Query Parameters

organization_id
string
(Required)
ID of the organization
inventorycount_id
string
Filter results to a specific stock count.
storage_location_id
string
Filter by a specific storage location.
location_id
string
Filter by location ID.
warehouse_id
string
Filter by a specific warehouse ID.
item_id
string
Filter storage locations that contain a specific item.
filter_by
string
Filter by storage status. Allowed value: Storages.Uncounted to return only storage locations with uncounted items.
search_text
string
Search term to filter storage locations by name.
page
integer
Page number. Default value is 1.
per_page
integer
Number of records per page. Default value is 200.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/autocomplete/inventorycounts/storages?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/autocomplete/inventorycounts/storages?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/inventory/v1/autocomplete/inventorycounts/storages?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/inventory/v1/autocomplete/inventorycounts/storages?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/autocomplete/inventorycounts/storages?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/inventory/v1/autocomplete/inventorycounts/storages?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "storage_locations": [ { "storage_location_id": "4815000000050010", "storage_location_name": "Rack A - Shelf 2", "system_quantity": 50, "counted_quantity": 48, "stock_variance": -2, "no_of_items": 5, "no_of_items_counted": 3 }, {...}, {...} ], "page_context": { "page": 1, "per_page": 200, "has_more_page": false, "sort_column": "created_time", "sort_order": "D", "applied_filter": "Status.All" } }

Update stock count auto-numbering settings AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Updates the auto-numbering configuration for stock counts, such as the prefix string and the next number in the sequence.
OAuth Scope : ZohoInventory.inventorycount.UPDATE

Arguments

prefix_string
string
Prefix string used in stock count auto-numbering (e.g., "IC-").
next_number
string
The next sequence number to be used in stock count auto-numbering.

Query Parameters

organization_id
string
(Required)
ID of the organization

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/settings/inventorycounts?organization_id=10234695" type: PUT headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/settings/inventorycounts?organization_id=10234695") .put(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PUT', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/inventory/v1/settings/inventorycounts?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("PUT", "/inventory/v1/settings/inventorycounts?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PUT", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/settings/inventorycounts?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request PUT \ --url 'https://www.zohoapis.com/inventory/v1/settings/inventorycounts?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "prefix_string": "IC-", "next_number": "00002" }

Response Example

{ "code": 0, "message": "Stock count settings updated successfully.", "settings": { "prefix_string": "IC-", "next_number": "00002" } }

Update stock counts preferences AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Updates global preferences for the stock counts feature, including the default adjustment reason and the default adjustment account used when creating inventory adjustments from count discrepancies.
OAuth Scope : ZohoInventory.inventorycount.UPDATE

Arguments

default_reason_id
string
Unique ID of the default adjustment reason to use when approving count discrepancies. If not provided, the system uses the Stock-Taking Results reason.
default_adjustment_account
string
Unique ID of the default account to use for inventory adjustments generated from count approvals.

Query Parameters

organization_id
string
(Required)
ID of the organization

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/inventory/v1/settings/preferences/inventorycounts?organization_id=10234695" type: PUT headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/inventory/v1/settings/preferences/inventorycounts?organization_id=10234695") .put(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PUT', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/inventory/v1/settings/preferences/inventorycounts?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("PUT", "/inventory/v1/settings/preferences/inventorycounts?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PUT", "hostname": "www.zohoapis.com", "port": null, "path": "/inventory/v1/settings/preferences/inventorycounts?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request PUT \ --url 'https://www.zohoapis.com/inventory/v1/settings/preferences/inventorycounts?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "default_reason_id": "4815000000000388", "default_adjustment_account": "4815000000000400" }

Response Example

{ "code": 0, "message": "Stock counts preferences updated successfully.", "preferences": { "default_reason_id": "4815000000000388", "default_adjustment_account": "4815000000000400" } }