{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/quickbooks/json-schema/quickbooks-itemrequest-schema.json",
  "title": "itemrequest",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/quickbooks-item-api-openapi.yml#/components/schemas/itemrequest",
  "type": "object",
  "properties": {
    "QtyOnHand": {
      "type": "number",
      "description": "Current quantity of the Inventory items available for sale. Not used for Service or NonInventory type items.Required for Inventory type items.",
      "x-intuit-required": "Conditionally required"
    },
    "Name": {
      "type": "string",
      "description": "Name of the item. This value must be unique, at least one character in length, and cannot include tabs, new lines, or colons. Required for create.",
      "x-intuit-required": "Required",
      "x-intuit-filterable": true,
      "x-intuit-sortable": true
    },
    "Type": {
      "type": "string",
      "description": "Classification that specifies the use of this item. See the description at the top of the Item entity page for details about supported item types. Used for goods the company sells and buys that are tracked as inventory. \n\nService--Default setting when TrackQtyOnHand, InvStartDate, and AssetAccountRef are not specified. Used for non-tangible goods the company sells and buys that are not tracked as inventory. For example, specialized labor, consulting hours, and professional fees.\n\nThis field is required to be explicitly set with one of the following:\nInventory--Used for goods the company sells and buys that are tracked as inventory. \n\nService--Used for non-tangible goods the company sells and buys that are not tracked as inventory. For example, specialized labor, consulting hours, and professional fees.\n\nNonInventory--Use for goods the company sells and buys that are not tracked as inventory. For example, office supplies or goods bought on behalf of the customer.\n\n.",
      "x-intuit-required": "Conditionally required",
      "x-intuit-filterable": true,
      "x-intuit-sortable": true
    },
    "IncomeAccountRef": {
      "allOf": [
        {
          "$ref": "#/$defs/referencetype"
        }
      ],
      "description": "Reference to the posting account, that is, the account that records the proceeds from the sale of this item. Must be an account with account type of Sales of Product Income. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for IncomeAccountRef.value and IncomeAccountRef.name, respectively.\nFor France locales:\nThis is an optional field.\n\nThis is the sales account id, If not provided it defaults to the default sales account: 706100 and 707100 are the default expense accounts used for  Service and Product type of item, respectively.\n\nRequired for Inventory and Service item types.",
      "x-intuit-required": "Conditionally required"
    },
    "AssetAccountRef": {
      "allOf": [
        {
          "$ref": "#/$defs/referencetype"
        }
      ],
      "description": "Reference to the Inventory Asset account that tracks the current value of the inventory. If the same account is used for all inventory items, the current balance of this account will represent the current total value of the inventory. Must be an account with account type of Other Current Asset. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AssetAccountRef.value and AssetAccountRef.name, respectively.\nRequired for Inventory item types.",
      "x-intuit-required": "Condtionally required"
    },
    "InvStartDate": {
      "type": "string",
      "format": "date",
      "description": "Date of opening balance for the inventory transaction. Required when creating an Item.Type=Inventory.\nRequired for Inventory item types.",
      "x-intuit-required": "Condtionally required"
    },
    "CustomExtensions": {
      "allOf": [
        {
          "$ref": "#/$defs/customextensions"
        }
      ],
      "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION. The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite.",
      "x-intuit-required": "Optional"
    },
    "ExpenseAccountRef": {
      "allOf": [
        {
          "$ref": "#/$defs/referencetype"
        }
      ],
      "description": "Reference to the expense account used to pay the vendor for this item.  Must be an account with account type of Cost of Goods Sold. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ExpenseAccountRef.value and ExpenseAccountRef.name, respectively.\nFor France locales:\nThis is an optional field.\n\nThis is the purchase account id, If not provided it defaults to the default purchase account: 605100 and 601100 are the default expense accounts used for Service and Product type of item, respectively.\n\nRequired for Inventory, NonInventory, and Service item types.",
      "x-intuit-required": "Condtionally required"
    }
  },
  "required": [
    "Name"
  ],
  "$defs": {
    "associatedvalues": {
      "type": "object",
      "title": "associatedvalues",
      "properties": {
        "Value": {
          "type": "string",
          "description": "For ExtensionType=DIMENSION, the unique ID of the selected dimension value.",
          "x-intuit-required": "Required"
        },
        "Key": {
          "type": "string",
          "description": "For ExtensionType=DIMENSION, the unique ID of the dimension definition.",
          "x-intuit-required": "Required"
        }
      },
      "required": [
        "Key",
        "Value"
      ]
    },
    "customextensions": {
      "type": "object",
      "title": "customextensions",
      "properties": {
        "AssociatedValues": {
          "allOf": [
            {
              "$ref": "#/$defs/associatedvalues"
            }
          ],
          "description": "Array of key/value pairs associated with this extension. For ExtensionType=DIMENSION, each pair maps a dimension definition (Key) to a dimension value (Value).",
          "x-intuit-required": "Required"
        },
        "ExtensionType": {
          "type": "string",
          "description": "The type of extension applied to the line. Currently supported value: DIMENSION.",
          "x-intuit-required": "Required"
        }
      },
      "required": [
        "AssociatedValues",
        "ExtensionType"
      ]
    },
    "referencetype": {
      "type": "object",
      "title": "referencetype",
      "properties": {
        "name": {
          "type": "string",
          "description": "An identifying name for the object being referenced by value and is derived from the field that holds the common name of that object. This varies by context and specific type of object referenced. For example, references to a Customer object use Customer.DisplayName to populate this field. Optionally returned in responses, implementation dependent.",
          "x-intuit-required": "Optional"
        },
        "value": {
          "type": "string",
          "description": "The ID for the referenced object as found in the Id field of the object payload. The context is set by the type of reference and is specific to the QuickBooks company file.",
          "x-intuit-required": "Required"
        }
      },
      "required": [
        "value"
      ]
    }
  }
}