Zoho Inventory inventoryadjustments API
Inventory Adjustments Module
Inventory Adjustments Module
openapi: 3.0.0
info:
title: batches inventoryadjustments API
description: Batches help you track inventory items by batch numbers, manufacturing dates, and expiration dates.
contact: {}
version: 1.0.0
servers:
- url: https://www.zohoapis.com/inventory/v1
description: API Endpoint
tags:
- name: inventoryadjustments
description: Inventory Adjustments Module
paths:
/inventoryadjustments:
x-mcp-group:
- Inventory Adjustments
parameters:
- $ref: '#/components/parameters/organization_id'
post:
tags:
- inventoryadjustments
operationId: create_inventory_adjustment
summary: Create an inventory adjustment
description: Creates a new inventory adjustment in Zoho Inventory.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/create-an-inventory-adjustment-request'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/create-an-inventory-adjustment-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.inventoryadjustments.CREATE
get:
tags:
- inventoryadjustments
operationId: list_inventory_adjustments
summary: List all the inventory adjustments
description: Lists all the inventory adjustments present in Zoho Inventory.
parameters:
- name: page
in: query
description: Page number to be fetched. Default value is 1.
required: false
schema:
type: integer
default: 1
example: 1
- name: per_page
in: query
description: Number of records to be fetched per page. Default value is 200.
required: false
schema:
type: integer
default: 200
example: 200
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/list-all-the-inventory-adjustments-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.inventoryadjustments.READ
/inventoryadjustments/{inventory_adjustment_id}:
x-mcp-group:
- Inventory Adjustments
parameters:
- name: inventory_adjustment_id
in: path
required: true
description: Unique identifier of the inventory adjustment.
schema:
type: string
example: 4815000000044100
- $ref: '#/components/parameters/organization_id'
get:
tags:
- inventoryadjustments
operationId: get_inventory_adjustment
summary: Retrieve an inventory adjustment
description: Fetches the details for an existing inventory adjustment.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/retrieve-an-inventory-adjustment-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.inventoryadjustments.READ
put:
tags:
- inventoryadjustments
operationId: update_inventory_adjustment
summary: Update an inventory adjustment
description: Update the details of an existing inventory adjustment by quantity.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/update-an-inventory-adjustment-request'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/update-an-inventory-adjustment-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.inventoryadjustments.UPDATE
delete:
tags:
- inventoryadjustments
operationId: delete_inventory_adjustment
summary: Delete an inventory adjustment
description: Deletes an existing inventory adjustment from Zoho Inventory.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/delete-an-inventory-adjustment-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.inventoryadjustments.DELETE
/inventoryadjustments/{inventory_adjustment_id}/submit:
x-mcp-group:
- Inventory Adjustments
post:
tags:
- inventoryadjustments
operationId: submit_inventoryadjustment
summary: Submit an inventory adjustment for approval
description: Submit an inventory adjustment for approval workflow.
parameters:
- name: inventory_adjustment_id
in: path
description: Unique ID of the inventory adjustment.
required: true
schema:
type: string
example: '4815000000044100'
- $ref: '#/components/parameters/organization_id'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/approval-action-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.inventoryadjustments.UPDATE
/inventoryadjustments/{inventory_adjustment_id}/approve:
x-mcp-group:
- Inventory Adjustments
post:
tags:
- inventoryadjustments
operationId: approve_inventoryadjustment
summary: Approve an inventory adjustment
description: Approve a submitted inventory adjustment.
parameters:
- name: inventory_adjustment_id
in: path
description: Unique ID of the inventory adjustment.
required: true
schema:
type: string
example: '4815000000044100'
- $ref: '#/components/parameters/organization_id'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/approval-action-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.inventoryadjustments.UPDATE
/inventoryadjustments/{inventory_adjustment_id}/approve/final:
x-mcp-group:
- Inventory Adjustments
post:
tags:
- inventoryadjustments
operationId: approve_inventory_adjustment_final
summary: Final approval of an inventory adjustment
description: Perform the final approval of an inventory adjustment (admin only).
parameters:
- name: inventory_adjustment_id
in: path
description: Unique ID of the inventory adjustment.
required: true
schema:
type: string
example: '4815000000044100'
- $ref: '#/components/parameters/organization_id'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/approval-action-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.inventoryadjustments.UPDATE
/inventoryadjustments/{inventory_adjustment_id}/reject:
x-mcp-group:
- Inventory Adjustments
post:
tags:
- inventoryadjustments
operationId: reject_inventoryadjustment
summary: Reject an inventory adjustment
description: Reject a submitted inventory adjustment.
parameters:
- name: inventory_adjustment_id
in: path
description: Unique ID of the inventory adjustment.
required: true
schema:
type: string
example: '4815000000044100'
- $ref: '#/components/parameters/organization_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/reject-request'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/approval-action-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.inventoryadjustments.UPDATE
components:
schemas:
reject-request:
type: object
properties:
reason:
description: Reason for rejecting the inventory adjustment. Max-length [500].
type: string
example: Quantities do not match the physical count.
storages-update:
description: Bin/storage locations allocated for the line item. Applicable for both positive and negative adjustments. Applicable only for items with bin tracking enabled.
type: array
items:
type: object
required:
- storage_id
properties:
storage_id:
description: Unique identifier of the bin/storage location. Applicable for both positive and negative adjustments.
type: string
example: '6780203000000093226'
in_quantity:
description: Inward quantity into the bin. Applicable for positive adjustments.
type: number
format: float
example: 2
out_quantity:
description: Outward quantity from the bin. Applicable for negative adjustments.
type: number
format: float
example: 2
storage_in_id:
description: Unique identifier of the storage entry on the line item. Applicable for positive adjustments only when updating an existing entry.
type: string
example: '6780203000001106007'
storage_out_id:
description: Unique identifier of the storage entry on the line item. Applicable for negative adjustments only when updating an existing entry.
type: string
example: '6780203000001106027'
serial_numbers:
description: Serial numbers allocated to this bin.
type: array
x-node_available_in:
- Serial with Bin tracked items
items:
type: string
example: SR-RE-001
label:
description: Label of the Custom Field
type: string
location_name:
description: Name of the location
type: string
example: Head Office
adjustment_account_name:
description: Name of the Adjustment Account.
type: string
example: Cost of Goods Sold
create-an-inventory-adjustment-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: Inventory Adjustment has been added
readOnly: true
inventory_adjustment:
$ref: '#/components/schemas/inventory_adjustment-response'
batches:
description: Batches for the line item. For positive adjustments, create a new batch using <code>batch_number</code> or reference an existing batch using <code>batch_id</code>. For negative adjustments, reference an existing batch using <code>batch_id</code> with <code>out_quantity</code>. Applicable only for items with batch tracking enabled.
type: array
items:
type: object
properties:
batch_id:
description: Unique identifier of an existing batch. Required for negative adjustments. For positive adjustments, use to add inward quantity to an existing batch instead of creating a new one.
type: string
example: '6780203000000511440'
batch_number:
description: Batch number. Required for positive adjustments when creating a new batch.
type: string
example: BTC-TL-089
external_batch_number:
description: External batch number from the manufacturer. Applicable for positive adjustments.
type: string
example: MFR-TL-089
manufacturer_date:
description: Manufacturing date of the batch. Applicable for positive adjustments.
type: string
example: '2026-05-12'
expiry_date:
description: Expiration date of the batch. Applicable for positive adjustments.
type: string
example: '2026-12-16'
in_quantity:
description: Inward quantity for the batch. Applicable for positive adjustments.
type: number
format: float
example: 2
out_quantity:
description: Outward quantity from the batch. Applicable for negative adjustments.
type: number
format: float
example: 2
batch_in_id:
description: Unique identifier of the original inward batch entry to deduct stock from. Applicable for negative adjustments.
type: string
example: '6780203000000511433'
storages:
description: Bin/storage locations allocated for stock against this batch.
type: array
x-node_available_in:
- Batch with Bin tracked items
items:
type: object
required:
- storage_id
properties:
storage_id:
description: Unique identifier of the bin/storage location. Applicable for both positive and negative adjustments.
type: string
example: '6780203000000093225'
in_quantity:
description: Inward quantity into the bin. Applicable for positive adjustments.
type: number
format: float
example: 2
out_quantity:
description: Outward quantity from the bin. Applicable for negative adjustments.
type: number
format: float
example: 2
storages-response:
description: Bin/storage locations tracked for the line item. Returned for items with bin tracking enabled.
type: array
items:
type: object
properties:
storage_id:
description: Unique identifier of the bin/storage location.
type: string
example: '6780203000000093226'
storage_name:
description: Display name of the bin/storage location.
type: string
example: Bin A2
in_quantity:
description: Inward quantity recorded against the bin. Returned for positive adjustments.
type: number
format: float
example: 2
out_quantity:
description: Outward quantity recorded against the bin. Returned for negative adjustments.
type: number
format: float
example: 2
storage_in_id:
description: Unique identifier of the storage entry on the line item. Returned for positive adjustments.
type: string
example: '6780203000001106007'
storage_out_id:
description: Unique identifier of the storage entry on the line item. Returned for negative adjustments.
type: string
example: '6780203000001106027'
serial_numbers:
description: Serial numbers allocated to this bin.
type: array
x-node_available_in:
- Serial with Bin tracked items
items:
type: string
example: SR-RE-001
item_id:
description: Unique ID generated by the server for the item. This is used as an identifier.
type: string
example: 4815000000044100
create-an-inventory-adjustment-request:
required:
- date
- reason
- adjustment_type
- line_items
type: object
properties:
date:
$ref: '#/components/schemas/date'
reason:
$ref: '#/components/schemas/reason'
description:
$ref: '#/components/schemas/description'
reference_number:
$ref: '#/components/schemas/reference_number'
adjustment_type:
$ref: '#/components/schemas/adjustment_type'
custom_fields:
$ref: '#/components/schemas/custom_fields'
location_id:
$ref: '#/components/schemas/location_id'
line_items:
description: An inventory adjustment can contain multiple line items. Each line item contains <code>item_id</code>,<code>name</code>,<code>description</code>,<code>quantity_adjusted</code>,<code>unit</code>,<code>adjustment_account_id</code>,<code>location_id</code>.
type: array
items:
type: object
required:
- item_id
- quantity_adjusted
properties:
item_id:
$ref: '#/components/schemas/item_id'
name:
$ref: '#/components/schemas/name'
description:
$ref: '#/components/schemas/description'
quantity_adjusted:
$ref: '#/components/schemas/quantity_adjusted'
item_total:
$ref: '#/components/schemas/item_total'
unit:
$ref: '#/components/schemas/unit'
is_combo_product:
$ref: '#/components/schemas/is_combo_product'
adjustment_account_id:
$ref: '#/components/schemas/adjustment_account_id'
adjustment_account_name:
$ref: '#/components/schemas/adjustment_account_name'
location_id:
$ref: '#/components/schemas/location_id'
serial_numbers:
$ref: '#/components/schemas/serial_numbers'
batches:
$ref: '#/components/schemas/batches'
storages:
$ref: '#/components/schemas/storages'
adjustment_type:
description: The adjustment type should be either quantity or value.Allowed values are <code>quantity</code> and <code>value</code> only.
type: string
enum:
- quantity
example: quantity
list-all-the-inventory-adjustments-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: success
readOnly: true
inventory_adjustments:
type: array
items:
type: object
properties:
inventory_adjustment_id:
$ref: '#/components/schemas/inventory_adjustment_id'
date:
$ref: '#/components/schemas/date'
reason:
$ref: '#/components/schemas/reason'
reason_id:
$ref: '#/components/schemas/reason_id'
description:
$ref: '#/components/schemas/description'
reference_number:
$ref: '#/components/schemas/reference_number'
adjustment_type:
$ref: '#/components/schemas/adjustment_type'
total:
$ref: '#/components/schemas/total'
custom_fields:
$ref: '#/components/schemas/custom_fields'
update-an-inventory-adjustment-request:
required:
- date
- reason
- adjustment_type
- line_items
type: object
properties:
date:
$ref: '#/components/schemas/date'
reason:
$ref: '#/components/schemas/reason'
description:
$ref: '#/components/schemas/description'
reference_number:
$ref: '#/components/schemas/reference_number'
adjustment_type:
$ref: '#/components/schemas/adjustment_type'
custom_fields:
$ref: '#/components/schemas/custom_fields'
location_id:
$ref: '#/components/schemas/location_id'
line_items:
description: An inventory adjustment can contain multiple line items. Each line item contains <code>item_id</code>,<code>line_item_id</code>,<code>name</code>,<code>description</code>,<code>quantity_adjusted</code>,<code>unit</code>,<code>adjustment_account_id</code>,<code>location_id</code>.
type: array
items:
type: object
required:
- item_id
- quantity_adjusted
properties:
line_item_id:
$ref: '#/components/schemas/line_item_id'
item_id:
$ref: '#/components/schemas/item_id'
name:
$ref: '#/components/schemas/name'
description:
$ref: '#/components/schemas/description'
quantity_adjusted:
$ref: '#/components/schemas/quantity_adjusted'
item_total:
$ref: '#/components/schemas/item_total'
unit:
$ref: '#/components/schemas/unit'
is_combo_product:
$ref: '#/components/schemas/is_combo_product'
adjustment_account_id:
$ref: '#/components/schemas/adjustment_account_id'
adjustment_account_name:
$ref: '#/components/schemas/adjustment_account_name'
location_id:
$ref: '#/components/schemas/location_id'
serial_numbers:
$ref: '#/components/schemas/serial_numbers'
batches:
$ref: '#/components/schemas/batches-update'
storages:
$ref: '#/components/schemas/storages-update'
approval-action-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: success
readOnly: true
update-an-inventory-adjustment-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: success
readOnly: true
inventory_adjustment:
type: object
properties:
inventory_adjustment_id:
$ref: '#/components/schemas/inventory_adjustment_id'
date:
$ref: '#/components/schemas/date'
reason:
$ref: '#/components/schemas/reason'
reason_id:
$ref: '#/components/schemas/reason_id'
description:
$ref: '#/components/schemas/description'
reference_number:
$ref: '#/components/schemas/reference_number'
adjustment_type:
$ref: '#/components/schemas/adjustment_type'
line_items:
$ref: '#/components/schemas/line_items'
location_id:
$ref: '#/components/schemas/location_id'
location_name:
$ref: '#/components/schemas/location_name'
total:
$ref: '#/components/schemas/total'
custom_fields:
$ref: '#/components/schemas/custom_fields'
name:
description: Name of the line item.
type: string
example: Laptop-white/15inch/dell
delete-an-inventory-adjustment-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: Inventory Adjustment(s) has been deleted
readOnly: true
serial_numbers:
description: Serial numbers for the line item. Applicable only for items with serial tracking enabled.
type: array
items:
type: string
example: ARMP-0078
date:
description: The date for the inventory adjustment.
type: string
example: '2015-05-28'
adjustment_account_id:
description: Unique ID generated by the server for the Adjustment account.
type: string
example: 4815000000000388
is_combo_product:
type: boolean
description: Indicates if the product is a combo product
example: false
item_total:
description: Total of line item.
type: number
format: double
example: 244
inventory_adjustment_id:
description: Unique ID generated by the server for the inventory adjustment. This is used as an identifier.
type: string
example: 4815000000044100
inventory_adjustment-response:
type: object
properties:
inventory_adjustment_id:
$ref: '#/components/schemas/inventory_adjustment_id'
date:
$ref: '#/components/schemas/date'
reason:
$ref: '#/components/schemas/reason'
reason_id:
$ref: '#/components/schemas/reason_id'
description:
$ref: '#/components/schemas/description'
reference_number:
$ref: '#/components/schemas/reference_number'
adjustment_type:
$ref: '#/components/schemas/adjustment_type'
line_items:
$ref: '#/components/schemas/line_items'
location_id:
$ref: '#/components/schemas/location_id'
location_name:
$ref: '#/components/schemas/location_name'
total:
$ref: '#/components/schemas/total'
custom_fields:
$ref: '#/components/schemas/custom_fields'
custom_fields:
type: array
description: List of custom fields associated with the inventory adjustment
items:
type: object
properties:
customfield_id:
$ref: '#/components/schemas/customfield_id'
label:
$ref: '#/components/schemas/label'
value:
$ref: '#/components/schemas/value'
customfield_id:
type: string
description: Unique ID of the custom field.
total:
description: Total value of the inventory adjustment.
type: number
format: double
example: 350
batches-update:
description: Batches for the line item. Reference an existing batch entry using <code>batch_id</code> and <code>batch_in_id</code>. Applicable only for items with batch tracking enabled.
type: array
items:
type: object
required:
- batch_id
properties:
batch_id:
description: Unique identifier of the batch. Applicable for both positive and negative adjustments.
type: string
example: '6780203000001106001'
batch_number:
description: Batch number. Applicable for positive adjustments.
type: string
example: BTC-TL-089
external_batch_number:
description: External batch number from the manufacturer. Applicable for positive adjustments.
type: string
example: MFR-TL-089
manufacturer_date:
description: Manufacturing date of the batch. Applicable for positive adjustments.
type: string
example: '2026-05-12'
expiry_date:
description: Expiration date of the batch. Applicable for positive adjustments.
type: string
example: '2026-12-16'
in_quantity:
description: Inward quantity for the batch. Applicable for positive adjustments.
type: number
format: float
example: 2
out_quantity:
description: Outward quantity from the batch. Applicable for negative adjustments.
type: number
format: float
example: 2
batch_in_id:
description: Unique identifier of the original inward batch entry. Applicable for both positive and negative adjustments.
type: string
example: '6780203000001106009'
storages:
description: Bin/storage locations allocated for stock against this batch.
type: array
x-node_available_in:
- Batch with Bin tracked items
items:
type: object
required:
- storage_id
properties:
storage_id:
description: Unique identifier of the bin/storage location. Applicable for both positive and negative adjustments.
type: string
example: '6780203000000093225'
in_quantity:
description: Inward quantity into the bin. Applicable for positive adjustments.
type: number
format: float
example: 2
out_quantity:
description: Outward quantity from the bin. Applicable for negative adjustments.
type: number
format: float
example: 2
storage_in_id:
description: Unique identifier of the storage entry on the line item. Applicable for positive adjustments only when updating an existing entry.
type: string
example: '6780203000001106004'
storage_out_id:
description: Unique identifier of the storage entry on the line item. Applicable for negative adjustments only when updating an existing entry.
type: string
example: '6780203000001106024'
value:
description: Value of the Custom Field
type: string
line_item_id:
description: Unique ID generated by the server for each line item. This is used as an identifier.
type: string
example: 4815000000044897
retrieve-an-inventory-adjustment-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: success
readOnly: true
inventory_adjustment:
type: object
properties:
inventory_adjustment_id:
$ref: '#/components/schemas/inventory_adjustment_id'
date:
$ref: '#/components/schemas/date'
reason:
$ref: '#/components/schemas/reason'
reason_id:
$ref: '#/components/schemas/reason_id'
description:
$ref: '#/components/schemas/description'
reference_number:
$ref: '#/components/schemas/reference_number'
adjustment_type:
$ref: '#/components/schemas/adjustment_type'
line_items:
$ref: '#/components/schemas/line_items'
location_id:
$ref: '#/components/schemas/location_id'
location_name:
$ref: '#/components/schemas/location_name'
total:
$ref: '#/components/schemas/total'
custom_fields:
$ref: '#/components/schemas/custom_fields'
batches-response:
description: Batches tracked for the line item. Returned for items with batch tracking enabled.
type: array
items:
type: object
properties:
batch_id:
description: Unique identifier of the batch.
type: string
example: '6780203000001106001'
batch_number:
description: Batch number.
type: string
example: BTC-TL-089
external_batch_number:
description: External batch number from the manufacturer. Returned for positive adjustments.
type: string
example: MFR-TL-089
manufacturer_date:
description: Manufacturing date of the batch. Returned for positive adjustments.
type: string
example: '2026-05-12'
expiry_date:
description: Expiration date of the batch. Returned for positive adjustments.
type: string
example: '2026-12-16'
in_quantity:
description: Inward quantity recorded for the batch. Returned for positive adjustments.
type: number
format: float
example: 2
out_quantity:
description: Outward quantity recorded for the batch. Returned for negative adjustments.
type: number
format: float
example: 2
batch_in_id:
description: Unique identifier of the original inward batch entry.
type: string
example: '6780203000001106009'
storages:
description: Bin/storage locations recorded fo
# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoho-inventory/refs/heads/main/openapi/zoho-inventory-inventoryadjustments-api-openapi.yml