OpenAPI Specification
openapi: 3.0.0
info:
title: batches salesorders 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: salesorders
description: SalesOrders Module
paths:
/salesorders:
x-mcp-group:
- Sales Orders
parameters:
- $ref: '#/components/parameters/organization_id'
post:
tags:
- salesorders
operationId: create_sales_order
summary: Create a Sales Order
description: Creates a new Sales Order in Zoho Inventory. Description about extra parameter ignore_auto_number_generation - Ignore auto sales order number generation for this sales order. This mandates the Sales Order number to be entered. Allowed Values <code>true</code> and <code>false</code>.
parameters:
- name: ignore_auto_number_generation
in: query
description: Ignore auto sales order number generation for this sales order. This mandates the sales order number. Allowed values are <code> true </code> , <code> false </code>.
required: false
schema:
type: boolean
example: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/create-a-sales-order-request'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/create-a-sales-order-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.salesorders.CREATE
get:
tags:
- salesorders
operationId: list_sales_orders
summary: List all Sales Orders
description: Lists all the available Sales Orders 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-sales-orders-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.salesorders.READ
delete:
tags:
- salesorders
operationId: bulk_delete_sales_orders
summary: Bulk delete Sales Orders
description: Bulk delete the selected Sales Orders.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/bulk-delete-sales-orders-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.salesorders.DELETE
/salesorders/{salesorder_id}:
x-mcp-group:
- Sales Orders
parameters:
- name: salesorder_id
in: path
required: true
description: Unique identifier of the sales order.
schema:
type: string
example: 4815000000044895
- $ref: '#/components/parameters/organization_id'
get:
tags:
- salesorders
operationId: get_sales_order
summary: Retrieve a Sales Order
description: Retrieves the details for an existing Sales Order.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/retrieve-a-sales-order-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.salesorders.READ
put:
tags:
- salesorders
operationId: update_sales_order
summary: Update a Sales Order
description: Updates a new Sales Order in Zoho Inventory. Description about extra parameter ignore_auto_number_generation - Ignore auto sales order number generation for this sales order. This mandates the Sales Order number to be entered. Allowed Values <code>true</code> and <code>false</code>.
parameters:
- name: ignore_auto_number_generation
in: query
description: Ignore auto sales order number generation for this sales order. This mandates the sales order number. Allowed values are <code> true </code> , <code> false </code>.
required: false
schema:
type: boolean
example: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/update-a-sales-order-request'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/update-a-sales-order-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.salesorders.UPDATE
delete:
tags:
- salesorders
operationId: delete_sales_order
summary: Delete a Sales Order
description: Deletes an existing Sales Order from Zoho Inventory.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/delete-a-sales-order-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.salesorders.DELETE
/salesorders/{salesorder_id}/status/confirmed:
x-mcp-group:
- Sales Orders
parameters:
- name: salesorder_id
in: path
required: true
description: Unique identifier of the sales order.
schema:
type: string
example: 4815000000044895
- $ref: '#/components/parameters/organization_id'
post:
tags:
- salesorders
operationId: mark_sales_order_as_confirmed
summary: Mark as Confirmed
description: Changes the status of a Sales Order to Confirmed.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/mark-as-confirmed-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.salesorders.CREATE
/salesorders/{salesorder_id}/status/void:
x-mcp-group:
- Sales Orders
parameters:
- name: salesorder_id
in: path
required: true
description: Unique identifier of the sales order.
schema:
type: string
example: 4815000000044895
- $ref: '#/components/parameters/organization_id'
post:
tags:
- salesorders
operationId: mark_sales_order_as_void
summary: Mark as Void
description: Changes the status of a Sales Order to Void.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/mark-as-void-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.salesorders.CREATE
/salesorders/status/confirmed:
x-mcp-group:
- Sales Orders
post:
tags:
- salesorders
operationId: bulk_confirm_sales_orders
summary: Bulk confirm Sales Orders
description: Mark existing Sales Orders as confirmed in Zoho Inventory
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/bulk-confirm-salesorders-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.salesorders.CREATE
parameters:
- name: salesorder_ids
in: query
description: <code>List of sales order ids separated by comma</code>
required: true
schema:
type: string
example: 4815000000045208,4815000000045274,4815000000045340
- $ref: '#/components/parameters/organization_id'
/salesorders/{salesorder_id}/submit:
x-mcp-group:
- Sales Orders
post:
tags:
- salesorders
operationId: submit_salesorder
summary: Submit a sales order for approval
description: Submit a sales order for approval workflow.
parameters:
- name: salesorder_id
in: path
description: Unique ID of the sales order.
required: true
schema:
type: string
example: '4815000000045208'
- $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.salesorders.UPDATE
/salesorders/{salesorder_id}/approve:
x-mcp-group:
- Sales Orders
post:
tags:
- salesorders
operationId: approve_salesorder
summary: Approve a sales order
description: Approve a submitted sales order.
parameters:
- name: salesorder_id
in: path
description: Unique ID of the sales order.
required: true
schema:
type: string
example: '4815000000045208'
- $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.salesorders.UPDATE
/salesorders/{salesorder_id}/approve/final:
x-mcp-group:
- Sales Orders
post:
tags:
- salesorders
operationId: approve_salesorder_final
summary: Final approval of a sales order
description: Perform the final approval of a sales order (admin only).
parameters:
- name: salesorder_id
in: path
description: Unique ID of the sales order.
required: true
schema:
type: string
example: '4815000000045208'
- $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.salesorders.UPDATE
/salesorders/{salesorder_id}/reject:
x-mcp-group:
- Sales Orders
post:
tags:
- salesorders
operationId: reject_salesorder
summary: Reject a sales order
description: Reject a submitted sales order.
parameters:
- name: salesorder_id
in: path
description: Unique ID of the sales order.
required: true
schema:
type: string
example: '4815000000045208'
- $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.salesorders.UPDATE
/salesorders/submit:
x-mcp-group:
- Sales Orders
post:
tags:
- salesorders
operationId: bulk_submit_salesorders
summary: Bulk submit sales orders for approval
description: Submit multiple sales orders for approval workflow at once.
parameters:
- $ref: '#/components/parameters/organization_id'
- name: salesorder_ids
in: query
description: Comma-separated list of sales order IDs to submit for approval.
required: true
schema:
type: string
example: 4815000000045208,4815000000045274
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/approval-action-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.salesorders.UPDATE
/salesorders/approve:
x-mcp-group:
- Sales Orders
post:
tags:
- salesorders
operationId: bulk_approve_salesorders
summary: Bulk approve sales orders
description: Approve multiple submitted sales orders at once.
parameters:
- $ref: '#/components/parameters/organization_id'
- name: salesorder_ids
in: query
description: Comma-separated list of sales order IDs to approve.
required: true
schema:
type: string
example: 4815000000045208,4815000000045274
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/approval-action-response'
deprecated: false
security:
- Zoho_Auth:
- ZohoInventory.salesorders.UPDATE
components:
schemas:
carrier:
description: Name of the shipping carrier.
type: string
example: FedEx
item_custom_fields:
type: array
description: List of custom fields associated with the line item
items:
type: object
properties:
label:
$ref: '#/components/schemas/label'
value:
$ref: '#/components/schemas/value'
is_invoiced:
description: Checks whether the Sales Order has been invoiced or not.
type: boolean
example: true
quantity_shipped:
description: Quantity shipped of the line item.
type: number
format: double
example: 2
terms:
description: Terms for the Sales Order.
type: string
example: Terms and Conditions
contact_persons_associated:
description: Contact Persons associated with the sales order.
type: array
items:
type: object
properties:
contact_person_id:
$ref: '#/components/schemas/contact_person_id'
contact_person_name:
$ref: '#/components/schemas/contact_person_name'
first_name:
$ref: '#/components/schemas/first_name'
last_name:
$ref: '#/components/schemas/last_name'
contact_person_email:
$ref: '#/components/schemas/contact_person_email'
phone:
$ref: '#/components/schemas/phone'
mobile:
$ref: '#/components/schemas/mobile'
communication_preference:
$ref: '#/components/schemas/communication_preference'
packages:
description: These are the packages created for Sales Orders. Each package contains - <code>package_id</code>,<code>package_number</code>,<code>status</code>,<code>detailed_status</code>,<code>status_message</code>,<code>shipment_id</code>,<code>shipment_number</code>,<code>shipment_status</code>,<code>carrier</code>,<code>service</code>,<code>tracking_number</code>,<code>shipment_date</code>,<code>delivery_days</code> and <code>delivery_guarantee</code>.
type: array
items:
type: object
properties:
package_id:
$ref: '#/components/schemas/package_id'
package_number:
$ref: '#/components/schemas/package_number'
status:
$ref: '#/components/schemas/status'
detailed_status:
$ref: '#/components/schemas/detailed_status'
status_message:
$ref: '#/components/schemas/status_message'
shipment_id:
$ref: '#/components/schemas/shipment_id'
shipment_number:
$ref: '#/components/schemas/shipment_number'
shipment_status:
$ref: '#/components/schemas/shipment_status'
carrier:
$ref: '#/components/schemas/carrier'
service:
$ref: '#/components/schemas/service'
tracking_number:
$ref: '#/components/schemas/tracking_number'
shipment_date:
$ref: '#/components/schemas/shipment_date'
delivery_days:
$ref: '#/components/schemas/delivery_days'
delivery_guarantee:
$ref: '#/components/schemas/delivery_guarantee'
taxes:
description: 'Number of taxes applied on sales order. Each tax contains: <code>tax_name</code> and <code>tax_amount</code>.'
type: array
items:
type: object
properties:
tax_name:
$ref: '#/components/schemas/tax_name'
tax_amount:
$ref: '#/components/schemas/tax_amount'
bcy_total:
description: Total in Base Currency of the Organisation
type: integer
example: 33
bulk-confirm-salesorders-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: Sales order status has been changed to Confirmed.
readOnly: true
data:
type: object
properties:
email_success_info:
type: array
items:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: The status of the sales order has been changed to Open.
readOnly: true
ids:
type: array
items:
type: string
example: 4815000000045208,4815000000045274,4815000000045340
email_error_info:
type: array
items:
type: object
properties: {}
purchaseorders:
type: array
items:
type: string
zip:
description: Zip code of the customer's shipping address.
type: string
example: 11364
item_id:
description: Unique ID generated by the server for the item. This is used as an identifier.
type: string
example: 4815000000044100
sub_total:
description: Sub total of the Sales Order.
type: number
format: double
example: 244
approval-action-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: success
readOnly: true
package_number:
description: Package number of the Sales Order.
type: string
example: PK-00004
sat_item_key_code:
description: Add SAT Item Key Code for your goods/services. Download the <a href= http://omawww.sat.gob.mx/tramitesyservicios/Paginas/documentos/catCFDI_V_4_07122022.xls >CFDI Catalogs.</a>
type: string
example: 71121206
x-node_available_in:
- mx
x-node_unavailable_in: []
is_backorder:
description: Denotes if a SalesOrder is a backorder
type: boolean
example: false
documents:
description: Sales order can have files attached to them. Each attachment has the following attributes <code>can_send_in_mail</code>, <code>file_name</code>, <code>file_type</code>, <code>file_size_formatted</code>, <code>attachment_order</code>, <code>document_id</code>, <code>file_size</code>.
type: array
items:
type: object
properties:
can_send_in_mail:
$ref: '#/components/schemas/can_send_in_mail'
file_name:
$ref: '#/components/schemas/file_name'
file_type:
$ref: '#/components/schemas/file_type'
file_size_formatted:
$ref: '#/components/schemas/file_size_formatted'
attachment_order:
$ref: '#/components/schemas/attachment_order'
document_id:
$ref: '#/components/schemas/document_id'
file_size:
$ref: '#/components/schemas/file_size'
date:
description: The date for the Sales Order.
type: string
example: '2015-05-28'
item_total:
description: Total of line item.
type: number
format: double
example: 244
custom_fields:
type: array
description: List of custom fields associated with the sales order
items:
type: object
properties:
customfield_id:
$ref: '#/components/schemas/customfield_id'
label:
$ref: '#/components/schemas/label'
value:
$ref: '#/components/schemas/value'
shipment_id:
description: Unique ID generated by the server for the shipment. This is used as an identifier.
type: string
example: 4815000000044917
shipment_days:
description: Days of Shipment for the Order
type: integer
example: 2
value:
description: Value of the Custom Field
type: string
currency_symbol:
description: The symbol for the selected currency.
type: string
example: $
is_drop_shipment:
description: Denotes if a SalesOrder is a drop shipment
type: boolean
example: false
unitkey_code:
description: Add SAT Unit Key Code for your goods/services. Download the <a href= http://omawww.sat.gob.mx/tramitesyservicios/Paginas/documentos/catCFDI_V_4_07122022.xls >CFDI Catalogs.</a>
type: string
example: E48
x-node_available_in:
- mx
x-node_unavailable_in: []
contact_person_email:
description: Email ID of the Contact Person.
type: string
example: willsmith@bowmanfurniture.com
document_id:
description: Unique ID generated by the server for the document. This is used as an identifier.
type: string
example: 16115000000096068
mapped_items_update:
description: Items that are associated with the composite item (kit) in the line item. Applicable only when the line item is a kit type composite item.
type: array
items:
type: object
properties:
item_id:
$ref: '#/components/schemas/item_id'
line_item_id:
$ref: '#/components/schemas/line_item_id'
item_order:
$ref: '#/components/schemas/item_order'
name:
$ref: '#/components/schemas/name'
description:
$ref: '#/components/schemas/description'
quantity:
$ref: '#/components/schemas/quantity'
warehouse_id:
description: Unique ID of the warehouse from which the mapped item is fulfilled.
type: string
example: '460000000038080'
location_id:
$ref: '#/components/schemas/location_id'
mapped_items:
description: Nested mapped items for kit within kit scenarios.
type: array
items:
type: object
properties:
item_id:
$ref: '#/components/schemas/item_id'
line_item_id:
$ref: '#/components/schemas/line_item_id'
item_order:
$ref: '#/components/schemas/item_order'
name:
$ref: '#/components/schemas/name'
description:
$ref: '#/components/schemas/description'
quantity:
$ref: '#/components/schemas/quantity'
warehouse_id:
description: Unique ID of the warehouse from which the mapped item is fulfilled.
type: string
example: '460000000038080'
location_id:
$ref: '#/components/schemas/location_id'
shipment_number:
description: Shipment number of the package.
type: string
example: SH-00004
tracking_number:
description: Tracking number of shipment.
type: string
example: TRK214124124
country:
description: Name of the country of the customer's shipping address.
type: string
example: U.S.A
quantity_packed:
description: Quantity packed of the line item.
type: number
format: double
example: 2
mark-as-void-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: The status of the Sales Order has been changed to void.
readOnly: true
status:
description: The current status of the Sales Order.
type: string
example: fulfilled
detailed_status:
description: Detailed status.
type: string
example: Delivered
label:
description: Label of the Custom Field
type: string
phone:
description: Phone Number of the Contact Person
type: string
example: +1-925-921-9201
hsn_or_sac:
description: Add HSN/SAC code for your goods/services
type: string
example: 80540
x-node_available_in:
- in
x-node_unavailable_in: []
discount_type:
description: Type of discount. Allowed values are <code>entity_level</code>,<code>item_level</code>. For entity_level type, discount is applied at entity level and the node <code>discount</code> resides outside the <code>line_items</code> node.For item_level type, discount is applied at item level and the node <code>discount</code> resides inside each line_item under the <code>line_items</code> node
type: string
example: entity_level
adjustment_description:
description: Description for the adjustment.
type: string
example: Just an example description.
quantity:
description: Quantity of the line item.
type: number
format: double
example: 2
package_id:
description: Unique ID generated by the server for the package. This is used as an identifier.
type: string
example: 4815000000044905
discount:
description: Discount applied to the sales order, which can be either a percentage or a flat amount. For percentage discounts, the value should include the % symbol (e.g., 10%). For example, on Rs.1000, a 10% discount results in Rs.900, while a flat Rs.200 discount results in Rs.800.
type: number
format: double
example: 20.00%
billing_address:
description: Customer's billing address. It contains - <code>address</code>, <code>city</code>, <code>state</code>, <code>zip</code>, <code>country</code> and <code>fax</code>.
type: object
properties:
address:
$ref: '#/components/schemas/address'
city:
$ref: '#/components/schemas/city'
state:
$ref: '#/components/schemas/state'
zip:
$ref: '#/components/schemas/zip'
country:
$ref: '#/components/schemas/country'
fax:
$ref: '#/components/schemas/fax'
mapped_items_create:
description: Items that are associated with the composite item (kit) in the line item. Applicable only when the line item is a kit type composite item.
type: array
items:
type: object
properties:
item_id:
$ref: '#/components/schemas/item_id'
item_order:
$ref: '#/components/schemas/item_order'
name:
$ref: '#/components/schemas/name'
description:
$ref: '#/components/schemas/description'
quantity:
$ref: '#/components/schemas/quantity'
warehouse_id:
description: Unique ID of the warehouse from which the mapped item is fulfilled.
type: string
example: '460000000038080'
location_id:
$ref: '#/components/schemas/location_id'
mapped_items:
description: Nested mapped items for kit within kit scenarios.
type: array
items:
type: object
properties:
item_id:
$ref: '#/components/schemas/item_id'
item_order:
$ref: '#/components/schemas/item_order'
name:
$ref: '#/components/schemas/name'
description:
$ref: '#/components/schemas/description'
quantity:
$ref: '#/components/schemas/quantity'
warehouse_id:
description: Unique ID of the warehouse from which the mapped item is fulfilled.
type: string
example: '460000000038080'
location_id:
$ref: '#/components/schemas/location_id'
delivery_method_id:
description: Unique ID generated by the server for the delivery method. This is used as an identifier.
type: string
example: 4815000000044822
name:
description: Name of the line item.
type: string
example: Laptop-white/15inch/dell
tax_percentage:
description: Percentage of the tax.
type: number
format: double
example: 12
can_send_in_mail:
description: Checks whether the sales order can be sent as a mail or not.
type: boolean
example: true
customer_name:
description: Name of the customer.
type: string
example: Molly
gst_treatment:
description: Choose whether the contact is GST registered/unregistered/consumer/overseas. Allowed values are <code> business_gst </code> , <code> business_none </code> , <code> overseas </code> , <code> consumer </code>.
type: string
example: business_gst
x-node_available_in:
- in
x-node_unavailable_in: []
invoice_id:
description: Unique ID generated by the server for the invoice. This is used as an identifier.
type: string
example: 4815000000045091
communication_preference:
description: Preferred modes of communication for the contact person at transaction level.
type: object
properties:
is_email_enabled:
$ref: '#/components/schemas/is_email_enabled'
is_whatsapp_enabled:
$ref: '#/components/schemas/is_whatsapp_enabled'
billing_address_id:
description: Unique Id generated by the server for address in contacts page. To add a billing address to sales order, send the address_id using this node. Else, the default billing address for that contact is used
type: string
example: 4815000000017005
line_item_id:
description: Unique ID generated by the server for each line item. This is used as an identifier.
type: string
example: 4815000000044897
mark-as-confirmed-response:
type: object
properties:
code:
type: integer
example: 0
readOnly: true
message:
type: string
example: Sales order status has been changed to 'Confirmed'.
readOnly: true
currency_id:
description: Unique ID generated by the server for the currency. This is used as an identifier.
type: string
example: 4815000000000097
tax_total:
description: Tax total of the Sales Order.
type: number
format: double
example: 29
reference_number:
description: Reference number of the Sales Order
type: string
example: REF-S-00003
sales_channel:
description: From which channel the saleorder was obtained
type: string
example: direct_sales
location_id:
description: Location ID
type: string
example: '460000000038080'
service:
description: Name of the service provided by the carrier.
type: string
example: SMART_POST
shipping_charge:
description: Shipping charges that can be applied to the Sales Order.
type: number
format: double
example: 7
is_pre_gst:
description: Applicable for transactions that fall before july 1, 2017
type: boolean
example: false
x-node_available_in:
- in
x-node_unavailable_in: []
quantity_invoiced:
# --- truncated at 32 KB (74 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoho-inventory/refs/heads/main/openapi/zoho-inventory-salesorders-api-openapi.yml