openapi: 3.0.0
info:
title: Move Orders
description: Move orders track stock movement between storage locations within a warehouse. Use these APIs to create, update, list, delete, and change the status of move orders in Zoho Inventory.
contact: {}
version: 1.0.0
servers:
- url: https://www.zohoapis.com/inventory/v1
description: API Endpoint
tags:
- name: moveorders
description: MoveOrders Module
paths:
/moveorders:
x-mcp-group:
- Move Orders
post:
tags:
- moveorders
operationId: create_move_order
summary: Create a move order
description: Creates a new move order in Zoho Inventory.
parameters:
- name: ignore_auto_number_generation
in: query
description: When auto number generation is enabled for move orders, set to true to supply your own move order number instead of using the auto-generated value. Default is false.
required: false
schema:
type: boolean
example: false
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/create-a-move-order-request'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/create-a-move-order-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.moveorder.CREATE
get:
tags:
- moveorders
operationId: list_move_orders
summary: List all move orders
description: Lists move orders with optional filters, search options, and pagination.
parameters:
- name: page
in: query
description: Page number to fetch. Default is 1.
required: false
schema:
type: integer
default: 1
example: 1
- name: per_page
in: query
description: Number of records per page. Default is 200.
required: false
schema:
type: integer
default: 200
example: 200
- name: sort_column
in: query
description: Column used for sorting. Allowed values include moveorder_number, date, created_time, last_modified_time.
required: false
schema:
type: string
enum:
- moveorder_number
- date
- created_time
- last_modified_time
- name: sort_order
in: query
description: Sort order. A for ascending, D for descending.
required: false
schema:
type: string
enum:
- A
- D
example: D
- name: search_text
in: query
description: Free-text search across supported move order fields.
required: false
schema:
type: string
- name: filter_by
in: query
description: 'Filter expression. Examples include: Status.All, Status.YetToStart, Status.InProgress, Status.OnHold, Status.Completed, Status.Discarded, AssigneeState.Unassigned, AssigneeState.PartiallyAssigned, AssigneeState.MultipleAssignee, AssigneeState.SingleAssignee, and search filters supported by the list view.'
required: false
schema:
type: string
example: Status.All
- name: moveorder_number
in: query
description: Search by move order number.
required: false
schema:
type: string
- name: moveorder_number_startswith
in: query
description: Match move order numbers that start with this value.
required: false
schema:
type: string
- name: moveorder_number_contains
in: query
description: Match move order numbers that contain this substring.
required: false
schema:
type: string
- name: item_id
in: query
description: Filter by item (product) ID when supported by the list view.
required: false
schema:
type: integer
format: int64
- name: warehouse_id
in: query
description: Filter by warehouse ID.
required: false
schema:
type: integer
format: int64
- name: location_id
in: query
description: Filter by location (branch) ID when locations are enabled.
required: false
schema:
type: integer
format: int64
- name: assignee_id
in: query
description: Filter by assignee user ID.
required: false
schema:
type: integer
format: int64
- name: date
in: query
description: Filter by move order date (yyyy-mm-dd).
required: false
schema:
type: string
- name: date_start
in: query
description: Start of date range filter (yyyy-mm-dd).
required: false
schema:
type: string
- name: date_end
in: query
description: End of date range filter (yyyy-mm-dd).
required: false
schema:
type: string
- name: status
in: query
description: Filter by move order status when supported by the list view.
required: false
schema:
type: string
- name: customview_id
in: query
description: Custom view ID to apply.
required: false
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/list-move-orders-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.moveorder.READ
delete:
tags:
- moveorders
operationId: delete_move_orders
summary: Delete move orders
description: Deletes move orders.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/delete-a-move-order-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.moveorder.DELETE
parameters:
- $ref: '#/components/parameters/organization_id'
/moveorders/{moveorder_id}:
x-mcp-group:
- Move Orders
get:
tags:
- moveorders
operationId: get_move_order
summary: Retrieve a move order
description: Fetches details of an existing move order, including line items.
parameters:
- name: include
in: query
description: When set to HTML, additional HTML content may be included in the response when supported.
required: false
schema:
type: string
- name: print
in: query
description: 'Export move order pdf with default print option. Allowed Values: true, false.'
required: false
schema:
type: boolean
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/get-a-move-order-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.moveorder.READ
put:
tags:
- moveorders
operationId: update_move_order
summary: Update a move order
description: Updates an existing move order.
parameters:
- name: ignore_auto_number_generation
in: query
description: When auto number generation is enabled for move orders, set to true to keep a manually supplied move order number. Default is false.
required: false
schema:
type: boolean
example: false
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/update-a-move-order-request'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/update-a-move-order-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.moveorder.UPDATE
delete:
tags:
- moveorders
operationId: delete_move_order
summary: Delete a move order
description: Deletes a single move order.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/delete-a-move-order-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.moveorder.DELETE
parameters:
- name: moveorder_id
in: path
required: true
description: Unique identifier of the move order.
schema:
type: string
example: '4815000000044895'
- $ref: '#/components/parameters/organization_id'
/moveorders/{moveorder_id}/comments:
x-mcp-group:
- Move Orders
get:
tags:
- moveorders
operationId: list_move_order_comments
summary: List comments for a move order
description: Returns all comments recorded on a move order.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/list-move-order-comments-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.moveorder.READ
parameters:
- name: moveorder_id
in: path
required: true
description: Unique identifier of the move order.
schema:
type: string
example: '4815000000044895'
- $ref: '#/components/parameters/organization_id'
/moveorders/{moveorder_id}/markasconfirmed:
x-mcp-group:
- Move Orders
post:
tags:
- moveorders
operationId: mark_move_order_as_confirmed
summary: Mark move order as confirmed
description: Updates the move order status to confirmed.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/move-order-status-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.moveorder.CREATE
parameters:
- name: moveorder_id
in: path
required: true
description: Unique identifier of the move order.
schema:
type: string
example: '4815000000044895'
- $ref: '#/components/parameters/organization_id'
/moveorders/{moveorder_id}/markasinprogress:
x-mcp-group:
- Move Orders
post:
tags:
- moveorders
operationId: mark_move_order_as_in_progress
summary: Mark move order as in progress
description: Updates the move order status to in progress.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/move-order-status-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.moveorder.CREATE
parameters:
- name: moveorder_id
in: path
required: true
description: Unique identifier of the move order.
schema:
type: string
example: '4815000000044895'
- $ref: '#/components/parameters/organization_id'
/moveorders/{moveorder_id}/markascompleted:
x-mcp-group:
- Move Orders
post:
tags:
- moveorders
operationId: mark_move_order_as_completed
summary: Mark move order as completed
description: Updates the move order status to completed. A completion date is required.
parameters:
- name: completed_date
in: query
required: true
description: Completion date (yyyy-mm-dd).
schema:
type: string
example: '2026-04-15'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/move-order-status-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.moveorder.CREATE
parameters:
- name: moveorder_id
in: path
required: true
description: Unique identifier of the move order.
schema:
type: string
example: '4815000000044895'
- $ref: '#/components/parameters/organization_id'
/moveorders/{moveorder_id}/attachment:
x-mcp-group:
- Move Orders
post:
tags:
- moveorders
operationId: add_move_order_attachment
summary: Attach files to a move order
description: Uploads one or more files and associates them with the move order.
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
attachment:
type: string
format: binary
description: File to attach.
doc:
type: string
description: Optional JSON metadata for the document.
totalFiles:
type: integer
description: Number of file parts included in this multipart request when the client sends multiple attachments.
document_ids:
type: string
description: Comma-separated existing document IDs when applicable.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/move-order-attachment-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.moveorder.CREATE
parameters:
- name: moveorder_id
in: path
required: true
description: Unique identifier of the move order.
schema:
type: string
example: '4815000000044895'
- $ref: '#/components/parameters/organization_id'
/moveorders/{moveorder_id}/documents/{document_id}:
x-mcp-group:
- Move Orders
get:
tags:
- moveorders
operationId: get_move_order_document
summary: Download a move order document
description: Returns the binary content of an attached document (image or PDF).
parameters:
- name: image_size
in: query
description: Preferred image size when the service returns a rasterized preview.
required: false
schema:
type: string
enum:
- xlarge
- large
- small
- tiny
- name: print
in: query
description: 'Allowed Values: true, false'
required: false
schema:
type: boolean
- name: inline
in: query
description: When true, the response may be suitable for inline display in a browser when supported.
required: false
schema:
type: boolean
responses:
'200':
description: OK
content:
application/pdf:
schema:
type: string
format: binary
examples:
binary_body:
summary: Raw document bytes
description: Response is binary PDF or image data, not a JSON envelope.
value: << binary body >>
image/jpeg:
schema:
type: string
format: binary
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.moveorder.READ
delete:
tags:
- moveorders
operationId: delete_move_order_document
summary: Remove an attachment from a move order
description: Deletes or unlinks a document from the specified move order.
parameters:
- name: un_associate
in: query
description: When true, only dissociates the file without deleting the underlying document when supported.
required: false
schema:
type: boolean
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/delete-a-move-order-document-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.moveorder.DELETE
parameters:
- name: moveorder_id
in: path
required: true
description: Unique identifier of the move order.
schema:
type: string
example: '4815000000044895'
- name: document_id
in: path
required: true
description: Unique identifier of the document.
schema:
type: string
example: '4815000000044897'
- $ref: '#/components/parameters/organization_id'
/settings/moveorders:
x-mcp-group:
- Move Orders
get:
tags:
- moveorders
operationId: get_move_order_settings
summary: Get move order auto number generation settings
description: Returns auto number generation preferences for move orders.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/get-move-order-settings-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.settings.READ
parameters:
- $ref: '#/components/parameters/organization_id'
components:
parameters:
organization_id:
name: organization_id
description: ID of the organization
in: query
required: true
schema:
type: string
example: '10234695'
schemas:
gendoc-attributes-schema:
$ref: '#/components/schemas/move-order-response'
move-order-settings:
type: object
properties:
auto_generate:
type: boolean
description: Whether move order numbers are auto-generated.
prefix_string:
type: string
description: Prefix for auto-generated move order numbers.
next_number:
type: string
description: Next number in the auto-number sequence.
move-order-line-batch-node:
type: object
description: One batch allocation on a move-order line. Use either an existing batch_id or new batch attributes as required by your org and item settings (see server BatchNumberCreate / BatchNumberEdit).
properties:
batch_id:
type: integer
format: int64
description: Existing inventory batch ID when selecting stock from an existing batch.
batch_in_id:
type: integer
format: int64
description: Batch-in row reference when supplied by the client.
batch_number:
type: string
description: Batch number for a new batch line when not using an existing batch_id.
manufacturer_batch_number:
type: string
description: Manufacturer or external batch reference.
manufactured_date:
type: string
description: Manufacturing date (yyyy-mm-dd).
expiry_date:
type: string
description: Expiry date (yyyy-mm-dd).
in_quantity:
type: number
format: double
description: Quantity for this batch when the line quantity is split across batches.
sales_rate:
type: number
format: double
description: Selling rate for the batch when batch pricing is enabled.
label_rate:
type: number
format: double
description: Label (MRP) rate for the batch when applicable.
balance_quantity:
type: number
format: double
readOnly: true
description: On read, returns the remaining quantity in the batch.
status:
type: string
readOnly: true
description: On read, batch status when returned by the service.
move-order-line-storage-node:
type: object
description: Storage-bin allocation for source (from_storages) or destination (to_storages) on a line when storage tracking is enabled.
properties:
storage_id:
type: integer
format: int64
description: Storage location ID.
quantity:
type: number
format: double
description: Quantity moved from or into this storage for the line.
move-order-line-serial-node:
type: object
description: Serial number row returned on a line when serial tracking is enabled.
properties:
serialnumber_id:
type: integer
format: int64
description: Serial number master record ID.
serial_number:
type: string
description: Serial code.
status:
type: string
description: Serial status when returned by the service.
move-order-document-attachment:
type: object
description: File attached to a move order (DocumentDetailsForEntity).
properties:
document_id:
type: integer
format: int64
description: Attachment document ID; use with GET/DELETE `/moveorders/{moveorder_id}/documents/{document_id}`.
file_name:
type: string
description: Original file name.
file_type:
type: string
description: MIME or file type classification.
file_size:
type: integer
format: int64
description: File size in bytes.
file_size_formatted:
type: string
description: Human-readable file size.
move-order-line-item-request:
type: object
required:
- item_id
- quantity_transferred
properties:
line_item_id:
type: integer
format: int64
description: Line item ID returned by the server. Required on update when modifying existing line items.
item_id:
type: integer
format: int64
description: Item (product) ID for this line. Required for every line item (same role as item_id on transfer order line items).
description:
type: string
description: Line-level description or notes for the item. Optional.
quantity_transferred:
type: number
format: double
description: Quantity to move for this line. Required for every line item (same role as quantity_transfer on transfer orders).
batches:
type: array
description: Batch details when batch tracking is enabled.
items:
$ref: '#/components/schemas/move-order-line-batch-node'
from_storages:
type: array
description: Source storage allocations when storage tracking is enabled.
items:
$ref: '#/components/schemas/move-order-line-storage-node'
to_storages:
type: array
description: Destination storage allocations when storage tracking is enabled.
items:
$ref: '#/components/schemas/move-order-line-storage-node'
create-a-move-order-request:
type: object
required:
- date
- line_items
properties:
moveorder_number:
type: string
description: Move order number; optional when auto-generation is enabled.
date:
type: string
description: Transaction date (yyyy-mm-dd).
completed_date:
type: string
description: Completed date when applicable (yyyy-mm-dd).
assignee_id:
type: integer
format: int64
description: User ID of the assignee for this move order.
warehouse_id:
type: integer
format: int64
description: Warehouse ID when warehouses are enabled.
location_id:
type: integer
format: int64
description: Location (branch) ID when locations are enabled.
notes:
type: string
description: Internal notes for the move order.
status:
type: string
description: Move order status when supplied on create or update.
line_items:
type: array
description: 'A move order can contain multiple line items. Each object must include item_id and quantity_transferred. Optional fields: line_item_id (required on update for existing lines), description, batches, from_storages, and to_storages when batch or bin storage tracking applies in your organization.'
items:
$ref: '#/components/schemas/move-order-line-item-request'
update-a-move-order-request:
$ref: '#/components/schemas/create-a-move-order-request'
move-order-comment:
type: object
properties:
comment_id:
type: integer
format: int64
moveorder_id:
type: integer
format: int64
description:
type: string
commented_by_id:
type: integer
format: int64
commented_by:
type: string
comment_type:
type: string
date:
type: string
date_description:
type: string
time:
type: string
operation_type:
type: string
move-order-line-item-response:
type: object
properties:
line_item_id:
type: integer
format: int64
item_id:
type: integer
format: int64
name:
type: string
sku:
type: string
unit:
type: string
unit_id:
type: integer
format: int64
image_document_id:
type: integer
format: int64
description:
type: string
quantity_transferred:
type: number
format: double
track_serial_number:
type: boolean
track_batch_number:
type: boolean
serial_numbers:
type: array
items:
$ref: '#/components/schemas/move-order-line-serial-node'
batches:
type: array
items:
$ref: '#/components/schemas/move-order-line-batch-node'
is_combo_product:
type: boolean
from_storages:
type: array
items:
$ref: '#/components/schemas/move-order-line-storage-node'
to_storages:
type: array
items:
$ref: '#/components/schemas/move-order-line-storage-node'
is_storage_location_enabled:
type: boolean
move-order-response:
type: object
properties:
moveorder_id:
type: integer
format: int64
moveorder_number:
type: string
date:
type: string
notes:
type: string
status:
type: string
completed_date:
type: string
assignee_id:
type: integer
format: int64
assignee_name:
type: string
created_by_id:
type: integer
format: int64
created_by_name:
type: string
warehouse_id:
type: integer
format: int64
warehouse_name:
type: string
location_id:
type: integer
format: int64
location_name:
type: string
html_string:
type: string
comments:
type: array
items:
$ref: '#/components/schemas/move-order-comment'
line_items:
type: array
items:
$ref: '#/components/schemas/move-order-line-item-response'
documents:
type: array
description: Attachments on the move order when returned by the service.
items:
$ref: '#/components/schemas/move-order-document-attachment'
move-order-list-row:
type: object
properties:
moveorder_id:
type: integer
format: int64
moveorder_number:
type: string
date:
type: string
notes:
type: string
status:
type: string
assignee_id:
type: integer
format: int64
assignee_name:
type: string
warehouse_id:
type: integer
format: int64
warehouse_name:
type: string
location_id:
type: integer
format: int64
location_name:
type: string
has_attachment:
type: boolean
created_time:
type: string
last_modified_time:
type: string
page_context:
type: object
description: Pagination and list context for the current result set.
properties:
page:
type: integer
example: 1
per_page:
type: integer
example: 200
has_more_page:
type: boolean
report_name:
type: string
applied_filter:
type: string
sort_column:
type: string
sort_order:
type: string
create-a-move-order-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
readOnly: true
moveorder:
$ref: '#/components/schemas/move-order-response'
list-move-orders-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: success
readOnly: true
moveorders:
type: array
items:
$ref: '#/components/schemas/move-order-list-row'
page_context:
$ref: '#/components/schemas/page_context'
get-a-move-order-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: success
readOnly: true
moveorder:
$ref: '#/components/schemas/move-order-response'
update-a-move-order-response:
$ref: '#/components/schemas/get-a-move-order-response'
delete-a-move-order-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: Move Order deleted successfully.
readOnly: true
delete-a-move-order-document-response:
type: object
description: Returned when a document is removed from a move order.
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: Your file is no longer attached to the Move Order.
readOnly: true
list-move-order-comments-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
readOnly: true
comments:
type: array
items:
$ref: '#/components/schemas/move-order-comment'
move-order-status-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: Move Order status updated successfully.
readOnly: true
move-order-attachment-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
readOnly: true
document:
$ref: '#/components/schemas/move-order-document-attachment'
get-move-order-settings-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
readOnly: true
moveorder_settings:
$ref: '#/components/schemas/move-order-settings'
securitySchemes:
Zoho_Auth:
type: oauth2
flows:
implicit:
authorizationUrl: https://accounts.zoho.com/oauth/v2/auth
scopes:
ZohoInventory.moveorder.CREATE: Create Moveorder
ZohoInventory.moveorder.READ: Read Moveorder
ZohoInventory.moveorder.UPDATE: Update Moveorder
ZohoInventory.moveorder.DELETE: Delete Moveorder
ZohoInventory.settings.READ: Read Settings