✦Developers

KERN ERP API — Products

Masters, products and styles, Buyer POs, purchase orders, GRNs, sales invoices, packing slips and stock.

Version 2026-10-09.1 · published 9 Oct 2026 · 105 APIs

Base URL https://kronex.codeverse.co/cedge

Download: OpenAPI (JSON) · Postman collection · Guides · Changelog

Products

Grouped by screen, as in the app. Scope for the whole module: erp.products.*:read or :write.

Product List

Access: erp.products.products:read(or :write)

GET/public/v1/products/products

List products / styles (paged; search, category, status)

Scope erp.products.products:read · the client's role needs view on Product List

Parameters
NameInTypeNotes
pagequeryinteger (int32)Page number, starting at 0.
sizequeryinteger (int32)Items per page.
searchquerystringSearch text (part of a name, number or code; not case-sensitive).
categoryquerystringOnly this category.
statusquerystringOnly records with this status (see the record's status values).
excludeDraftquerybooleantrue leaves out drafts.
dateFromquerystringFrom this date (YYYY-MM-DD), inclusive.
dateToquerystringUp to this date (YYYY-MM-DD), inclusive.
excludeIncompleteBomquerybooleantrue leaves out styles whose bill of materials isn't complete.
Response (200) — data
FieldTypeNotes
contentarray of object
idinteger (int64)
productCodestring
productNamestring
colorIdinteger (int64)
colorNamestring
colorCodestring
categorystring
seasonstring
garmentTypestring
brandNamestring
hsnCodestring
standardCostnumber
gstPctnumber
statusstring
productImageUrlstring
mrpnumber
moqinteger (int32)
sizeCountinteger (int32)
totalFgQtyinteger (int32)
isComboboolean
createdAtstring
pageinteger (int32)
sizeinteger (int32)
totalElementsinteger (int64)
totalPagesinteger (int32)
lastboolean

Errors: 400, 401, 403, 404, 405, 429, 500 — every error says how to fix it; see error codes and troubleshooting.

Example
# KERN ERP — List products / styles (paged; search, category, status) curl -X GET "https://kronex.codeverse.co/cedge/public/v1/products/products?page=0&size=20" \ -H "Authorization: Bearer $KERN_API_KEY"
POST/public/v1/products/products

Create a product (one per colour given)

Scope erp.products.products:write · the client's role needs create on Product List · send an Idempotency-Key

Parameters
NameInTypeNotes
Idempotency-Key *headerstringAny unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.
Request body
FieldTypeNotes
productNamestring
colorIdsarray of integer (int64)
customerNamesarray of object
customerName *string
displayOrderinteger (int32)
descriptionsarray of object
description *string
displayOrderinteger (int32)
categorystring
seasonstring
garmentTypestring
brandIdinteger (int64)
locationIdinteger (int64)
sizesarray of object
sizeCode *string
sizeNamestring
gsCodestring
quantityinteger (int32)
standardCostnumber
mrpnumber
moqinteger (int32)
displayOrderinteger (int32)
uomId *integer (int64)
hsnCodestring
gstPctnumber
standardCostnumber
mrpnumber
moqinteger (int32)
remarksstring
bomarray of object
rmTypeIdinteger (int64)
materialType *string
rmIdinteger (int64)
fabricIdinteger (int64)
materialName *string
consumption *number
uomIdinteger (int64)
uomNamestring
pricePerUomnumber
totalPricenumber

…16 more fields — see the OpenAPI file.

Response (200) — data
FieldTypeNotes
createdProductsarray of object
idinteger (int64)
productCodestring
colorNamestring

Errors: 400, 401, 403, 404, 405, 409, 413, 422, 429, 500 — every error says how to fix it; see error codes and troubleshooting.

Example
# KERN ERP — Create a product (one per colour given) curl -X POST "https://kronex.codeverse.co/cedge/public/v1/products/products" \ -H "Authorization: Bearer $KERN_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ … }'
GET/public/v1/products/products/{id}

Get one product with sizes, SKUs and BOM

Scope erp.products.products:read · the client's role needs view on Product List

Parameters
NameInTypeNotes
id *pathinteger (int64)The record's id.
Response (200) — data
FieldTypeNotes
idinteger (int64)
productCodestring
productNamestring
colorIdinteger (int64)
colorNamestring
colorCodestring
uomIdinteger (int64)
uomNamestring
categorystring
seasonstring
garmentTypestring
brandIdinteger (int64)
brandNamestring
locationIdinteger (int64)
locationNamestring
hsnCodestring
gstPctnumber
standardCostnumber
mrpnumber
moqinteger (int32)
remarksstring
productImageUrlstring
statusstring
skuConfigstring
skusarray of object
idinteger (int64)
sizeCodestring
sizeNamestring
skustring
eanstring
articleNostring
customerNamesarray of object
idinteger (int64)
customerNamestring
displayOrderinteger (int32)
descriptionsarray of object
idinteger (int64)
descriptionstring
displayOrderinteger (int32)
sizesarray of object

…39 more fields — see the OpenAPI file.

Errors: 400, 401, 403, 404, 405, 429, 500 — every error says how to fix it; see error codes and troubleshooting.

Example
# KERN ERP — Get one product with sizes, SKUs and BOM curl -X GET "https://kronex.codeverse.co/cedge/public/v1/products/products/{id}" \ -H "Authorization: Bearer $KERN_API_KEY"
PUT/public/v1/products/products/{id}

Update a product

Scope erp.products.products:write · the client's role needs edit on Product List · send an Idempotency-Key

Parameters
NameInTypeNotes
id *pathinteger (int64)The record's id.
Idempotency-Key *headerstringAny unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.
Request body
FieldTypeNotes
productNamestring
colorIdinteger (int64)
customerNamesarray of object
customerName *string
displayOrderinteger (int32)
descriptionsarray of object
description *string
displayOrderinteger (int32)
categorystring
seasonstring
garmentTypestring
brandIdinteger (int64)
sizesarray of object
sizeCode *string
sizeNamestring
gsCodestring
quantityinteger (int32)
standardCostnumber
mrpnumber
moqinteger (int32)
displayOrderinteger (int32)
uomId *integer (int64)
hsnCodestring
gstPctnumber
standardCostnumber
mrpnumber
moqinteger (int32)
remarksstring
bomarray of object
rmTypeIdinteger (int64)
materialType *string
rmIdinteger (int64)
fabricIdinteger (int64)
materialName *string
consumption *number
uomIdinteger (int64)
uomNamestring
pricePerUomnumber
totalPricenumber
displayOrderinteger (int32)

…12 more fields — see the OpenAPI file.

Response (200) — data
FieldTypeNotes
idinteger (int64)
productCodestring
productNamestring
colorIdinteger (int64)
colorNamestring
colorCodestring
uomIdinteger (int64)
uomNamestring
categorystring
seasonstring
garmentTypestring
brandIdinteger (int64)
brandNamestring
locationIdinteger (int64)
locationNamestring
hsnCodestring
gstPctnumber
standardCostnumber
mrpnumber
moqinteger (int32)
remarksstring
productImageUrlstring
statusstring
skuConfigstring
skusarray of object
idinteger (int64)
sizeCodestring
sizeNamestring
skustring
eanstring
articleNostring
customerNamesarray of object
idinteger (int64)
customerNamestring
displayOrderinteger (int32)
descriptionsarray of object
idinteger (int64)
descriptionstring
displayOrderinteger (int32)
sizesarray of object

…39 more fields — see the OpenAPI file.

Errors: 400, 401, 403, 404, 405, 409, 413, 422, 429, 500 — every error says how to fix it; see error codes and troubleshooting.

Example
# KERN ERP — Update a product curl -X PUT "https://kronex.codeverse.co/cedge/public/v1/products/products/{id}" \ -H "Authorization: Bearer $KERN_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ … }'
GET/public/v1/products/products/categories

List product categories

Scope erp.products.products:read · the client's role needs view on Product List

Response (200) — data

Returns array of string in data.

Errors: 400, 401, 403, 404, 405, 429, 500 — every error says how to fix it; see error codes and troubleshooting.

Example
# KERN ERP — List product categories curl -X GET "https://kronex.codeverse.co/cedge/public/v1/products/products/categories?page=0&size=20" \ -H "Authorization: Bearer $KERN_API_KEY"
PUT/public/v1/products/products/{id}/status

Change a product's status (DRAFT / ACTIVE / HOLD / ARCHIVED)

Scope erp.products.products:write · the client's role needs edit on Product List · send an Idempotency-Key

Parameters
NameInTypeNotes
id *pathinteger (int64)The record's id.
Idempotency-Key *headerstringAny unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.
Request body
FieldTypeNotes
status *string
Response (200) — data

Returns object in data.

Errors: 400, 401, 403, 404, 405, 409, 413, 422, 429, 500 — every error says how to fix it; see error codes and troubleshooting.

Example
# KERN ERP — Change a product's status (DRAFT / ACTIVE / HOLD / ARCHIVED) curl -X PUT "https://kronex.codeverse.co/cedge/public/v1/products/products/{id}/status" \ -H "Authorization: Bearer $KERN_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ … }'