AutoZone Edi 846
What This Is
This guide covers AutoZone EDI 846, the X12 transaction set used for Inventory Inquiry/Advice messages. An 846 communicates inventory counts, in-transit quantities, and availability for items at defined locations. Vendors send or receive 846 messages to align inventory data with AutoZone's stores, DCs, or e-commerce locations; correct structure and business rules are essential to avoid chargebacks and operational failures.
AutoZone enforces inventory accuracy as part of vendor compliance. This guide teaches you how to validate ISA/GS/ST envelope structure, parse key segments (BIA, N1, LIN, QTY, DTM, REF), convert the 846 to CSV for ERP ingestion, and fix the most common syntax and semantic errors. It also shows how PlainEDI's validation features help catch format and business-rule issues before transmission. Check AutoZone's vendor portal for the most current compliance details and penalty rules.
Who This Is For
This guide is for EDI analysts, integrators, warehouse operations, and developers responsible for sending or consuming AutoZone EDI 846 files, and for teams converting 846s into CSV files for ERP, WMS, or reporting systems.
Key Segments Explained
- ISA (Interchange Control Header)
The ISA is the fixed-length envelope header that defines communication-level delimiters, sender/receiver IDs, and control numbers. The ISA element positions determine the element separator and sub-element separator. For example, ISA element 16 defines the component element separator; element 11 sets the repetition separator in some implementations. If ISA delimiters are wrong, parsers fail before reading any segments.
- GS (Functional Group Header)
The GS groups related transaction sets (e.g., all 846 messages). GS contains functional ID code (e.g., "IB" for 846), application sender/receiver codes, date/time, and group control number. The GS/GE pair must match; mismatches cause downstream rejections at the VAN or trading partner.
- ST (Transaction Set Header)
ST starts the 846 transaction set with a transaction set identifier code ("846") and a unique transaction control number. SE (Transaction Set Trailer) must have a matching control number and accurate segment count. Incorrect segment counts or mismatched ST/SE control numbers cause 997 rejections.
- BIA (Beginning Segment for Inventory Inquiry/Advice)
BIA establishes the transaction purpose and control reference for the 846. Important elements include BIA01 (Report Type Code), BIA02 (Report Transmission Code), and BIA03 (Date/Time Reference). AutoZone expects specific values for certain fields; use your AutoZone implementation guide for exact codes. BIA provides the business context for each 846.
- N1 / N3 / N4 (Name and Address Loops)
N1 identifies parties — typically the vendor and AutoZone location or DC. N3 and N4 carry physical address details. For inventory messages, N1 often specifies the location whose inventory is reported. If AutoZone expects a location code in REF or in N1, include it precisely per their requirements.
- LIN / PID / REF
LIN identifies the item line using identifiers like UPC or vendor SKU (LIN02/LIN03). PID can carry item descriptions. REF carries supplementary IDs such as AutoZone's item number or vendor-assigned references. Accurate identifiers are critical: quantity values in QTY must map to the correct LIN record to avoid incorrect inventory adjustments.
- QTY (Quantity Information)
QTY indicates inventory quantities with a quantity qualifier (QTY01) and the numeric quantity (QTY02). Common qualifiers include "DT" for on-hand or "SH" for shipping quantity. For AutoZone, use the qualifier values specified in their implementation guide. Unit of measure may appear in a separate segment or composite element.
- DTM (Date/Time Reference)
DTM provides effective dates for the quantity (e.g., date of inventory count or timestamp). Use ISO date formats (CCYYMMDD) as required by AutoZone. Missing or misformatted DTM values make it impossible to reconcile inventory snapshots.
Example EDI Snippet
ISA*00* *00* *ZZ*SENDERID *ZZ*AUTOZONE *210922*1700*U*00401*000000905*0*T*:~
GS*IB*SENDERID*AUTOZONE*20210922*1700*905*X*004010~
ST*846*0001~
BIA*00*INVENTORY*20210922~
N1*SU*VendorName*9*123456789~
N1*ST*AutoZone DC 001*9*AZDC001~
LIN**VN*12345*UP*012345678905~
QTY*33*150*EA~
DTM*361*20210922~
SE*9*0001~
GE*1*905~
IEA*1*000000905~
Line-by-line explanation:
ISA*...~— ISA envelope with element separator*and segment terminator~. ISA identifies sender/receiver and control number000000905.GS*IB*...— Functional group for Inventory Inquiry/Advice (IB). Group control number905.ST*846*0001~— Transaction set 846, control number0001.BIA*00*INVENTORY*20210922~— Beginning segment, transaction type code00(original), and date.N1*SU*VendorName*9*123456789~— Supplier identification; entity identifierSU, identification code qualifier9.N1*ST*AutoZone DC 001*9*AZDC001~— Ship-to location for inventory counts.LIN**VN*12345*UP*012345678905~— Item identifiers: vendor number12345and UPC012345678905. Note empty element to maintain position for LIN01.QTY*33*150*EA~— Quantity qualifier33(on-hand quantity), quantity150, unitEA.DTM*361*20210922~— Effective date of the quantity: date qualifier361(inventory as of date).SE*9*0001~— Transaction set trailer. Segment count9and matching control number0001.GE*1*905~andIEA*1*000000905~— Close the functional group and interchange. Counts must match.
CSV Output Example
The following CSV shows how a single LIN/QTY loop converts to a row suitable for ERP/WMS ingestion. The table maps common fields AutoZone teams expect when receiving converted inventory data.
| ItemIdentifier | IdentifierType | AutoZoneLocation | Quantity | UnitOfMeasure | EffectiveDate | SourceDocument |
|---|---|---|---|---|---|---|
| 012345678905 | UPC | AZDC001 | 150 | EA | 2021-09-22 | 846-0001 |
Step-by-Step Conversion Process
- Detect Delimiters and Envelope Integrity
- Read the ISA segment first. Identify element separator (character immediately after ISA), component separator (ISA16), and segment terminator (character at the end of the ISA line or often the last character in the file).
- Validate ISA fixed-length positions: ensure ISA is 106 characters total and fixed-width fields are present. If the ISA line is not fixed-length, log an ISA format error and abort conversion.
- Confirm IEA interchange control count and control number match ISA. If mismatched, reject the file and request retransmission.
- Validate GS/GE and ST/SE Pairs
- Check GS functional ID code equals "IB" or the AutoZone-specified functional code for 846.
- Verify GS/GE group control numbers match and the GE number of transaction sets equals count of ST/SE sets inside the group.
- Ensure ST/SE control numbers match and SE segment segment count equals the actual number of segments in the ST...SE block.
- Parse Business Segments into Structured Rows
- Loop through transaction set segments. For each LIN loop, create a new output row.
- Extract identifiers (LIN02-LIN05) and map to your master catalog (UPC, vendor SKU, AutoZone item number). If a lookup fails, flag for supplier review.
- Extract QTY records linked to the LIN. Use QTY01 for quantity qualifier and QTY02 for quantity value. Map qualifier codes to business meanings (on-hand, allocated, in-transit).
- Capture DTM for the effective date of the quantity and transform dates to ISO format for the CSV.
- Apply Business Rules and Enrich Data
- Apply unit-of-measure normalization (e.g., EA → EA). Convert packs to units if your ERP requires a different UOM.
- Validate quantity ranges against expected thresholds. If quantity is negative or implausibly large, mark as exception for manual review.
- Enrich rows with location code from N1 loop (N1 with Entity Identifier Code "ST" or AutoZone-specific qualifier). Ensure mapping to AutoZone location codes.
- Validate and Export CSV
- Run schema validation: required columns must be present (ItemIdentifier, IdentifierType, AutoZoneLocation, Quantity, UnitOfMeasure, EffectiveDate).
- Use a CSV writer that escapes special characters and enforces UTF-8. Ensure no embedded segment terminators remain.
- Run a reconciliation step: count CSV rows and compare to number of LIN loops processed. If counts differ, surface root cause.
- Submit to AutoZone and Monitor Acknowledgments
- Transmit via your agreed method (VAN or AS2). Include an appropriate 997 functional acknowledgment monitoring flow. AutoZone returns a 997 acknowledging functional syntax and control-level issues.
- If 997 contains reject codes, use the errors and the raw 846 to identify whether the issue is syntactic (ISA/GS/ST/segment structure) or semantic (identifiers, qualifiers).
- Continuous Validation with PlainEDI
- Run file through PlainEDI before sending. PlainEDI validates ISA/GS/ST structure, detects delimiter inconsistencies, and validates BIA and segment-specific business rules.
- Use PlainEDI mapping preview to confirm CSV column mapping and to generate sample CSV for QA. PlainEDI validation reduces 997 rejections and data mismatches.
Common Errors and Fixes
- Error: ISA segment wrong length or wrong element positions — Fix: Reconstruct ISA to fixed 106-character format. Ensure correct element separator and that ISA16 contains component separator. Use PlainEDI to auto-detect delimiters and flag fixed-width violations.
- Error: ST/SE control number mismatch or SE segment count incorrect — Fix: Recompute segment count exactly (count all segments including ST and SE) and set SE's segment count accordingly. Ensure ST control value matches SE control value.
- Error: QTY qualifier unrecognized (invalid QTY01) — Fix: Map qualifier codes to AutoZone-defined qualifiers; replace incorrect code with the appropriate inventory qualifier (e.g., on-hand qualifier). Validate against AutoZone's implementation guide. PlainEDI can enforce allowed qualifier lists.
- Error: Wrong location code in N1 or REF, causing inventory applied to the wrong DC — Fix: Reconcile location codes against your vendor portal. Add a mapping table to translate your internal location IDs to AutoZone's expected location codes. Add validation rules in PlainEDI to prevent invalid location codes.
- Error: Missing identifiers in LIN (no UPC or SKU) — Fix: Update the LIN loop to include at least one valid identifier (UPC in LIN04 with qualifier UP). If missing, attach REF segments with alternative identifiers. Implement a pre-send lookup that rejects lines lacking required identifiers.
- Error: 997 Functional Acknowledgment with syntax errors (e.g., invalid element value) — Fix: Inspect 997 detail to find segment/element path. Correct element values to conform to X12 spec and AutoZone’s partner guide. Use PlainEDI to run schema-level checks that mirror 997 validations.
- Error: CSV conversion produces wrong column mappings or missing rows — Fix: Add integration tests that compare expected CSV rows to actual output for sample 846s. Use mapping previews and sample CSV generation in PlainEDI to validate mapping rules before production conversion.
Related Resources
- AutoZone EDI 856 (ASN) requirements — useful when inventory changes trigger ASNs.
- AutoZone EDI 850 purchase order handling — ensure PO-to-inventory consistency.
- how to process EDI 846 inventory — deeper processing patterns for 846 transactions.
- reading 997 functional acknowledgments — interpret 997s returned by AutoZone.
- edi-to-csv-for-small-business-vendors — conversion strategies for small vendors sending 846 data.
Real-World Case Studies and Examples
Case Study 1 — Missing UPC causes inventory misapply:
A mid-size AutoZone supplier sent weekly 846 files where LIN contained only their internal SKU and not the AutoZone UPC. AutoZone applied inventory to default SKUs and rejected reconciliation reports. The supplier introduced a cross-reference mapping table keyed by internal SKU to AutoZone UPC and validated all LIN loops pre-send using PlainEDI. The supplier eliminated mismapped inventory within two cycles and eliminated manual corrections.
Case Study 2 — Delimiter mismatch blocked processing:
A distributor exported EDI files using a pipe (|) as the element separator but the ISA specified *. Their VAN returned 997 rejections due to parsing failure. They standardized on generating ISA with the true delimiter chosen in their EDI engine and added an automated check script to verify ISA field positions and the segment terminator. PlainEDI's delimiter detection flagged the mismatch immediately in QA, preventing production failure.
Best Practices and Troubleshooting Tips
- Always validate ISA/GS/ST envelopes before parsing business content.
- Keep authoritative cross-reference tables (vendor SKU ↔ AutoZone UPC ↔ AutoZone item number) version-controlled and applied during mapping.
- Normalize unit-of-measure and date formats early in the pipeline.
- Use PlainEDI's pre-send validation to catch delimiter, segment count, and business-rule violations. PlainEDI automatically checks ISA/GS/SE control matching and common inventory qualifiers.
- Implement automated reconciliation that compares 846 inventory to system stock and flags deltas greater than a configurable threshold for human review.
- Retain raw EDI files alongside parsed CSV for audit trails and dispute resolution with AutoZone.
FAQ
Q: What is the primary purpose of an AutoZone EDI 846?
The AutoZone EDI 846 communicates inventory quantity information (on-hand, in-transit, available) for items at specified locations. It allows AutoZone and suppliers to synchronize inventory snapshots to reduce stockouts and overstock situations.
Q: What identifiers should be present in the LIN segment?
LIN should contain at least one authoritative item identifier such as UPC (qualifier UP) or vendor SKU (qualifier VN). AutoZone-specific item numbers may appear in REF segments. Always include identifiers that map to AutoZone’s item master to prevent misapplied inventory.
Q: How do I determine the delimiters used in an 846 file?
Read the ISA segment first: the element separator is the character following 'ISA' fields; typically *. The ISA16 position defines the component element separator. Detect the segment terminator by inspecting the character that terminates the ISA line (commonly ~). Use PlainEDI’s delimiter detection to avoid manual parsing errors.
Q: What causes a 997 Functional Acknowledgment rejection for an 846?
A 997 rejection for an 846 can occur due to envelope errors (ISA/GS mismatch), segment syntax issues (invalid element length or value), incorrect ST/SE counts, or invalid functional group IDs. Inspect the 997 detail segments to find the specific segment/element errors and fix those in the originating file.
Q: How should I map different QTY qualifiers when converting to CSV?
Map QTY01 qualifiers to descriptive columns in your CSV (e.g., 'OnHand', 'Allocated', 'InTransit'). Normalize to numeric QTY02 and include unit-of-measure. Use a qualifier-to-field mapping table in your ETL to ensure each qualifier writes to the correct CSV column.
Q: What validation features does PlainEDI provide for AutoZone 846 files?
PlainEDI validates ISA/GS/ST structure, detects delimiter mismatches, enforces segment counts, and applies configurable business-rule validations such as allowed QTY qualifiers, required identifiers in LIN loops, and valid location codes. PlainEDI also previews CSV mapping and performs sample conversions to catch mapping issues before production. Use PlainEDI as a QA step prior to transmitting files to AutoZone.
Q: How often should I send 846 inventory updates to AutoZone?
Send inventory updates at the frequency defined in your AutoZone trading partner agreement. Common cadences include daily, weekly, or event-triggered updates for dropship items. Ensure your timing aligns with AutoZone’s replenishment and invoicing processes to avoid reconciliation problems.
Q: What should I do if AutoZone reports a penalty for 846 non-compliance?
If AutoZone reports a penalty, review the rejection details, reconcile the offending 846 file with your raw system data, and correct the root cause—whether identifiers, location mapping, or frequency issues. Implement preventive validation steps using PlainEDI to avoid recurrence and coordinate with AutoZone's vendor support for remediation steps and dispute resolution.
Final Call to Action
Validate your AutoZone EDI 846 files now with PlainEDI to catch delimiter, envelope, and business-rule errors before sending. Upload a sample 846 to PlainEDI for automated validation, mapping previews, and CSV conversion to accelerate integration and reduce AutoZone rejections.