✦Developers

KERN ERP API — Packing

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

Packing

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

Packing Slip

Access: erp.packing.packing_slips:read(or :write)

GET/public/v1/packing/packing-slips

List packing slips (paged)

Scope erp.packing.packing_slips:read · the client's role needs view on Packing Slip

Parameters
NameInTypeNotes
pagequeryinteger (int32)Page number, starting at 0.
sizequeryinteger (int32)Items per page.
statusquerystringOnly records with this status (see the record's status values).
customerIdqueryinteger (int64)Only this customer (id).
sourceTypequerystringOnly slips made from this source.
searchquerystringSearch text (part of a name, number or code; not case-sensitive).
Response (200) — data
FieldTypeNotes
contentarray of object
idinteger (int64)
qcNostring
qcDatestring (date)
qcPersonstring
processstring
dcNostring
vendorNamestring
locationNamestring
statusstring
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 packing slips (paged) curl -X GET "https://kronex.codeverse.co/cedge/public/v1/packing/packing-slips?page=0&size=20" \ -H "Authorization: Bearer $KERN_API_KEY"
POST/public/v1/packing/packing-slips

Create a draft packing slip

Scope erp.packing.packing_slips:write · the client's role needs create on Packing Slip · 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
qcNostring
qcDate *string (date)
qcPerson *string
process *string
locationIdinteger (int64)
inspectionLinesarray of object
grnLineId *integer (int64)
fabricProgramNostring
itemTypestring
itemNostring
rollNostring
gsmnumber
widthnumber
weightnumber
rollQtynumber
acceptedQtynumber
qcResultstring
stockInwardLinesarray of object
idinteger (int64)
grnLineId *integer (int64)
fabricProgramNostring
itemTypestring
fabricId *integer (int64)
inwardFabricColorstring
uomIdinteger (int64)
lotNostring
widthnumber
gsmnumber
weightnumber
locationIdinteger (int64)
rollNostring
qty *number
Response (200) — data
FieldTypeNotes
idinteger (int64)
qcNostring
qcDatestring (date)
qcPersonstring
processstring
locationIdinteger (int64)
locationNamestring
statusstring
inspectionLinesarray of object
idinteger (int64)
grnLineIdinteger (int64)
dcNostring
fabricProgramNostring
itemTypestring
itemNostring
rollNostring
gsmnumber
widthnumber
weightnumber
rollQtynumber
acceptedQtynumber
qcResultstring
stockInwardLinesarray of object
idinteger (int64)
grnLineIdinteger (int64)
dcNostring
fabricProgramNostring
itemTypestring
fabricIdinteger (int64)
itemNamestring
inwardFabricColorstring
uomIdinteger (int64)
uomNamestring
lotNostring
widthnumber
gsmnumber
weightnumber
locationIdinteger (int64)
locationNamestring
rollNostring

…5 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 — Create a draft packing slip curl -X POST "https://kronex.codeverse.co/cedge/public/v1/packing/packing-slips" \ -H "Authorization: Bearer $KERN_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ … }'
GET/public/v1/packing/packing-slips/{id}

Get one packing slip

Scope erp.packing.packing_slips:read · the client's role needs view on Packing Slip

Parameters
NameInTypeNotes
id *pathinteger (int64)The record's id.
Response (200) — data
FieldTypeNotes
idinteger (int64)
qcNostring
qcDatestring (date)
qcPersonstring
processstring
locationIdinteger (int64)
locationNamestring
statusstring
inspectionLinesarray of object
idinteger (int64)
grnLineIdinteger (int64)
dcNostring
fabricProgramNostring
itemTypestring
itemNostring
rollNostring
gsmnumber
widthnumber
weightnumber
rollQtynumber
acceptedQtynumber
qcResultstring
stockInwardLinesarray of object
idinteger (int64)
grnLineIdinteger (int64)
dcNostring
fabricProgramNostring
itemTypestring
fabricIdinteger (int64)
itemNamestring
inwardFabricColorstring
uomIdinteger (int64)
uomNamestring
lotNostring
widthnumber
gsmnumber
weightnumber
locationIdinteger (int64)
locationNamestring
rollNostring

…5 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 packing slip curl -X GET "https://kronex.codeverse.co/cedge/public/v1/packing/packing-slips/{id}" \ -H "Authorization: Bearer $KERN_API_KEY"
PATCH/public/v1/packing/packing-slips/{id}/submit

Submit a packing slip

Scope erp.packing.packing_slips:write · the client's role needs edit on Packing Slip · 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.
Response (200) — data
FieldTypeNotes
idinteger (int64)
qcNostring
qcDatestring (date)
qcPersonstring
processstring
locationIdinteger (int64)
locationNamestring
statusstring
inspectionLinesarray of object
idinteger (int64)
grnLineIdinteger (int64)
dcNostring
fabricProgramNostring
itemTypestring
itemNostring
rollNostring
gsmnumber
widthnumber
weightnumber
rollQtynumber
acceptedQtynumber
qcResultstring
stockInwardLinesarray of object
idinteger (int64)
grnLineIdinteger (int64)
dcNostring
fabricProgramNostring
itemTypestring
fabricIdinteger (int64)
itemNamestring
inwardFabricColorstring
uomIdinteger (int64)
uomNamestring
lotNostring
widthnumber
gsmnumber
weightnumber
locationIdinteger (int64)
locationNamestring
rollNostring

…5 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 — Submit a packing slip curl -X PATCH "https://kronex.codeverse.co/cedge/public/v1/packing/packing-slips/{id}/submit" \ -H "Authorization: Bearer $KERN_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json"
PATCH/public/v1/packing/packing-slips/{id}/ship

Ship a packing slip (deducts finished goods)

Scope erp.packing.packing_slips:write · the client's role needs edit on Packing Slip · 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
shipDatestring (date)
bolAwbNostring
vesselFlightstring
portOfLoadingstring
portOfDischargestring
shippingRemarksstring
Response (200) — data
FieldTypeNotes
idinteger (int64)
qcNostring
qcDatestring (date)
qcPersonstring
processstring
locationIdinteger (int64)
locationNamestring
statusstring
inspectionLinesarray of object
idinteger (int64)
grnLineIdinteger (int64)
dcNostring
fabricProgramNostring
itemTypestring
itemNostring
rollNostring
gsmnumber
widthnumber
weightnumber
rollQtynumber
acceptedQtynumber
qcResultstring
stockInwardLinesarray of object
idinteger (int64)
grnLineIdinteger (int64)
dcNostring
fabricProgramNostring
itemTypestring
fabricIdinteger (int64)
itemNamestring
inwardFabricColorstring
uomIdinteger (int64)
uomNamestring
lotNostring
widthnumber
gsmnumber
weightnumber
locationIdinteger (int64)
locationNamestring
rollNostring

…5 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 — Ship a packing slip (deducts finished goods) curl -X PATCH "https://kronex.codeverse.co/cedge/public/v1/packing/packing-slips/{id}/ship" \ -H "Authorization: Bearer $KERN_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ … }'

Boxes

Access: erp.packing.boxes:read(or :write)

GET/public/v1/packing/boxes

List boxes

Scope erp.packing.boxes:read · the client's role needs view on Boxes

Parameters
NameInTypeNotes
searchquerystringSearch text (part of a name, number or code; not case-sensitive).
statusquerystringOnly records with this status (see the record's status values).
pagequeryinteger (int32)Page number, starting at 0.
sizequeryinteger (int32)Items per page.
Response (200) — data
FieldTypeNotes
contentarray of object
idinteger (int64)
containerNostring
statusstring
sizeCodestring
warehouseIdinteger (int64)
totalUnitsinteger (int32)
lineCountinteger (int32)
masterBoxIdinteger (int64)
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 boxes curl -X GET "https://kronex.codeverse.co/cedge/public/v1/packing/boxes?page=0&size=20" \ -H "Authorization: Bearer $KERN_API_KEY"
POST/public/v1/packing/boxes

Create a box (size + warehouse)

Scope erp.packing.boxes:write · the client's role needs create on Boxes · 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
warehouseId *integer (int64)
sizeCode *string
sizeNamestring
packingSlipIdinteger (int64)
buyerPoIdinteger (int64)
expectedWeightnumber
linesarray of object
itemTypestring
itemRefIdinteger (int64)
toItemRefIdinteger (int64)
fabricIdinteger (int64)
sizeIdinteger (int64)
lotMasterIdinteger (int64)
rollNumberstring
itemLabelstring
uomstring
uomIdinteger (int64)
dispatchQtynumber
rollAllocationsarray of object
Response (200) — data
FieldTypeNotes
idinteger (int64)
containerNostring
barcodeSymbologystring
statusstring
sizeCodestring
sizeNamestring
warehouseIdinteger (int64)
packingSlipIdinteger (int64)
buyerPoIdinteger (int64)
masterBoxIdinteger (int64)
totalUnitsinteger (int32)
expectedWeightnumber
actualWeightnumber
weightVariancenumber
snapshotVersioninteger (int32)
sealedAtstring
linesarray of object
idinteger (int64)
skuIdinteger (int64)
skustring
productIdinteger (int64)
productCodestring
productNamestring
colorNamestring
sizeCodestring
qtyinteger (int32)
eventsarray of object
eventTypestring
barcodeScannedstring
skuIdinteger (int64)
qtynumber
userNamestring
createdAtstring

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 box (size + warehouse) curl -X POST "https://kronex.codeverse.co/cedge/public/v1/packing/boxes" \ -H "Authorization: Bearer $KERN_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ … }'
GET/public/v1/packing/boxes/{id}

Get one box (contents, scan / seal trail)

Scope erp.packing.boxes:read · the client's role needs view on Boxes

Parameters
NameInTypeNotes
id *pathinteger (int64)The record's id.
Response (200) — data
FieldTypeNotes
idinteger (int64)
containerNostring
barcodeSymbologystring
statusstring
sizeCodestring
sizeNamestring
warehouseIdinteger (int64)
packingSlipIdinteger (int64)
buyerPoIdinteger (int64)
masterBoxIdinteger (int64)
totalUnitsinteger (int32)
expectedWeightnumber
actualWeightnumber
weightVariancenumber
snapshotVersioninteger (int32)
sealedAtstring
linesarray of object
idinteger (int64)
skuIdinteger (int64)
skustring
productIdinteger (int64)
productCodestring
productNamestring
colorNamestring
sizeCodestring
qtyinteger (int32)
eventsarray of object
eventTypestring
barcodeScannedstring
skuIdinteger (int64)
qtynumber
userNamestring
createdAtstring

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 box (contents, scan / seal trail) curl -X GET "https://kronex.codeverse.co/cedge/public/v1/packing/boxes/{id}" \ -H "Authorization: Bearer $KERN_API_KEY"
POST/public/v1/packing/boxes/{id}/lines

Add a unit to a box by SKU id or scanned barcode

Scope erp.packing.boxes:write · the client's role needs edit on Boxes · 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
skuIdinteger (int64)
barcodestring
qty *integer (int32)
Response (200) — data
FieldTypeNotes
idinteger (int64)
containerNostring
barcodeSymbologystring
statusstring
sizeCodestring
sizeNamestring
warehouseIdinteger (int64)
packingSlipIdinteger (int64)
buyerPoIdinteger (int64)
masterBoxIdinteger (int64)
totalUnitsinteger (int32)
expectedWeightnumber
actualWeightnumber
weightVariancenumber
snapshotVersioninteger (int32)
sealedAtstring
linesarray of object
idinteger (int64)
skuIdinteger (int64)
skustring
productIdinteger (int64)
productCodestring
productNamestring
colorNamestring
sizeCodestring
qtyinteger (int32)
eventsarray of object
eventTypestring
barcodeScannedstring
skuIdinteger (int64)
qtynumber
userNamestring
createdAtstring

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 — Add a unit to a box by SKU id or scanned barcode curl -X POST "https://kronex.codeverse.co/cedge/public/v1/packing/boxes/{id}/lines" \ -H "Authorization: Bearer $KERN_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ … }'
PATCH/public/v1/packing/boxes/{id}/seal

Seal a box (reserves the finished goods)

Scope erp.packing.boxes:write · the client's role needs edit on Boxes · 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
expectedWeightnumber
actualWeightnumber
Response (200) — data
FieldTypeNotes
idinteger (int64)
containerNostring
barcodeSymbologystring
statusstring
sizeCodestring
sizeNamestring
warehouseIdinteger (int64)
packingSlipIdinteger (int64)
buyerPoIdinteger (int64)
masterBoxIdinteger (int64)
totalUnitsinteger (int32)
expectedWeightnumber
actualWeightnumber
weightVariancenumber
snapshotVersioninteger (int32)
sealedAtstring
linesarray of object
idinteger (int64)
skuIdinteger (int64)
skustring
productIdinteger (int64)
productCodestring
productNamestring
colorNamestring
sizeCodestring
qtyinteger (int32)
eventsarray of object
eventTypestring
barcodeScannedstring
skuIdinteger (int64)
qtynumber
userNamestring
createdAtstring

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 — Seal a box (reserves the finished goods) curl -X PATCH "https://kronex.codeverse.co/cedge/public/v1/packing/boxes/{id}/seal" \ -H "Authorization: Bearer $KERN_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ … }'

Master Boxes

Access: erp.packing.master_boxes:read(or :write)

GET/public/v1/packing/master-boxes

List master boxes (cartons)

Scope erp.packing.master_boxes:read · the client's role needs view on Master Boxes

Parameters
NameInTypeNotes
searchquerystringSearch text (part of a name, number or code; not case-sensitive).
statusquerystringOnly records with this status (see the record's status values).
pagequeryinteger (int32)Page number, starting at 0.
sizequeryinteger (int32)Items per page.
Response (200) — data
FieldTypeNotes
contentarray of object
idinteger (int64)
containerNostring
statusstring
warehouseIdinteger (int64)
totalBoxesinteger (int32)
totalUnitsinteger (int32)
consigneeNamestring
carrierstring
hasVideoboolean
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 master boxes (cartons) curl -X GET "https://kronex.codeverse.co/cedge/public/v1/packing/master-boxes?page=0&size=20" \ -H "Authorization: Bearer $KERN_API_KEY"
GET/public/v1/packing/master-boxes/{id}

Get one master box (boxes, loose SKUs, shipping)

Scope erp.packing.master_boxes:read · the client's role needs view on Master Boxes

Parameters
NameInTypeNotes
id *pathinteger (int64)The record's id.
Response (200) — data
FieldTypeNotes
idinteger (int64)
containerNostring
barcodeSymbologystring
statusstring
warehouseIdinteger (int64)
packingSlipIdinteger (int64)
buyerPoIdinteger (int64)
customerIdinteger (int64)
customerNamestring
consigneeNamestring
consigneeAddressstring
carrierstring
trackingNostring
dispatchDatestring
shipRemarksstring
totalBoxesinteger (int32)
totalUnitsinteger (int32)
expectedWeightnumber
actualWeightnumber
weightVariancenumber
snapshotVersioninteger (int32)
sealedAtstring
boxesarray of object
idinteger (int64)
containerNostring
statusstring
sizeCodestring
totalUnitsinteger (int32)
linesarray of object
looseLinesarray of object
idinteger (int64)
measurementPointIdinteger (int64)
pointNamestring
uomstring
specValuenumber
tolMinusnumber
tolPlusnumber
actualValuenumber
deviationnumber
resultstring

…19 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 master box (boxes, loose SKUs, shipping) curl -X GET "https://kronex.codeverse.co/cedge/public/v1/packing/master-boxes/{id}" \ -H "Authorization: Bearer $KERN_API_KEY"