Zoho Inventory transferorders API

TransferOrders Module

OpenAPI Specification

zoho-inventory-transferorders-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: batches transferorders 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: transferorders
  description: TransferOrders Module
paths:
  /transferorders:
    x-mcp-group:
    - Transfer Orders
    parameters:
    - $ref: '#/components/parameters/organization_id'
    post:
      tags:
      - transferorders
      operationId: create_transfer_order
      summary: Create a transfer order
      description: Creates a new transfer order in Zoho Inventory.
      parameters:
      - name: ignore_auto_number_generation
        in: query
        description: When auto number generation is enabled in transfer order, this node states whether the auto generated transfer order number should be used or not. The default value is false.
        required: false
        schema:
          type: boolean
        example: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-a-transfer-order-request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/create-a-transfer-order-response'
      deprecated: false
      security:
      - Zoho_Auth:
        - ZohoInventory.transferorders.CREATE
    get:
      tags:
      - transferorders
      operationId: list_transfer_orders
      summary: List all the transfer orders
      description: Lists transfer orders in the Organization. Supports pagination, sort, quick search, custom view, and filters such as status, date range, warehouse or location, item, and transfer order number.
      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
      - name: sort_column
        in: query
        description: Column used to sort the list. Allowed values are <code>date</code>, <code>created_time</code>, and <code>last_modified_time</code>.
        required: false
        schema:
          type: string
          enum:
          - date
          - created_time
          - last_modified_time
        example: created_time
      - name: sort_order
        in: query
        description: Sort order. Allowed values are <code>A</code> for ascending and <code>D</code> for descending.
        required: false
        schema:
          type: string
          enum:
          - A
          - D
        example: D
      - name: filter_by
        in: query
        description: 'Filter using built-in views. Max-length 100. Examples: <code>TransferDate.All</code>, <code>TransferDate.ThisMonth</code>, <code>TransferStatus.InTransit</code>, <code>TransferStatus.Transferred</code>, <code>MissingAdvancedTrackingDetails</code>.'
        required: false
        schema:
          type: string
        example: TransferDate.All
      - name: search_text
        in: query
        description: Search text applied across supported columns for the list.
        required: false
        schema:
          type: string
      - name: status
        in: query
        description: Filter by transfer order status. Allowed values are <code>in_transit</code>, <code>transferred</code>, <code>partially_transferred</code>, <code>draft</code>, <code>pending_approval</code>, <code>approved</code>, and <code>void</code>.
        required: false
        schema:
          type: string
          enum:
          - in_transit
          - transferred
          - partially_transferred
          - draft
          - pending_approval
          - approved
          - void
      - name: item_id
        in: query
        description: Filter by item ID.
        required: false
        schema:
          type: string
        example: '4815000000044100'
      - name: item_name
        in: query
        description: Filter by item name.
        required: false
        schema:
          type: string
      - name: project_id
        in: query
        description: Filter by project ID.
        required: false
        schema:
          type: string
        example: '460000000039050'
      - name: from_warehouse_id
        in: query
        description: Filter by source warehouse ID.
        required: false
        schema:
          type: string
      - name: from_warehouse_name
        in: query
        description: Filter by source warehouse name.
        required: false
        schema:
          type: string
      - name: to_warehouse_id
        in: query
        description: Filter by destination warehouse ID.
        required: false
        schema:
          type: string
      - name: to_warehouse_name
        in: query
        description: Filter by destination warehouse name.
        required: false
        schema:
          type: string
      - name: from_location_id
        in: query
        description: Filter by source location ID.
        required: false
        schema:
          type: string
      - name: from_location_name
        in: query
        description: Filter by source location name.
        required: false
        schema:
          type: string
      - name: to_location_id
        in: query
        description: Filter by destination location ID.
        required: false
        schema:
          type: string
      - name: to_location_name
        in: query
        description: Filter by destination location name.
        required: false
        schema:
          type: string
      - name: customview_id
        in: query
        description: Custom view ID to apply.
        required: false
        schema:
          type: string
      - name: serial_number
        in: query
        description: Filter by serial number.
        required: false
        schema:
          type: string
      - name: transfer_order_number
        in: query
        description: Filter by transfer order number.
        required: false
        schema:
          type: string
      - name: transfer_order_number_startswith
        in: query
        description: Filter by transfer order numbers that start with the given value.
        required: false
        schema:
          type: string
      - name: transfer_order_number_contains
        in: query
        description: Filter by transfer order numbers that contain the given value.
        required: false
        schema:
          type: string
      - name: reason
        in: query
        description: Filter by reason text (same family of search operators as transfer order number).
        required: false
        schema:
          type: string
      - name: reference_number_contains
        in: query
        description: Filter by reference number contains.
        required: false
        schema:
          type: string
      - name: date
        in: query
        description: Filter by exact transfer date. Format <code>yyyy-mm-dd</code>.
        required: false
        schema:
          type: string
        example: '2018-03-23'
      - name: date_start
        in: query
        description: Filter from this date (inclusive). Format <code>yyyy-mm-dd</code>.
        required: false
        schema:
          type: string
      - name: date_end
        in: query
        description: Filter up to this date (inclusive). Format <code>yyyy-mm-dd</code>.
        required: false
        schema:
          type: string
      - name: date_before
        in: query
        description: Filter by dates before this date. Format <code>yyyy-mm-dd</code>.
        required: false
        schema:
          type: string
      - name: date_after
        in: query
        description: Filter by dates after this date. Format <code>yyyy-mm-dd</code>.
        required: false
        schema:
          type: string
      - name: tracking_number
        in: query
        description: Filter by tracking number.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/list-all-the-transfer-orders-response'
      deprecated: false
      security:
      - Zoho_Auth:
        - ZohoInventory.transferorders.READ
    delete:
      tags:
      - transferorders
      operationId: bulk_delete_transfer_orders
      summary: Bulk delete transfer orders
      description: Deletes up to 25 transfer orders in one request. Pass comma-separated transfer order IDs.
      parameters:
      - name: transfer_order_ids
        in: query
        required: true
        description: Comma-separated list of transfer order IDs to delete. Minimum 1 and maximum 25 IDs.
        schema:
          type: string
        example: 4815000000044895,4815000000044896
      - $ref: '#/components/parameters/organization_id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bulk-delete-transfer-orders-response'
      deprecated: false
      security:
      - Zoho_Auth:
        - ZohoInventory.transferorders.DELETE
  /transferorders/{transfer_order_id}:
    x-mcp-group:
    - Transfer Orders
    parameters:
    - name: transfer_order_id
      in: path
      required: true
      description: Unique identifier of the transfer order.
      schema:
        type: string
      example: 4815000000044895
    - $ref: '#/components/parameters/organization_id'
    get:
      tags:
      - transferorders
      operationId: get_transfer_order
      summary: Retrieve a transfer order
      description: Fetches the details for an existing transfer order.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/retrieve-a-transfer-order-response'
      deprecated: false
      security:
      - Zoho_Auth:
        - ZohoInventory.transferorders.READ
    put:
      tags:
      - transferorders
      operationId: update_transfer_order
      summary: Update a transfer order
      description: Update an existing transfer order from Zoho Inventory.
      parameters:
      - name: ignore_auto_number_generation
        in: query
        description: When auto number generation is enabled for transfer orders, set to <code>true</code> to supply your own transfer order number. Allowed values are <code>true</code> and <code>false</code>.
        required: false
        schema:
          type: boolean
        example: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-a-transfer-order-request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/update-a-transfer-order-response'
      deprecated: false
      security:
      - Zoho_Auth:
        - ZohoInventory.transferorders.UPDATE
    delete:
      tags:
      - transferorders
      operationId: delete_transfer_order
      summary: Delete a transfer order
      description: Deletes an existing transfer order from Zoho Inventory.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/delete-a-transfer-order-response'
      deprecated: false
      security:
      - Zoho_Auth:
        - ZohoInventory.transferorders.DELETE
  /transferorders/{transfer_order_id}/markastransferred:
    x-mcp-group:
    - Transfer Orders
    parameters:
    - name: transfer_order_id
      in: path
      required: true
      description: Unique identifier of the transfer order.
      schema:
        type: string
      example: 4815000000044895
    - name: date
      in: query
      required: true
      description: Date when the transfer was completed. Format <code>yyyy-mm-dd</code>.
      schema:
        type: string
      example: '2018-03-23'
    - $ref: '#/components/parameters/organization_id'
    post:
      tags:
      - transferorders
      operationId: mark_transfer_order_as_received
      summary: Mark as Received
      description: Marks the transfer order as transferred for the Organization. You must pass the transferred date.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mark-as-received-response'
      deprecated: false
      security:
      - Zoho_Auth:
        - ZohoInventory.transferorders.CREATE
  /transferorders/{transfer_order_id}/intransit:
    x-mcp-group:
    - Transfer Orders
    parameters:
    - name: transfer_order_id
      in: path
      required: true
      description: Unique identifier of the transfer order.
      schema:
        type: string
      example: 4815000000044895
    - $ref: '#/components/parameters/organization_id'
    post:
      tags:
      - transferorders
      operationId: mark_transfer_order_in_transit
      summary: Mark transfer order as in transit
      description: Marks the transfer order as in transit. Optionally specify whether prices are tax inclusive.
      parameters:
      - name: is_tax_inclusive
        in: query
        description: Whether prices are inclusive of tax. Allowed values are <code>true</code> and <code>false</code>. This need to be passed only for IN edition org when marking inter GSTIN transfer order as in transit.
        required: false
        schema:
          type: boolean
        example: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mark-in-transit-response'
      deprecated: false
      security:
      - Zoho_Auth:
        - ZohoInventory.transferorders.CREATE
  /transferorders/{transfer_order_id}/submit:
    x-mcp-group:
    - Transfer Orders
    post:
      tags:
      - transferorders
      operationId: submit_transferorder
      summary: Submit a transfer order for approval
      description: Submit a transfer order for approval workflow.
      parameters:
      - name: transfer_order_id
        in: path
        description: Unique ID of the transfer order.
        required: true
        schema:
          type: string
        example: '4815000000044895'
      - $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.transferorders.UPDATE
  /transferorders/{transfer_order_id}/approve:
    x-mcp-group:
    - Transfer Orders
    post:
      tags:
      - transferorders
      operationId: approve_transferorder
      summary: Approve a transfer order
      description: Approve a submitted transfer order.
      parameters:
      - name: transfer_order_id
        in: path
        description: Unique ID of the transfer order.
        required: true
        schema:
          type: string
        example: '4815000000044895'
      - $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.transferorders.UPDATE
  /transferorders/{transfer_order_id}/approve/final:
    x-mcp-group:
    - Transfer Orders
    post:
      tags:
      - transferorders
      operationId: approve_transfer_order_final
      summary: Final approval of a transfer order
      description: Perform the final approval of a transfer order (admin only).
      parameters:
      - name: transfer_order_id
        in: path
        description: Unique ID of the transfer order.
        required: true
        schema:
          type: string
        example: '4815000000044895'
      - $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.transferorders.UPDATE
  /transferorders/{transfer_order_id}/reject:
    x-mcp-group:
    - Transfer Orders
    post:
      tags:
      - transferorders
      operationId: reject_transferorder
      summary: Reject a transfer order
      description: Reject a submitted transfer order.
      parameters:
      - name: transfer_order_id
        in: path
        description: Unique ID of the transfer order.
        required: true
        schema:
          type: string
        example: '4815000000044895'
      - $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.transferorders.UPDATE
components:
  schemas:
    to_location_name:
      description: Name of the to location
      type: string
    mark-as-received-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: The status of the Transfer Order has been updated.
          readOnly: true
    reject-request:
      type: object
      properties:
        reason:
          description: Reason for rejecting the transfer order. Max-length [500].
          type: string
          example: Insufficient stock at the source warehouse.
    label:
      description: Label of the Custom Field
      type: string
    from_location_id:
      description: From Location ID
      type: string
      example: '460000000038080'
    from_location_name:
      description: Name of the from location
      type: string
    batches:
      description: Batches for the line item. Reference an existing batch using <code>batch_id</code>. Applicable only for items with batch tracking enabled.
      type: array
      items:
        type: object
        required:
        - batch_id
        - out_quantity
        properties:
          batch_id:
            description: Unique identifier of the batch.
            type: string
            example: '6780203000000162236'
          out_quantity:
            description: Outward quantity from the batch.
            type: number
            format: float
            example: 2
          from_storages:
            description: Source bin/storage locations from which stock was consumed for this batch.
            type: array
            x-node_available_in:
            - Batch with Bin tracked items
            items:
              type: object
              required:
              - storage_id
              - out_quantity
              properties:
                storage_id:
                  description: Unique identifier of the source bin/storage location.
                  type: string
                  example: '6780203000000093227'
                out_quantity:
                  description: Outward quantity from the bin.
                  type: number
                  format: float
                  example: 2
          to_storages:
            description: Destination bin/storage locations to which stock was transferred for this batch.
            type: array
            x-node_available_in:
            - Batch with Bin tracked items
            items:
              type: object
              required:
              - storage_id
              - in_quantity
              properties:
                storage_id:
                  description: Unique identifier of the destination bin/storage location.
                  type: string
                  example: '6780203000000206981'
                in_quantity:
                  description: Inward quantity into the bin.
                  type: number
                  format: float
                  example: 2
          batch_in_number:
            description: Reserved field. Must be an empty string.
            type: string
            example: ''
    page:
      description: Current page index in the result set.
      type: integer
      example: 1
    retrieve-a-transfer-order-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: success
          readOnly: true
        transfer_order:
          type: object
          properties:
            transfer_order_id:
              $ref: '#/components/schemas/transfer_order_id'
            transfer_order_number:
              $ref: '#/components/schemas/transfer_order_number'
            date:
              $ref: '#/components/schemas/date'
            from_location_id:
              $ref: '#/components/schemas/from_location_id'
            from_location_name:
              $ref: '#/components/schemas/from_location_name'
            to_location_id:
              $ref: '#/components/schemas/to_location_id'
            to_location_name:
              $ref: '#/components/schemas/to_location_name'
            line_items:
              $ref: '#/components/schemas/line_items'
            is_intransit_order:
              $ref: '#/components/schemas/is_intransit_order'
            custom_fields:
              $ref: '#/components/schemas/custom_fields'
        locations:
          type: object
          properties: {}
    item_id:
      description: Unique ID generated by the server for the item. This is used as an identifier.
      type: string
      example: 4815000000044100
    to_storages:
      description: Destination bin/storage locations for the line item. Applicable only for items with bin tracking enabled.
      type: array
      items:
        type: object
        required:
        - storage_id
        - in_quantity
        properties:
          storage_id:
            description: Unique identifier of the destination bin/storage location.
            type: string
            example: '6780203000000206981'
          in_quantity:
            description: Inward quantity into the bin.
            type: number
            format: float
            example: 1
          serial_numbers:
            description: Serial numbers transferred into this bin.
            type: array
            x-node_available_in:
            - Serial with Bin tracked items
            items:
              type: string
              example: PKG-002
    approval-action-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: success
          readOnly: true
    name:
      description: Name of the line item.
      type: string
      example: Laptop-white/15inch/dell
    update-a-transfer-order-request:
      required:
      - transfer_order_number
      - date
      - from_location_id
      - to_location_id
      - line_items
      type: object
      properties:
        transfer_order_number:
          $ref: '#/components/schemas/transfer_order_number'
        date:
          $ref: '#/components/schemas/date'
        description:
          description: Notes or internal description for the transfer order. Max-length 500.
          type: string
          example: Quarterly warehouse reshuffle
        from_warehouse_id:
          description: Source warehouse ID when multi-warehouse is enabled.
          type: string
          example: '460000000038075'
        to_warehouse_id:
          description: Destination warehouse ID when multi-warehouse is enabled.
          type: string
          example: '460000000038076'
        from_location_id:
          $ref: '#/components/schemas/from_location_id'
        to_location_id:
          $ref: '#/components/schemas/to_location_id'
        line_items:
          description: A transfer can contain multiple line items. Each line item contains <code>item_id</code>,<code>name</code>,<code>description</code>,<code>quantity_transfer</code>,<code>unit</code>.
          type: array
          items:
            type: object
            required:
            - item_id
            - name
            - quantity_transfer
            properties:
              item_id:
                $ref: '#/components/schemas/item_id'
              line_item_id:
                $ref: '#/components/schemas/line_item_id'
              name:
                $ref: '#/components/schemas/name'
              description:
                $ref: '#/components/schemas/description'
              quantity_transfer:
                $ref: '#/components/schemas/quantity_transfer'
              unit:
                $ref: '#/components/schemas/unit'
              serial_numbers:
                $ref: '#/components/schemas/serial_numbers'
              batches:
                $ref: '#/components/schemas/batches-update'
              from_storages:
                $ref: '#/components/schemas/from_storages-update'
              to_storages:
                $ref: '#/components/schemas/to_storages-update'
        is_intransit_order:
          $ref: '#/components/schemas/is_intransit_order'
        custom_fields:
          $ref: '#/components/schemas/custom_fields'
    applied_filter:
      description: Active filter applied to the list.
      type: string
      example: TransferDate.All
    from_storages:
      description: Source bin/storage locations for the line item. Applicable only for items with bin tracking enabled.
      type: array
      items:
        type: object
        required:
        - storage_id
        - out_quantity
        properties:
          storage_id:
            description: Unique identifier of the source bin/storage location.
            type: string
            example: '6780203000000093225'
          out_quantity:
            description: Outward quantity from the bin.
            type: number
            format: float
            example: 1
          serial_numbers:
            description: Serial numbers transferred from this bin.
            type: array
            x-node_available_in:
            - Serial with Bin tracked items
            items:
              type: string
              example: PKG-002
    serial_numbers:
      description: Serial numbers for the line item. Applicable only for items with serial tracking enabled.
      type: array
      items:
        type: string
        example: PKG-002
    date:
      description: The date for the Transfer Order.
      type: string
      example: '2018-03-23'
    has_more_page:
      description: Whether another page of results exists.
      type: boolean
      example: false
    report_name:
      description: Display name for the report or list.
      type: string
      example: zb.transfer.order.title
    per_page:
      description: Number of records per page.
      type: integer
      example: 200
    custom_fields:
      type: array
      description: List of custom fields associated with the transfer order
      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.
    to_location_id:
      description: To Location ID
      type: string
      example: '460000000039090'
    sort_column:
      description: Column used for sorting the list.
      type: string
      example: created_time
    to_storages-update:
      description: Destination bin/storage locations for the line item. Applicable only for items with bin tracking enabled.
      type: array
      items:
        type: object
        required:
        - storage_id
        - in_quantity
        properties:
          storage_id:
            description: Unique identifier of the destination bin/storage location.
            type: string
            example: '6780203000000206981'
          in_quantity:
            description: Inward quantity into the bin.
            type: number
            format: float
            example: 1
          storage_in_id:
            description: Unique identifier of the storage record. Applicable only when updating the transfer order.
            type: string
            example: '6780203000001106133'
          serial_numbers:
            description: Serial numbers transferred into this bin.
            type: array
            x-node_available_in:
            - Serial with Bin tracked items
            items:
              type: string
              example: PKG-002
    transfer_order-response:
      type: object
      properties:
        transfer_order_id:
          $ref: '#/components/schemas/transfer_order_id'
        transfer_order_number:
          $ref: '#/components/schemas/transfer_order_number'
        date:
          $ref: '#/components/schemas/date'
        from_location_id:
          $ref: '#/components/schemas/from_location_id'
        from_location_name:
          $ref: '#/components/schemas/from_location_name'
        to_location_id:
          $ref: '#/components/schemas/to_location_id'
        to_location_name:
          $ref: '#/components/schemas/to_location_name'
        line_items:
          $ref: '#/components/schemas/line_items'
        is_intransit_order:
          $ref: '#/components/schemas/is_intransit_order'
        description:
          description: Notes or internal description for the transfer order.
          type: string
          example: Quarterly warehouse reshuffle
        status:
          description: Current status of the transfer order.
          type: string
          example: in_transit
        custom_fields:
          $ref: '#/components/schemas/custom_fields'
    batches-update:
      description: Batches for the line item. Reference an existing batch using <code>batch_id</code>. Use <code>batch_in_number_id</code> to update an existing batch entry on the transfer order. Applicable only for items with batch tracking enabled.
      type: array
      items:
        type: object
        required:
        - batch_id
        - out_quantity
        properties:
          batch_id:
            description: Unique identifier of the batch.
            type: string
            example: '6780203000000162236'
          batch_in_number_id:
            description: Unique identifier of the destination batch entry on the line item. Required to update an existing batch entry on the transfer order.
            type: string
            example: '6780203000001106137'
          out_quantity:
            description: Outward quantity from the batch.
            type: number
            format: float
            example: 2
          from_storages:
            description: Source bin/storage locations from which stock was consumed for this batch.
            type: array
            x-node_available_in:
            - Batch with Bin tracked items
            items:
              type: object
              required:
              - storage_id
              - out_quantity
              properties:
                storage_id:
                  description: Unique identifier of the source bin/storage location.
                  type: string
                  example: '6780203000000093227'
                out_quantity:
                  description: Outward quantity from the bin.
                  type: number
                  format: float
                  example: 2
                storage_out_id:
                  description: Unique identifier o

# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoho-inventory/refs/heads/main/openapi/zoho-inventory-transferorders-api-openapi.yml