v1.012
about 3 hours ago
v1.012
Introduces an explicit Pallet β Carton β Item packing hierarchy on POST and GET /v1/integrations/receiving, aligned with EDI 856 (Tare β Pack β Item). The legacy items[].sscc field is deprecated and scheduled for removal on 2026-06-30.
π New Endpoints
None
π Schema & Property Updates
-
Create Or Update Receiving Input β added two top-level optional arrays describing the packing hierarchy:
cartons(array|null) β cartons in EDI 856 Pack level. Accepts absent,null, or[]; all three normalize to an empty list.pallets(array|null) β pallets in EDI 856 Tare level. Same null/absent/[]semantics.
-
Receiving Item Input β added two optional placement fields linking an item to its carton or pallet within the same payload. Exactly one is non-null when the new packing-hierarchy shape is used.
carton_key(string|null, max 255) β referencescartons[].carton_key.loose_units_pallet_key(string|null, max 255) β referencespallets[].pallet_keyfor loose units that have no carton.
-
Receiving Output β added two top-level arrays surfacing the persisted packing hierarchy:
cartons(array of Carton Output) β required.pallets(array of Pallet Output) β required.
-
Receiving Line Output β added two required placement fields mirroring the input:
carton_key(string|null)loose_units_pallet_key(string|null)
π¦ New Support Schemas
- Carton Input β
carton_key(string, required, max 255),pallet_key(string|null, max 255, references parent pallet),identifiers(array of Receiving Packaging Identifier Input, default[], at most one pertype). - Pallet Input β
pallet_key(string, required, max 255),identifiers(array of Receiving Packaging Identifier Input, default[], at most one pertype). - Receiving Packaging Identifier Input β
type(Receiving Packaging Identifier Type, required),value(string, required, max 255). Fortype=SSCC,valuemust be a valid 18-digit GS1 SSCC. - Carton Output β
carton_key(string),pallet_key(string|null),identifiers(array of Receiving Packaging Identifier Output). - Pallet Output β
pallet_key(string),identifiers(array of Receiving Packaging Identifier Output). - Receiving Packaging Identifier Output β
type(Receiving Packaging Identifier Type),value(string). - Receiving Packaging Identifier Type (
enum) β currently a single value:SSCC. The schema is forward-compatible: future identifier types (e.g.GTIN, internal labels, carrier tracking numbers) can be added without further breaking changes.
π Documentation & Constraints Changes
- The
cartons[]/pallets[]arrays accept three equivalent wire forms β absent,null,[]β all normalize to an empty list. Validation rules apply only when the payload uses the new shape (any item carriescarton_key/loose_units_pallet_key, orcartons[]/pallets[]is non-empty). - When the new shape is in use, the API enforces several payload-level consistency rules (returned as
400with field-specific paths):- Each item must reference exactly one of
carton_keyorloose_units_pallet_key(never both, never neither). - Every
items[].carton_keymust match an entry incartons[]; everyitems[].loose_units_pallet_keymust match an entry inpallets[]; everycartons[].pallet_key(when set) must match an entry inpallets[]. - Every entry in
cartons[]must be referenced by at least one item; every entry inpallets[]must be referenced by at least one item or carton (no orphan packing rows). - SSCCs are all-or-none across
cartons[] βͺ pallets[]and must be unique within the payload.
- Each item must reference exactly one of
- A carton/pallet may carry multiple typed identifiers, but at most one identifier per
type(e.g. only oneSSCC).
β οΈ Deprecated
- Receiving Item Input β
items[].ssccis now marked deprecated and will be removed on 2026-06-30. The field is silently ignored whencarton_keyorloose_units_pallet_keyis set on the same item. Migration: send the SSCC on the item's carton or pallet viacartons[].identifiers/pallets[].identifierswithtype=SSCCinstead. - Receiving Line Output β
receiving_lines[].ssccdescription updated to reflect the same deprecation. For items placed on a carton, the field mirrors the carton's SSCC; for loose items on a pallet, it mirrors the pallet's SSCC. Consumers should migrate to readingcartons[].identifiers/pallets[].identifiersplus the newcarton_key/loose_units_pallet_keyplacement onreceiving_lines[].