# EDI 856 Ship Notice (ASN): Complete Guide

> Master EDI 856 Advance Ship Notice transactions. Learn ASN structure, hierarchical loops, tracking integration, and compliance requirements for Walmart, Target, and Amazon.

**The EDI 856 Advance Ship Notice (ASN) is the X12 transaction set that notifies a buyer a shipment is in transit, with full packing detail, tracking numbers, and expected delivery dates.** It is required by virtually every large retailer before goods arrive at the dock. Sending a late or missing ASN is one of the most common chargeback triggers in retail supply chains.

## What is an EDI 856 ASN?

**An EDI 856 ASN is a structured pre-shipment notification defined by the [ASC X12 standards body](https://x12.org/) that gives buyers pallet-to-item visibility before goods reach their warehouse.** It carries SSCC-18 barcode labels, carrier details, and a hierarchical packing structure that buyer WMS systems use to pre-populate receiving queues without manual re-keying.

Authoritative sources for 856 implementation:

- The [X12.org Transaction Sets reference](https://x12.org/products/transaction-sets) defines the base 856 structure used across all retailers
- [GS1 US](https://www.gs1us.org/standards) governs SSCC-18 label numbering and GS1-128 barcode standards used in the MAN segment
- Retailers publish their own requirements on top of the base spec: Walmart SupplierOne, Target Partners Online, and Amazon Vendor Central each have extended implementation guides

A standard 856 ASN contains:

- Shipment details (carrier, tracking number, weight)
- Reference to original purchase order
- Hierarchical packing structure (pallets → cartons → items)
- Serial numbers and lot codes (if applicable)
- Expected delivery date
- Bill of lading number

## Why ASNs Matter

Sending an accurate 856 ASN is critical because:

- ✅ **Enables cross-docking** - Buyers can pre-plan receiving
- ✅ **Reduces receiving time** - Pre-populated in WMS
- ✅ **Prevents chargebacks** - Late/missing ASNs = penalties
- ✅ **Improves accuracy** - Scan vs. manual data entry
- ✅ **Tracks in-transit inventory** - Real-time visibility

## Interactive Example: Basic 856 ASN

Here's a standard ASN with packing hierarchy:

<EDISample id="856-asn-basic" />

## Understanding the Hierarchical Structure

The 856 uses **Hierarchical Loops (HL segments)** to represent packing structure. Think of it like a tree:

```
Shipment (S)
 └── Order (O) [PO-987654]
      └── Pack (P) [Carton #00112345678901234567]
           ├── Item (I) [PROD-12345: 100 units]
           └── Item (I) [PROD-67890: 50 units]
```

### HL - Hierarchical Level

```
HL*1**S           // Level 1: Shipment level
HL*2*1*O          // Level 2: Order (parent is level 1)
HL*3*2*P          // Level 3: Pack (parent is level 2)
HL*4*3*I          // Level 4: Item (parent is level 3)
HL*5*3*I          // Level 5: Item (same parent as level 4)
```

**HL Segment Format:**

- **HL01**: Hierarchical ID number (sequential)
- **HL02**: Parent ID (which HL this belongs to)
- **HL03**: Hierarchical Level Code (S/O/P/I/T)

### Level Codes Explained

| Code  | Meaning  | Purpose                      | Required Data                              |
| ----- | -------- | ---------------------------- | ------------------------------------------ |
| **S** | Shipment | Top level - entire shipment  | TD1 (weight), TD5 (carrier), REF\*BM (BOL) |
| **O** | Order    | Purchase order being shipped | PRF (PO number), REF\*PO                   |
| **P** | Pack     | Physical carton/pallet       | MAN (SSCC-18 label), weight                |
| **I** | Item     | Individual SKU               | LIN (part number), SN1 (quantity)          |
| **T** | Tare     | Empty container weight       | Weight of packaging only                   |

## Key Segments Explained

### BSN - Beginning Segment for Ship Notice

```
BSN*00*ASN-123456*20231122*0800
```

- **BSN01**: Transaction Set Purpose Code (00 = Original)
- **BSN02**: Shipment Identification (your ASN/BOL number)
- **BSN03**: Date (ship date)
- **BSN04**: Time (ship time in HHMM format)

### TD1 - Carrier Details (Quantity and Weight)

```
TD1*CTN*5*****G*15000*LB
```

- **TD101**: Packaging Code (CTN = Carton, PLT = Pallet)
- **TD102**: Number of packages (5 cartons)
- **TD107**: Weight qualifier (G = Gross weight)
- **TD108**: Weight (15000 = 15,000 lbs)
- **TD109**: Unit of measure (LB = Pounds)

### TD5 - Carrier Details (Routing)

```
TD5**2*FEDEX
```

- **TD502**: Transportation method code (2 = Motor/Truck)
- **TD503**: Carrier code (SCAC code or name)

**Common SCAC Codes:**

- FEDX = FedEx
- UPGF = UPS Freight
- ODFL = Old Dominion
- FXFE = FedEx Freight

### REF - Reference Identification

```
REF*BM*FEDX123456789    // Tracking number
REF*PO*PO-987654        // Purchase order
REF*DP*001              // Department number
```

**Common REF Qualifiers:**

- **BM**: Bill of Lading Number / Tracking Number
- **PO**: Purchase Order Number
- **DP**: Department Number
- **MA**: Ship Notice/Manifest Number
- **IV**: Invoice Number

### PRF - Purchase Order Reference

```
PRF*PO-987654****20231120
```

- **PRF01**: Purchase order number
- **PRF05**: PO date

### MAN - Marks and Numbers

The MAN segment contains the GS1-128 (SSCC-18) barcode label:

```
MAN*GM*00112345678901234567
```

- **MAN01**: Marks and numbers qualifier (GM = SSCC-18)
- **MAN02**: 18-digit SSCC barcode number

**SSCC-18 Format:**

```
00 1 1234567 890123456 7
│  │ │        │         └─ Check digit
│  │ │        └─────────── Serial reference (9 digits)
│  │ └──────────────────── Company prefix (7 digits)
│  └────────────────────── Extension digit
└───────────────────────── Application identifier
```

### SN1 - Item Detail (Shipment)

```
SN1**100*EA
```

- **SN102**: Quantity shipped
- **SN103**: Unit of measure

## Packing Hierarchy Examples

### Example 1: Simple Single-Carton Shipment

```
HL*1**S              // Shipment
 HL*2*1*O            // Order: PO-123
  HL*3*2*P           // Pack: 1 carton
   HL*4*3*I          // Item 1: 50 units
   HL*5*3*I          // Item 2: 30 units
```

### Example 2: Multiple Cartons

```
HL*1**S              // Shipment
 HL*2*1*O            // Order: PO-123
  HL*3*2*P           // Pack: Carton 1
   HL*4*3*I          // Item 1: 50 units
  HL*5*2*P           // Pack: Carton 2
   HL*6*5*I          // Item 1: 50 units
  HL*7*2*P           // Pack: Carton 3
   HL*8*7*I          // Item 2: 100 units
```

### Example 3: Palletized Shipment

```
HL*1**S              // Shipment
 HL*2*1*O            // Order: PO-123
  HL*3*2*P           // Pack: Pallet 1
   HL*4*3*P          // Pack: Carton 1 (on pallet 1)
    HL*5*4*I         // Item 1: 100 units
   HL*6*3*P          // Pack: Carton 2 (on pallet 1)
    HL*7*6*I         // Item 1: 100 units
```

## Timing Requirements

### When to Send the 856

Trading partner requirements vary:

| Partner        | Timing                | Penalty for Late ASN    |
| -------------- | --------------------- | ----------------------- |
| **Walmart**    | Ship day by 5 PM      | $500 chargeback per PO  |
| **Target**     | Ship day by 6 PM      | $250-$500 chargeback    |
| **Amazon**     | Before carrier pickup | Shipment may be refused |
| **Home Depot** | Within 24 hours       | $100 chargeback         |

**Best Practice**: Send ASN immediately after printing shipping labels (before carrier pickup).

## Common Use Cases

### 1. **Retail Store Replenishment**

Standard case packs to retail stores:

- Multiple cartons per PO
- Each carton has SSCC-18 label
- Items sorted by department
- Store-ready packaging

### 2. **Distribution Center (DC) Delivery**

Palletized freight to buyer's DC:

- Full pallets with SSCC-18 labels
- Mixed SKUs on same pallet
- Pallet-level weight/dimensions
- Appointment scheduling info

### 3. **Drop Ship to Consumer**

Direct-to-consumer shipments:

- Single small package
- Parcel carrier (UPS/FedEx)
- Residential address
- Gift messaging

### 4. **Cross-Dock Operations**

Pre-sorted by final destination:

- Floor-loaded containers
- Pre-ticketed merchandise
- Destination store on carton label
- No receiving/put-away required

## Implementation Best Practices

### 1. **Generate SSCC-18 Labels**

Every carton and pallet should have a unique GS1-128 barcode:

```
// Generate SSCC-18
Company Prefix: 1234567 (assigned by GS1)
Serial Number:  890123456 (your sequence)
Check Digit:    7 (calculated)

Result: 00112345678901234567
```

**Calculate Check Digit:**

```
1. Sum odd positions: 1+2+4+6+8+0+2+4+6 = 33 × 3 = 99
2. Sum even positions: 0+1+3+5+7+9+1+3+5 = 34
3. Total: 99 + 34 = 133
4. Check digit: (10 - (133 % 10)) % 10 = 7
```

### 2. **Carrier Integration**

Integrate with carrier APIs for real-time tracking:

- ✅ Capture tracking number at label print
- ✅ Populate REF\*BM segment automatically
- ✅ Include pro number for LTL shipments
- ✅ Add appointment number if scheduled

### 3. **Inventory Sync**

Ensure your ASN matches what was actually shipped:

- ✅ Generate ASN from pick/pack confirmation
- ✅ Include lot numbers for traceability
- ✅ Account for substitutions/shorts
- ✅ Match carton contents to ASN hierarchy

### 4. **Validation Before Sending**

Validate your 856 before transmission:

- ✅ PO number matches original 850
- ✅ SKUs match buyer's catalog
- ✅ Quantities within PO limits
- ✅ SSCC-18 labels are unique
- ✅ Total weight is reasonable

## Common Errors to Avoid

### 1. **Incorrect Hierarchical Structure**

```
❌ WRONG:
HL*1**S
HL*2**O     // Missing parent reference
HL*3**I     // Item not under a Pack

✅ CORRECT:
HL*1**S
HL*2*1*O    // Parent is 1 (Shipment)
HL*3*2*P    // Parent is 2 (Order)
HL*4*3*I    // Parent is 3 (Pack)
```

### 2. **Missing Tracking Number**

```
❌ WRONG:
TD5**2*FEDEX  // No tracking number provided

✅ CORRECT:
TD5**2*FEDEX
REF*BM*1Z999AA10123456784  // Tracking number
```

### 3. **Invalid SSCC-18 Format**

```
❌ WRONG:
MAN*GM*123456789  // Too short

✅ CORRECT:
MAN*GM*00112345678901234567  // Exactly 18 digits
```

### 4. **Weight/Quantity Mismatch**

```
❌ WRONG:
TD1*CTN*5      // Says 5 cartons
... only 3 HL*P segments

✅ CORRECT:
TD1*CTN*3      // Matches actual carton count
```

## Trading Partner Specific Requirements

### Walmart

- ✅ SSCC-18 labels mandatory
- ✅ Must send same day as ship
- ✅ SCAC code required
- ✅ Department number in REF\*DP
- ✅ Store number in N1\*ST qualifier

### Target

- ✅ PO line number required (PRF04)
- ✅ DC code in ship-to qualifier
- ✅ Palletized freight must have pallet tags
- ✅ ASN within 24 hours of ship

### Amazon Vendor Central

- ✅ BOL number mandatory
- ✅ FC code must be exact
- ✅ Units must match case pack configuration
- ✅ ASIN in product identifier
- ✅ Window delivery times enforced

### Home Depot

- ✅ SDQ (ship date qualifier) required
- ✅ Pro number for LTL
- ✅ Store number on every carton
- ✅ RDC routing compliance

## Testing Your 856 Implementation

Use our [EDI Inspector](/edi-inspector) to:

- Validate hierarchical structure
- Check SSCC-18 format
- Verify weight calculations
- Test against partner specs

## How the 856 Relates to Other EDI Documents

The 856 is one step in the order-to-cash sequence, and it is easy to confuse with the order acknowledgment (855), the warehouse shipping advice (945), and the invoice (810). This table shows where each one fits.

| Document | What it communicates | Direction | Timing |
|---|---|---|---|
| **850 Purchase Order** | What the buyer wants to buy | Buyer to Supplier | Order placed |
| **855 PO Acknowledgment** | Whether the supplier accepts or changes the order | Supplier to Buyer | After the 850 arrives |
| **856 Ship Notice (ASN)** | What physically shipped and how it is packed | Supplier to Buyer | Before or as goods ship |
| **945 Warehouse Shipping Advice** | A 3PL's confirmation of what it shipped | Warehouse to Supplier | After the warehouse ships |
| **810 Invoice** | The amount owed for the shipment | Supplier to Buyer | After shipment |

The 856 is the only one of these that carries the full physical packing hierarchy (pallets, cartons, SSCC-18 labels). The 945 looks similar but flows the other way: a third-party warehouse uses it to tell you what it shipped, and you then generate the 856 from that data to notify the buyer.

## Related Transaction Sets

- **[850 Purchase Order](/guides/edi/850-purchase-order)** - Original order
- **[810 Invoice](/guides/edi/810-invoice)** - Request for payment (follows ASN)
- **[997 Functional Acknowledgment](/guides/edi/997-functional-acknowledgment)** - Receipt confirmation
- **214 Transportation Carrier Shipment Status** - Tracking updates

## Integration Tips

### WMS Integration

Connect your warehouse management system:

```
1. Pick/Pack completion
2. WMS creates ASN data
3. Generate SSCC-18 labels
4. Print carton labels
5. Send 856 EDI
6. Update internal shipment status
```

### Carrier Integration

Real-time tracking data:

```
1. Request shipping labels via API
2. Receive tracking numbers
3. Populate REF*BM segment
4. Send 856 with tracking
5. Monitor delivery status
6. Update buyer on exceptions
```

## Frequently Asked Questions

### What is the HL hierarchy in an EDI 856?

The HL (Hierarchical Level) structure is how the 856 represents physical packing. The top level is Shipment (S), which contains one or more Order (O) levels, which contain Pack (P) levels for each carton or pallet, which contain Item (I) levels for each SKU inside that container. Each HL segment carries a parent ID so buyer WMS systems can reconstruct the exact box and pallet structure without guessing.

### What is an SSCC-18 label and why does it matter?

The SSCC-18 (Serial Shipping Container Code) is an 18-digit barcode assigned by GS1 to uniquely identify each carton or pallet you ship. It goes in the MAN*GM segment of the Pack (P) level. Retailers like Walmart scan these at the dock door to receive cartons without manually counting or re-entering data. Missing or invalid SSCC-18s are a leading cause of receiving chargebacks because the buyer's WMS cannot match the physical carton to the expected ASN data.

### How soon must I send an 856 after shipment?

It depends on the retailer. Walmart requires the ASN by 5 PM on the ship date. Target requires it by 6 PM the same day. Amazon Vendor Central expects it before carrier pickup. In all cases, sending the 856 after goods arrive at the dock defeats its purpose. The best practice is to generate and transmit the ASN at the moment you print shipping labels, before the carrier takes possession.

### What happens if my 856 quantities do not match what actually shipped?

The buyer will flag it when they receive and scan the shipment. The mismatch shows up on an [861 Receiving Advice](/guides/edi/861-receiving-advice) as an ASN accuracy failure. This often triggers two separate chargebacks: one for the fill rate shortage and one for the ASN inaccuracy. The only way to avoid this is to generate the 856 from the same pick confirmation data that drove the actual shipment, not from the original PO.

### Can one 856 cover multiple purchase orders?

Yes. A single ASN can have multiple Order (O) levels under one Shipment (S) level, each referencing a different PO via the PRF segment. This is common when a truck picks up against multiple open POs at once. Each Order loop contains its own Pack and Item levels so the buyer can sort receiving by PO without confusion.

### What is the difference between EDI 810 and 856?

The 856 is the advance ship notice and the 810 is the invoice. The 856 goes out before or as goods ship and describes the shipment itself (cartons, pallets, quantities, tracking, SSCC-18 labels). The 810 goes out after shipment and requests payment for it. The key rule is that the 810 should bill for what the 856 actually reported as shipped, not the original 850 quantity. If you ship 95 of 100 ordered units, both the 856 and the 810 should reflect 95, or the buyer's three-way match fails and payment is held.

### What is the difference between EDI 855 and 856?

The 855 is the purchase order acknowledgment and the 856 is the ship notice. The 855 is sent soon after the buyer's 850 arrives and confirms whether you accept the order, including any line-level changes, substitutions, or backorders. The 856 is sent later, at shipment time, and reports what physically left your dock. In short, the 855 is a promise about the order and the 856 is a record of the shipment.

### What is the difference between EDI 945 and 856?

Both describe a shipment, but they flow in opposite directions. The [945 Warehouse Shipping Advice](/guides/edi/945-warehouse-shipping-advice) is sent by a third-party warehouse or 3PL back to you (the supplier) to confirm what it shipped against your 940 Warehouse Shipping Order. The 856 ASN is then sent by you to the buyer to notify them the goods are in transit. If you use a 3PL, the 945 is your source data and the 856 is the downstream notification you generate from it.

## Need Help?

Try our [free EDI inspector](/edi-inspector) to validate your 856 ASN documents or [contact our team](/) for WMS integration support.
