FluentEDI

HL segment errors: the 856's most-broken part

The HL segment flattens your shipment's tree into a list, and every HL must name its own ID (HL01), its parent's ID (HL02), and its level type (HL03). One wrong parent number and the whole tree is nonsense to the receiver.

A correct tree, annotated

HL*1**S~        ID 1, no parent, Shipment
HL*2*1*O~       ID 2, parent 1,  Order
HL*3*2*P~       ID 3, parent 2,  Pack (carton 1)
HL*4*3*I~       ID 4, parent 3,  Item (inside carton 1)
HL*5*2*P~       ID 5, parent 2,  Pack (carton 2) ← parent is the ORDER, not carton 1
HL*6*5*I~       ID 6, parent 5,  Item (inside carton 2)

The classic mistakes

MistakeSymptom
Second carton parented to the first carton (HL*5*3*P)Receiver sees cartons nested inside cartons
Non-sequential or duplicate HL01 IDsStructural rejection; some systems silently mis-assign
Wrong HL03 code (e.g., T vs P for tare/pack)Level interpreted as the wrong thing — check the retailer guide's allowed set
Items parented to the order when the guide requires pack-level itemsMissing carton level
CTT/SE counts not updated after editingEnvelope-count rejection — the count segments must match reality

Why hand-built ASNs break here

The parent-ID bookkeeping is exactly the kind of arithmetic humans fumble at 4:45pm — it's renumbering a tree by hand every time a carton is added. It's also exactly what code never gets wrong: FluentEDI's generator derives the tree from your spreadsheet's carton column and emits the numbering mechanically.

Validate any 856's structure free — paste it into the viewer (raw-segment view shows the HL chain). Full hierarchy explainer:the 856 guide.