NEWFree ROI Calculators — quantify what prior auth and siloed data are costing your organization.Prior Auth ROI Siloed Data ROI
HL7 v2Segment7 min read

HL7 SHP Segment: Shipment

The SHP (Shipment) segment was introduced in HL7 v2.7 and carries identification, status, priority, and handling information about a physical shipment of specimens, supplies, or inventory items. It is the parent of one or more PAC (Shipment Package) segments and is most commonly used inside specimen shipment and inventory update messages.

Purpose

SHP identifies a single logical shipment and tells the receiver what it is, where it stands in its lifecycle, and how it must be handled. It groups together:

  • A globally unique Shipment ID (SHP-1) plus optional internal tracking IDs (SHP-2).
  • Current Shipment Status, Status Date/Time, and free-text Status Reason (SHP-3 to SHP-5).
  • Routing and handling attributes — Priority, Confidentiality, Number of Packages, Condition, Handling Code, and Risk Code.

A SHP segment is followed by one or more PAC segments describing the individual cartons, totes, or coolers that make up the shipment, and the line items inside each package (typically IIM or specimen segments).

Used in

SHP appears in supply-chain and specimen-logistics messages, including:

  • Specimen shipment updates and inventory transfers — see INV (specimen/inventory shipment update).
  • Materials management messages that report movement of stocked items between locations.
  • Acknowledgement and status update flows that report receipt or condition of a previously announced shipment.

In an INV / SSU-type message the SHP segment sits above one or more PAC groups, each of which contains the packed items.

Field-by-field reference

The table below lists each SHP field in segment order. The "Seq" column is the HL7 field position used in pipe-delimited messages (e.g. SHP-3 is Shipment Status). Data types link to their HL7 v2.8.1 reference page. "R" marks fields the HL7 standard requires; "O" marks optional fields. "Repeat = Y" means the field may carry multiple repetitions separated by ~.

SeqNameData TypeLengthReqRepeatTable #Description
SHP-1Shipment IDeiRUnique identifier for the shipment
SHP-2Internal Shipment IDeiOYInternal tracking IDs assigned by carriers or systems
SHP-3Shipment StatuscweOCoded current lifecycle status of shipment
SHP-4Shipment Status Date/TimedtmODate/time the status was set
SHP-5Shipment Status ReasontxOFree-text reason explaining current status
SHP-6Shipment PrioritycweOCoded urgency or routing priority code
SHP-7Shipment ConfidentialitycweOYConfidentiality codes applied to shipment
SHP-8Number of Packages in ShipmentnmOCount of PAC segments that follow
SHP-9Shipment ConditioncweOYObserved condition of shipment on arrival
SHP-10Shipment Handling CodecweOYSpecial handling instructions for the shipment
SHP-11Shipment Risk CodecweOYHazard or risk codes that apply

Most-used fields

In practice, four fields do most of the work:

  • SHP-1 Shipment ID — the only required field; the durable identifier the receiver uses to correlate updates.
  • SHP-3 Shipment Status plus SHP-4 Shipment Status Date/Time — the heartbeat of a shipment as it moves from "Prepared" to "In Transit" to "Delivered".
  • SHP-8 Number of Packages in Shipment — used by receivers to detect missing PAC segments before processing.
  • SHP-10 Shipment Handling Code — drives cold-chain and chain-of-custody behaviour downstream.

Version differences (2.7 to 2.8.2)

  • SHP was introduced in HL7 v2.7 as part of the Materials Management chapter.
  • v2.7.1 and v2.8 left the field list unchanged; minor clarifications were made to the optionality of status and handling fields.
  • v2.8.1 (this page) keeps the 11-field structure and standardises Shipment Confidentiality (SHP-7), Condition (SHP-9), Handling Code (SHP-10), and Risk Code (SHP-11) as repeating CWE.
  • v2.8.2 carries the segment forward without structural changes; user-defined vocabularies continue to be the integration point.

Common mistakes

  • Sending SHP without populating SHP-1 — receivers cannot key the shipment and the message is typically rejected.
  • Using the local tracking number in SHP-1 instead of SHP-2; SHP-1 should be the globally meaningful identifier (carrier or sender namespace).
  • Treating SHP-8 as authoritative without counting the actual PAC segments — the two must agree.
  • Putting structured reason codes into SHP-5 (TX). Use SHP-3 and a coded status, and reserve SHP-5 for human-readable notes.
  • Repeating values in SHP-3 (Shipment Status) — it is single-valued; only confidentiality, condition, handling, and risk codes repeat.

Examples

Minimal SHP — only the required identifier:

SHP|1^VORRO_SHIP

Fully-populated SHP with status, handling, and risk codes:

SHP|SHP-2026-000841^VORRO_SHIP|CARRIER-7781^FEDEX~LAB-INT-552^VORRO_INT|IN_TRANSIT^In Transit^HL70905|20260610081500|Departed origin hub on schedule|STAT^Stat^HL70905|R^Restricted^HL70177|3|SEALED^Sealed^HL70544|REFRIGERATE^Keep refrigerated 2-8C^HL70549|BIO^Biological substance Category B^HL70489

Annotated breakdown of the populated example:

SHP|                                                  -- Segment ID
  SHP-2026-000841^VORRO_SHIP                          -- SHP-1  Shipment ID (EI)
  | CARRIER-7781^FEDEX~LAB-INT-552^VORRO_INT          -- SHP-2  Internal Shipment IDs (EI, repeats)
  | IN_TRANSIT^In Transit^HL70905                     -- SHP-3  Shipment Status (CWE)
  | 20260610081500                                    -- SHP-4  Shipment Status Date/Time (DTM)
  | Departed origin hub on schedule                   -- SHP-5  Shipment Status Reason (TX)
  | STAT^Stat^HL70905                                 -- SHP-6  Shipment Priority (CWE)
  | R^Restricted^HL70177                              -- SHP-7  Shipment Confidentiality (CWE, repeats)
  | 3                                                 -- SHP-8  Number of Packages in Shipment (NM)
  | SEALED^Sealed^HL70544                             -- SHP-9  Shipment Condition (CWE, repeats)
  | REFRIGERATE^Keep refrigerated 2-8C^HL70549        -- SHP-10 Shipment Handling Code (CWE, repeats)
  | BIO^Biological substance Category B^HL70489       -- SHP-11 Shipment Risk Code (CWE, repeats)

In-context excerpt 1 — SHP at the head of an inventory shipment update (INV/SSU-style) message with two packages:

MSH|^~&|VORRO_LIS|LAB_A|VORRO_LIS|LAB_B|20260610081500||SSU^U03^SSU_U03|7781|P|2.8.1
SHP|SHP-2026-000841^VORRO_SHIP|CARRIER-7781^FEDEX|IN_TRANSIT^In Transit^HL70905|20260610081500||STAT^Stat^HL70905||2|SEALED^Sealed^HL70544|REFRIGERATE^Keep refrigerated 2-8C^HL70549
PAC|1|PKG-7781-01^VORRO_PKG||1|COOLER^Insulated cooler^HL70908|INTACT^Intact^HL70544|REFRIGERATE^Keep refrigerated 2-8C^HL70549
PAC|2|PKG-7781-02^VORRO_PKG||2|COOLER^Insulated cooler^HL70908|INTACT^Intact^HL70544|REFRIGERATE^Keep refrigerated 2-8C^HL70549

In-context excerpt 2 — SHP reporting a delivered shipment in good condition:

MSH|^~&|VORRO_INV|WAREHOUSE_W|VORRO_INV|HOSPITAL_H|20260610161200||SSU^U03^SSU_U03|7782|P|2.8.1
SHP|SHP-2026-000841^VORRO_SHIP|CARRIER-7781^FEDEX|DELIVERED^Delivered^HL70905|20260610155900|Signed for by receiving dock||N^Normal^HL70177|3|INTACT^Intact^HL70544
PAC|1|PKG-7781-01^VORRO_PKG||1|COOLER^Insulated cooler^HL70908|INTACT^Intact^HL70544
PAC|2|PKG-7781-02^VORRO_PKG||2|COOLER^Insulated cooler^HL70908|INTACT^Intact^HL70544
PAC|3|PKG-7781-03^VORRO_PKG||3|CARTON^Carton^HL70908|INTACT^Intact^HL70544

FHIR mapping

No segment-level ConceptMap is published in the v2-to-FHIR IG for SHP. Conceptually, an SHP carrying status and routing information for a physical shipment aligns with a FHIR SupplyDelivery resource:

  • SHP-1 Shipment ID → SupplyDelivery.identifier.
  • SHP-3 / SHP-4 status and timestamp → SupplyDelivery.status and SupplyDelivery.occurrenceDateTime.
  • SHP-8 Number of Packages → derived from the count of SupplyDelivery.suppliedItem entries or a referenced InventoryItem.
  • SHP-10 Handling Code → SupplyDelivery.extension for handling instructions (no FHIR core element).

Implementers building bridges should agree on a project-specific mapping rather than expecting a standard ConceptMap.

Engine considerations

  • Most interface engines model SHP as a top-level segment that can be followed by one or more PAC groups. When configuring routes, treat SHP-1 as the join key for downstream PAC and item segments.
  • Validate that SHP-8 matches the number of PAC segments before forwarding; if they disagree, raise an exception rather than truncating.
  • For cold-chain workflows, persist SHP-10 (Handling Code) and any temperature observations from accompanying OBX segments together; engines that drop OBX context break audit requirements.
  • Because SHP-7, SHP-9, SHP-10, and SHP-11 are repeating CWE, ensure the engine's mapping language supports per-repetition iteration; flattening to a single code silently loses risk and condition information.

How Vorro parses and produces SHP

Vorro's HL7 v2 parser builds a typed model of the SHP segment directly from the HAPI v2.8.1 structure definitions, so all 11 fields are addressable by name (SHP-1.1, SHP-3.2, etc.) and repeating fields are surfaced as ordered lists. Common workflows include:

  • Routing inbound SSU/INV messages on SHP-1 Shipment ID and SHP-3 Shipment Status, so a single channel can fan out updates to LIS, materials management, and analytics.
  • Promoting SHP-10 Shipment Handling Code into channel metadata to drive cold-chain alerts.
  • Producing outbound SHP segments from internal shipment records, with automatic CWE table validation against the configured v2.8.1 vocabulary set.
  • Reconciling SHP-8 against the count of generated PAC segments at serialisation time, preventing inconsistent messages from leaving the engine.

Sources

← Back to HL7 v2 Guide

Ready to Integrate This Into Your Workflow?

Talk to a Vorro expert about implementing HL7 v2 in your specific environment.

Browse HL7 v2 Guides
HL7 SHP Segment: Shipment | Vorro Academy | Vorro