Retailer Guides14 min read

Walmart Edi 856

This guide explains how to create, validate, and troubleshoot Walmart EDI 856 ASN files (Advanced Ship Notice) with practical examples, conversion steps to CSV,

TL;DR: This guide explains how to create, validate, and troubleshoot Walmart EDI 856 ASN files (Advanced Ship Notice) with practical examples, conversion steps to CSV, and real error-resolution techniques. Follow the annotated code samples, conversion steps, and PlainEDI recommendations to produce Walmart-compliant ASNs and prevent common rejections.

What This Is

This guide covers Walmart EDI 856 (ASN) processing end-to-end for vendors and 3PLs that ship to Walmart stores, distribution centers, or direct-to-consumer channels. The 856 ASN communicates shipment details—packing, carton/tote IDs, carrier and trailer information, and hierarchical product-level quantities—to Walmart systems so they can plan receiving and invoice matching.

The content focuses on practical, actionable instructions: how the 856 is structured (ISA/GS/ST through SE/GE/IEA), how to build valid hierarchical loops (HL), how to map the 856 to CSV for downstream systems, why common errors occur, and exact steps to validate and fix those errors. Where possible, examples mirror real-world Walmart data requirements and include line-by-line annotation of EDI segments. Use this guide together with Walmart Retail Link and your trading partner agreement for final compliance checks.

Who This Is For

This guide is for EDI analysts, integration engineers, warehouse managers, and third-party logistics providers (3PLs) who prepare or consume Walmart 856 ASNs and need step-by-step guidance to convert, validate, and troubleshoot ASNs for Walmart.

Key Segments Explained

  • ISA — Interchange Control Header

    The ISA segment begins the interchange and defines envelope-level delimiters, sender/receiver IDs, date/time, and the interchange control number. Walmart expects the ISA sender/receiver qualifiers to match the Trading Partner Agreement. Common issues: incorrect element separators, mismatched control numbers, or wrong IDs.

  • GS / GE — Functional Group Header/Trailer

    The GS groups like transactions (e.g., all 856s in a batch). The GS08 control number must pair with GE01. Walmart systems validate group control numbers for sequencing—mismatches cause GE/GS-level rejects. Ensure the functional identifier code in GS01 is 'SH' for 856.

  • ST / SE — Transaction Set Header/Trailer

    The ST signals the start of an individual ASN (ST01 = 856). ST02 must match SE02. Each transaction set must be self-contained; missing SE or mismatched counts produce 997 functional acknowledgment errors.

  • BSN — Beginning Segment for Ship Notice

    The BSN identifies the ASN number and shipment date/time. BSN02 is the ASN identifier and must be unique per shipment. Walmart enforces ASN uniqueness within certain windows. BSN03/BSN04 capture date/time and must be in CCYYMMDD/HHMM format as required.

  • HL Loop — Hierarchical Levels (Shipment, Order, Pack, Item)

    The HL segment creates a hierarchy: typical Walmart structure is HL (Shipment, HL Order — optional for PO-level ASNs, HL Pack — pallet/carton) and child HL for Item detail. HL03 indicates parent-child relationship via HL02 (parent ID). Mistakes in HL sequencing cause receiving system mapping failures; ensure parent HL exists when referenced.

  • LIN, SN1 — Item Identification and Quantities

    LIN contains the UPC/GTIN/Buyer SKU. SN1 contains shipped quantity. SN1 units (SN102) must match unit of measure Walmart expects (EA, PL, etc.). Common problems: wrong GTIN qualifier, incorrect unit-of-measure, or quantity mismatches with packing lists.

  • TD1 / TD5 / REF / MAN — Shipping and Carrier Details

    TD1 communicates packaging and weight; TD5 communicates routing and carrier SCAC/SCAC qualifiers; MAN holds serial shipping container codes (SSCC) for pallets/cartons. Missing or malformed MAN SSCC or wrong TD5 SCAC cause Walmart to reject ASNs or apply compliance penalties.

Example EDI Snippet

ISA*00*          *00*          *ZZ*SENDERID       *ZZ*WMID          *210825*1215*U*00401*000000905*0*P*>
GS*SH*SENDERID*WMID*20210825*1215*905*X*004010
ST*856*0001
BSN*00*ASN000123*20210825*1215*0001
HL*1**S
TD1*CTN*10*G*1500*LB
TD5*O*2*UPSN*US
REF*CN*PRO123456
HL*2*1*P
MAN*CP*0001234567890
HL*3*2*I
LIN**VN*1234567890123*UP*012345678905
SN1**50*EA
CTT*1*50
SE*15*0001
GE*1*905
IEA*1*000000905

Line-by-line explanation:

  • ISA...: Envelope control and delimiters. ISA13/ISA14 indicate component delimiters used by Walmart. The closing character '>' is the segment terminator in this example.
  • GS*SH*...: Functional group header for Ship Notice (856). GS06 = group control number '905'.
  • ST*856*0001: Transaction set ID 856, control number 0001. Must match SE02.
  • BSN*00*ASN000123*20210825*1215*0001: ASN number ASN000123, date/time and change reason code '00' (Original).
  • HL*1**S: Hierarchical level 1, code 'S' for Shipment.
  • TD1*CTN*10*G*1500*LB: Packing - 10 cartons, gross weight 1500 LB.
  • TD5*O*2*UPSN*US: Routing - UPSN carrier, country 'US'.
  • REF*CN*PRO123456: Reference number CN (carrier pro number).
  • HL*2*1*P: Hierarchical level 2, parent=1, code 'P' for pack (pallet/carton level).
  • MAN*CP*0001234567890: Carton SSCC with qualifier 'CP'.
  • HL*3*2*I: Item level child of pack (HL02=2) with type 'I'.
  • LIN**VN*1234567890123*UP*012345678905: Vendor SKU and UPC identifiers—qualifiers VN and UP.
  • SN1**50*EA: Shipped quantity 50 each.
  • CTT*1*50: Transaction totals: 1 line, 50 units.
  • SE*15*0001: End transaction set; 15 segments in set and control number matches ST02.
  • GE*1*905 and IEA*1*000000905: Close group and interchange.

CSV Output Example

Below is a simple CSV mapping that converts primary ASN fields into a flat structure for ERPs or warehouse systems. Each row represents a carton-level item (pack level with item detail). Adjust columns to fit your system.

ASN Number Shipment Date HL Level Pack ID (MAN) UPC Vendor SKU Quantity UOM Carrier SCAC PRO Number
ASN000123 2021-08-25 12:15 3 (Item) 0001234567890 012345678905 1234567890123 50 EA UPSN PRO123456

Step-by-Step Conversion Process

  1. Extract envelope delimiters and segment terminators
    1. Read the ISA segment to get element separator (ISA01 padding), component element separator (ISA16), and segment terminator (last character of ISA segment). Use these to split the file reliably.
    2. Normalize inconsistent terminators from trading partner systems by replacing uncommon terminators with a single standard (e.g., newline + ~).
  2. Validate envelope and control numbers
    1. Verify ISA13/ISA14 functional control numbers are numeric and increment properly per your internal policy.
    2. Match GS06 with GE01 and ST02 with SE02. If mismatched, flag and halt processing.
  3. Parse hierarchical loops
    1. Build HL tree: create nodes as you parse HL segments. Ensure every HL that references a parent HL02 has been created. If not, create a soft error and attempt fix or reject based on severity.
    2. Identify shipment-level (S), pack-level (P), and item-level (I) HL03 codes and map to CSV rows accordingly.
  4. Normalize identifiers and units
    1. Translate qualifiers in LIN to system fields: 'UP' → UPC, 'VN' → Vendor SKU, 'VP' → Vendor Part Number.
    2. Convert units-of-measure to your ERP canonical units (EA, CT, PL) and normalize quantities (e.g., integer cast).
  5. Map packaging and carrier information
    1. Extract MAN SSCCs and map to pack-level IDs in the CSV. For pallets, ensure 18-digit SSCC formatting if your system enforces it.
    2. Map TD5 SCAC to your carrier table and verify REF*CN or REF*BM present for PRO or Bill of Lading numbers.
  6. Generate CSV rows and totals
    1. Create rows for each pack-item combination, add header row, and include totals in separate file suffix or as a final CSV row.
    2. Run a validation pass to ensure sum of SN1 quantities equals CTT totals and that counts match TD1 carton counts.
  7. Validate with PlainEDI preflight
    1. Use PlainEDI as a preflight validator to detect delimiter errors, control number mismatches, missing mandatory segments, and unacceptable qualifiers. PlainEDI validation prevents common 997 rejections by surfacing issues before transmission.
    2. Upload ASN to PlainEDI, run the Walmart compliance rule set, and fix flagged items before sending to VAN or AS2.

Common Errors and Fixes

  • Error: ISA/GS/SE control number mismatch (997 AK5/IK5)
  • Why: Control numbers were auto-generated incorrectly or truncated during transport. Fix: Rebuild ISA13/ISA14, GS06, ST02 and ensure SE02 matches ST02 before sending. Use a deterministic control generator policy and validate with PlainEDI.

  • Error: Missing or duplicate BSN02 (ASN number) — 997 ACK rejection
  • Why: ASN number duplicated across shipments or absent. Walmart requires unique ASN identifiers. Fix: Ensure BSN02 is globally unique per Trading Partner Agreement. Append timestamp suffix if necessary and track issued ASNs in a database to prevent duplicates.

  • Error: HL parent reference missing — hierarchy error
  • Why: HL segment sequence out of order or missing parent HL. Fix: Validate HL02 references refer to existing HL01 values. If sending pack and item HLs, ensure the pack HL appears before its child item HLs. For complex cases, follow the hierarchy expected by Walmart; see how-to-fix-edi-856-hierarchy-errors.

  • Error: MAN SSCC invalid or missing — receiving mismatch
  • Why: SSCC missing check digit or wrong qualifier in MAN. Fix: Validate SSCC length (18 digits standard), compute and verify check digit, use correct MAN qualifier (e.g., 'CP' for SSCC) and include at pack/pallet HL where required.

  • Error: TD5 SCAC does not match expected carrier or routing — compliance alert
  • Why: Trading partner sent carrier name instead of SCAC or used wrong qualifier. Fix: Use SCAC code in TD5 and ensure it maps to allowed carriers from Walmart Retail Link. Add REF carrier IDs (REF*CN) for PRO numbers if required.

  • Error: SN1 quantity mismatch vs CTT total — data integrity error
  • Why: Intentional or accidental rounding or unit-of-measure mismatch. Fix: Aggregate SN1 quantities across all item lines and compare to CTT counts. Convert units to canonical form before summing. Reject file and correct quantities before resending if totals do not reconcile.

  • Error: Delimiter or segment terminator invalid — parse failure
  • Why: Trading partner used nonstandard terminator or file encoding altered characters. Fix: Re-read ISA to extract correct separators, normalize file encoding to ASCII/UTF-8, and run parser tolerant to CR/LF variations.

Related Resources

FAQ Section

Q: What is the minimum HL structure Walmart expects in an 856?

Walmart expects at minimum a Shipment-level HL (S), Pack-level HLs (P) with MAN SSCCs for cartons/pallets when applicable, and Item-level HLs (I) for each shipped SKU. Each HL that references a parent must have its parent appear earlier in the file. For PO-based shipments include order-level HL if instructed by the retailer.

Q: How do I format the BSN date/time fields?

Use CCYYMMDD for BSN03 and HHMM for BSN04 unless your Trading Partner Agreement specifies otherwise. Ensure UTC/local time is agreed with Walmart operations. Use the same timezone across all ASNs to prevent receiving confusion.

Q: What causes a 997 rejection for an 856 and how do I read it?

A 997 functional acknowledgment reports syntactic acceptance or rejection. Look for AK2 (transaction set ID) and AK5 (accept/reject codes). AK5 with a code other than 'A' indicates rejection—AK5 codes identify specific reasons (e.g., segment missing). Use reading 997 functional acknowledgments to interpret the codes and map them to fixes.

Q: Do I need SSCCs in MAN segments for Walmart ASNs?

Walmart requires SSCCs for pallet-level tracking and carton-level traceability depending on the ship-to location and program (e.g., Walmart US DCs). Use MAN segments for SSCCs and ensure you use the correct qualifier and 18-digit SSCC format if Walmart expects it. Validate check digits before transmission.

Q: What are the most frequent causes of hierarchy errors and how do I prevent them?

Frequent causes include out-of-order HL segments, missing parent HLs, and incorrect HL03 type codes. Prevent these by building a deterministic HL generator that outputs parent HLs before children, validates HL02 references against created HL01 values, and runs preflight checks using a validator like PlainEDI.

Q: How should carrier and routing be represented in the ASN?

Include carrier SCAC in TD5, include PRO or BOL numbers in REF segments (e.g., REF*CN for carrier-pro), and include shipment weight in TD1. Ensure TD5 qualifier values and SCAC codes match Walmart carrier expectations. Use your carrier master table to map names to SCAC codes.

Q: Can I convert an 856 to CSV automatically, and what fields are required?

Yes, convert 856 to CSV. Required fields depend on your downstream system but typical required columns include ASN number (BSN02), Shipment date/time, Pack SSCC (MAN), UPC or GTIN (LIN with UP qualifier), Vendor SKU, quantity (SN1), UOM, and carrier SCAC (TD5). Ensure totals in CSV match CTT and TD1 counts.

Q: What penalties does Walmart apply for ASN non-compliance?

Walmart enforces penalties for compliance failures such as OTIF (On Time In Full) issues and ASN inaccuracies that affect receiving. Check Walmart Retail Link for the current penalty details. This guide recommends preventing penalties through preflight validation, accurate SSCCs, and consistent HL hierarchies. PlainEDI validation helps catch errors before submission.

Practical Case Study: Fixing a Real-World Failure

Scenario: A 3PL sent ASNs with duplicate BSN02 values over two shipments. Receiving flagged duplicates and rejected the second shipment with a 997 AK5 rejection. Investigation found the 3PL's ASN generator reset daily and reused numbers.

Resolution steps:

  1. Immediate: Retract the second ASN and resend corrected BSN02 with a unique suffix (timestamp).
  2. Permanent: Implement a UUID or sequence generator that persists across restarts and stores last-issued ASN in a database. Add a pre-send check that queries recent ASNs to ensure uniqueness.
  3. Validation: Add a PlainEDI preflight step to detect duplicates against a history service, and run Walmart compliance rules prior to VAN/AS2 submission. Reference: PlainEDI.

Best Practices and Final Recommendations

  • Always parse ISA first to determine delimiters; mis-parsed files are the top cause of downstream failures.
  • Implement deterministic HL creation and validate HL parent-child links during generation.
  • Validate SSCC check digits and length for MAN segments; ensure pack-level SSCCs are mapped to cartons/pallets.
  • Aggregate and validate totals: sum of SN1 quantities equals CTT totals and equals order/shipment totals where applicable.
  • Use a preflight validator such as PlainEDI to detect syntactic and common semantic issues before submission to Walmart.
  • Keep a logs/audit trail of ASN numbers, file contents, and 997 responses to speed troubleshooting.

Ready to validate or upload your Walmart 856 ASN? Use the upload validator to run Walmart compliance rules and prevent costly rejections: PlainEDI.

Ready to simplify your EDI workflow?

PlainEDI converts complex EDI files into clean CSV/Excel format instantly. No software installation, no training required.

Try PlainEDI Free →