Create Material

Beta
POST/v1/catalog/materials

Idempotent with Idempotency-Key header. Learn more

Creates a material together with the catalog item that carries its SKU, description, category, pricing, and attributes.

Inventory tracking for the new material starts at a zero on-hand quantity in the category's base unit. The item's consumption rate (burn_rate) also starts at zero and cannot be supplied here — it is derived from recorded consumption as production happens.

Permissions requiredValues:materials:createcustomers:updatesuppliers:update
The role behind your API key or agent must grant every one of these permissions.
include[]optional arrayenumValues:itemitem.categoryitem.category.properties

Sub-objects to expand in the response. When omitted, sub-objects are returned as null.

skustring

Stock keeping unit code for the material.

Must be unique within the account; creating a material with a SKU already used by another item fails with a conflict error.

descriptionoptional string

Free-form description of the material.

notesoptional string

Free-form notes about the material.

category_idstring

ID of the item category to place the material in.

The category's unit group determines the base unit used for the material's rates (unit_value, unit_cost, burn_rate).

order_pointoptional object

Reorder threshold: when on-hand stock falls to this quantity, the material should be reordered.

When omitted, the material is created without a reorder threshold.

valuestring (decimal)

Decimal value of the quantity.

unit_idstring

ID of the unit the value is expressed in.

lead_timeoptional object

Expected time between placing an order for this material and receiving it, expressed as a quantity in a time unit (e.g. days).

When omitted, the material is created without a lead time.

valuestring (decimal)

Decimal value of the quantity.

unit_idstring

ID of the unit the value is expressed in.

unit_priceoptional object

Initial selling price per unit.

numerator_unit_id must reference a currency unit and denominator_unit_id must reference a non-currency unit (e.g. $5 per ea). When omitted, the price is initialized to a zero rate in the category's base unit. It becomes the unit_value rate on the material's item; the material update endpoint cannot change it afterwards.

valuestring (decimal)

Decimal value of the rate, expressed as the amount of the numerator unit per one denominator unit.

numerator_unit_idstring

ID of the unit for the rate's numerator (e.g. the currency of a price).

denominator_unit_idstring

ID of the unit for the rate's denominator (the per-unit basis).

unit_costoptional object

Initial cost per unit.

Follows the same unit rule as unit_price: currency numerator, non-currency denominator. When omitted, the cost is initialized to a zero rate in the category's base unit.

valuestring (decimal)

Decimal value of the rate, expressed as the amount of the numerator unit per one denominator unit.

numerator_unit_idstring

ID of the unit for the rate's numerator (e.g. the currency of a price).

denominator_unit_idstring

ID of the unit for the rate's denominator (the per-unit basis).

attribute_idsoptional array of string

IDs of existing attributes to link to the material at creation time.

Each attribute's property must be one the material's category carries; an attribute from any other property fails the whole request.

idstring

Material ID.

objectstringenumValues:material

Resource type identifier.

itemitemExpandablenullable

The underlying inventory item this material record extends with material-specific fields such as order point and lead time.

idstring

Item ID.

objectstringenumValues:item

Resource type identifier.

skustring

Stock keeping unit code, unique within the account.

descriptionstringnullable

Item description.

notesstringnullable

Free-form notes about the item.

typestringenumValues:productmaterialpart

What kind of item this is.

  • product: a finished product.
  • material: a raw material or component consumed in production.
  • part: a part used in production.
categoryitem_categoryExpandablenullable

The category this item belongs to.

The category's unit group determines the base unit the item's rates (unit_value, unit_cost, burn_rate) are expressed in.

idstring

Item category ID.

objectstringenumValues:item_category

Resource type identifier.

namestring

Display name of the item category.

notesstringnullable

Free-form notes about the item category.

typestringenumValues:material_categoryproduct_category

What kind of items this category groups.

  • material_category: groups raw materials and components (items of type material).
  • product_category: groups finished products and parts (items of type product or part).

An item can only be assigned to a category whose type matches the item's type, and the category's type is fixed at creation.

ownerownernullable

Provenance of the item category.

System-owned categories are platform-provided defaults shared across all accounts and cannot be updated or deleted; account-owned categories are custom to your account.

Always returned as null in this endpoint.
propertieslistExpandablenullable

Properties associated with this item category, such as Color or Size.

These describe the dimensions along which items in the category vary, and are also what the customer-facing catalog shows for the category. Attach and detach them with the Add Item Category Property and Remove Item Category Property endpoints.

objectstringenumValues:list

Resource type identifier.

page_infoobject

Pagination metadata.

next_page_urlstringnullable

Relative URL that fetches the next page of results.

previous_page_urlstringnullable

Relative URL that fetches the previous page of results.

has_next_pageboolean

Whether more results exist after this page.

has_prev_pageboolean

Whether results exist before this page.

dataarray of property

Resources in this page.

idstring

Property ID.

objectstringenumValues:property

Resource type identifier.

namestring

Display name of the property, such as Color or Size.

Unique within the account.

attributeslistnullable

The selectable values defined under this property.

Listed in the order the attributes are arranged within the property, first to last.

Always returned as null in this endpoint.
created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last update timestamp.

unit_groupunit_groupExpandablenullable

Unit group associated with this item category.

Items in this category are measured in units belonging to this group, and can only be ordered in those units unless the item's product line defines its own unit group, which takes precedence.

idstring

Unit group ID.

objectstringenumValues:unit_group

Resource type identifier.

namestring

Display name of the unit group.

Unique within the account.

notesstringnullable

Free-form notes about the unit group.

typestringenumValues:currencyquantitytime

The dimension shared by every unit in this group, such as mass, volume, or currency.

Only units of this dimension can belong to the group, and the dimension is fixed once the group is created.

base_unitunitnullable

The reference unit designated for this group.

Always returned as null in this endpoint.
associated_unitslistnullable

Units associated with this group, each with its own discount and customer portal visibility settings.

Always returned as null in this endpoint.
ownerownernullable

Owner of this resource.

Always returned as null in this endpoint.
created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

unit_valuerateExpandablenullable

Selling value per unit, expressed as a rate (e.g. $25.50 / kg).

idstring

Rate ID.

objectstringenumValues:rate

Resource type identifier.

valuestring (decimal)

Decimal value of the rate, as a string to preserve precision.

Expressed as the amount of the numerator unit per one denominator unit.

numerator_unitunitnullable

Unit of the rate's numerator (e.g. the currency of a price).

Always returned as null in this endpoint.
denominator_unitunitnullable

Unit of the rate's denominator (the per-unit basis, e.g. kilograms for a price per kilogram).

Always returned as null in this endpoint.
display_valuestring

Human-readable formatted value (e.g. "$25.50 / kg" or "100 kg / hr").

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

unit_costrateExpandablenullable

Cost per unit, expressed as a rate (e.g. $10.00 / kg).

For items a production flow produces, retrieving the item's costs recomputes this from the flow and stores the result here, so it can change without the item having been edited.

idstring

Rate ID.

objectstringenumValues:rate

Resource type identifier.

valuestring (decimal)

Decimal value of the rate, as a string to preserve precision.

Expressed as the amount of the numerator unit per one denominator unit.

numerator_unitunitnullable

Unit of the rate's numerator (e.g. the currency of a price).

Always returned as null in this endpoint.
denominator_unitunitnullable

Unit of the rate's denominator (the per-unit basis, e.g. kilograms for a price per kilogram).

Always returned as null in this endpoint.
display_valuestring

Human-readable formatted value (e.g. "$25.50 / kg" or "100 kg / hr").

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

burn_raterateExpandablenullable

Rate at which this item is consumed in production, expressed as a quantity over time (e.g. 100 kg / hr).

idstring

Rate ID.

objectstringenumValues:rate

Resource type identifier.

valuestring (decimal)

Decimal value of the rate, as a string to preserve precision.

Expressed as the amount of the numerator unit per one denominator unit.

numerator_unitunitnullable

Unit of the rate's numerator (e.g. the currency of a price).

Always returned as null in this endpoint.
denominator_unitunitnullable

Unit of the rate's denominator (the per-unit basis, e.g. kilograms for a price per kilogram).

Always returned as null in this endpoint.
display_valuestring

Human-readable formatted value (e.g. "$25.50 / kg" or "100 kg / hr").

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

attributeslistExpandablenullable

Attributes assigned to this item.

objectstringenumValues:list

Resource type identifier.

page_infoobject

Pagination metadata.

next_page_urlstringnullable

Relative URL that fetches the next page of results.

previous_page_urlstringnullable

Relative URL that fetches the previous page of results.

has_next_pageboolean

Whether more results exist after this page.

has_prev_pageboolean

Whether results exist before this page.

dataarray of attribute

Resources in this page.

idstring

Attribute ID.

objectstringenumValues:attribute

Resource type identifier.

valuestring

The selectable value this attribute represents, such as Red for a Color property or Large for a Size property.

colorstringenumValues:bluebrowndefault

Swatch color used to display this attribute in the UI.

The named colors are arbitrary display choices; default is a neutral fallback used when no specific swatch applies.

sort_orderinteger

Position of this attribute relative to its siblings within the property, starting at 1.

Positions are kept contiguous: creating, reordering, or deleting an attribute automatically shifts its siblings.

propertypropertynullable

The property this attribute belongs to.

Populated only when the attribute is returned under an item's or a volume discount's attributes list.

Always returned as null in this endpoint.
created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last update timestamp.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

order_pointquantitynullable

Reorder threshold: when on-hand stock falls to this quantity, the material should be reordered.

A threshold of zero is reported as no order point at all. Moving the underlying item to a different category re-expresses the order point in the new category's base unit, keeping the same numeric value rather than converting it.

idstring

Quantity ID.

objectstringenumValues:quantity

Resource type identifier.

valuestring (decimal)

Raw decimal value of the quantity, as a string to preserve precision.

This is the unformatted machine value; see display_value for the human-readable rendering with unit and thousands separators.

display_valuestring

Formatted value with unit abbreviation (e.g. "$1,234.56" or "100 kg").

unitunitnullable

Unit of measure for this value (e.g. a currency, mass, or count unit).

lead_timequantitynullable

Expected time between placing an order for this material and receiving it, expressed as a quantity in a time unit (e.g. days).

A lead time of zero is reported as no lead time at all.

idstring

Quantity ID.

objectstringenumValues:quantity

Resource type identifier.

valuestring (decimal)

Raw decimal value of the quantity, as a string to preserve precision.

This is the unformatted machine value; see display_value for the human-readable rendering with unit and thousands separators.

display_valuestring

Formatted value with unit abbreviation (e.g. "$1,234.56" or "100 kg").

unitunitnullable

Unit of measure for this value (e.g. a currency, mass, or count unit).

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

Responses

201

Successful response for Create Material