v1

latestOpenAPI 3.1.02026-08-0458234268.6 KB
catalog

Create a catalog entry

Creates a new catalog entry or updates an existing one if catalog_unique_key matches.

post/catalog/entries

Headers

Authorizationstring required

OAuth2 authentication flows. Auth server URLs will vary by environment

X-Api-Keystring required

API key for authentication

X-API-Versionstring

API version to use (optional, defaults to latest). Supported values: 1.0.0, 1.1.0.

Idempotency-Keystring

Client-generated unique key (UUID/ULID recommended). JSON requests: the first 2xx response is cached for 24h and replayed on a same-key retry with a matching body; a different body returns 422. Non-JSON requests (e.g. file uploads): the key is single-use — any same-key retry returns 422 regardless of body. See Idempotency for full details.

Request body

ottimate_company_idinteger required

The Ottimate company ID this catalog entry belongs to

erp_vendor_idstring required

ERP Vendor id from ERP/accounting system

item_namestring required

Item name for the catalog entry

descriptionstring

Deprecated: use item_name instead. This field will be removed in a future API version.

original_descriptionstring

Original item description from source system

skustring

SKU code

upcstring

UPC code

buying_formatstring nullable

Buying format distinguishing multiple purchasing formats for the same item (e.g., 'CASE', 'EACH'). Used as part of the composite unique key for integrations that differentiate catalog entries by buying format. Optional — null or omitted for integrations that do not use buying format.

sizestring

Pack size (e.g., '6 CT', '10 LB')

uomstring

Unit of measure (e.g., 'CASE', 'EACH', 'LB')

pricenumber double

Price for the pack size

unit_pricenumber double

Price per individual unit within the pack

is_split_caseboolean

Whether items can be purchased in split case quantities

authorized_vendorboolean

Whether the vendor is authorized for this item

catalog_unique_keystring

Unique key used to match existing entries for upsert. If omitted, the API auto-generates a key from erp_vendor_id, sku, size, and description. Key normalization: the value is derived from the entry's core identifying fields — the key returned in the response may differ from what you submitted. Always store and reuse the returned catalog_unique_key. Key regeneration: modifying erp_vendor_id, sku, size, or description will generate a new key that no longer matches the existing entry — the API will create a new entry instead of updating the old one, leaving the previous entry as an orphan. To avoid duplicates, store the latest catalog_unique_key from the response and include it in subsequent requests.

last_purchased_pricenumber double

Last purchased price for this item

reference_idstring

External reference ID for tracking

{"stackTrail":"paths:/catalog/entries:post:requestBody:content:application/json:schema:properties:dimensions","oasType":"schema","type":"unknown","description":"POS dimensions for this catalog entry — these are point-of-sale system dimensions, separate from ERP/accounting dimensions and not validated against your accounting configuration. Input Structure: a list of objects, each with one dimension-type key (value = dimension name) plus an optional 'code', e.g. [{\"DEPARTMENT\": \"Marketing\", \"code\": \"321654\"}]. Omit the field or pass null to leave dimensions unchanged."}
propertiesCatalogEntriesPostRequestBodyContentApplicationJsonSchema

Additional custom properties as key-value pairs

Response

Catalog entry created successfully

idstring required

Unique identifier (prefixed with cte_)

ottimate_company_idinteger required

Company ID

reference_idstring

Unique key for the catalog entry

item_namestring required

Item name for the catalog entry

descriptionstring

Deprecated: use item_name instead. This field will be removed in a future API version.

skustring

SKU code

upcstring

UPC code

buying_formatstring nullable

Buying format distinguishing multiple purchasing formats for the same item (e.g., 'CASE', 'EACH'). Used as part of the composite unique key for integrations that differentiate catalog entries by buying format. Optional — null or omitted for integrations that do not use buying format.

pack_sizestring

Pack size

uomstring

Unit of measure

pricestring

Price (decimal string)

unit_pricestring

Unit price (decimal string)

last_purchased_pricestring

Last purchased price (decimal string)

erp_vendor_idstring

ERP Vendor id from ERP/accounting system

ottimate_vendor_namestring nullable

Deprecated. Use erp_vendor_name instead. Same value, kept for backward compatibility; will be removed in a future API version.

erp_vendor_namestring nullable

Human-readable vendor name attached to erp_vendor_id, sourced from the originating system. Nullable when not provided.

is_split_caseboolean

Split case indicator

{"stackTrail":"components:schemas:CatalogEntryObject:properties:dimensions:oneOf","oasType":"schema","type":"unknown","description":"Any type","nullable":true}
display_namestring

Display name for the item

last_purchased_datestring

Last purchased date

last_purchased_date_utcstring date-time nullable

UTC equivalent of last_purchased_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".

created_datestring date-time

Record creation date

created_date_utcstring date-time nullable

UTC equivalent of created_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".

last_modified_datestring date-time

Record last modified date

last_modified_date_utcstring date-time nullable

UTC equivalent of last_modified_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".