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