Amazon Edi 846
What This Is
The Amazon EDI 846 (Inventory Advice) is an X12 transaction set used by vendors, suppliers, and logistics partners to report inventory levels, availability, and status updates to retailers such as Amazon. An 846 communicates item identifiers, quantity on hand, in-transit quantities, lead times, and optional date information back to a trading partner's systems. Amazon uses these messages to reconcile availability and automate replenishment decisions in Vendor Central and Seller Central flows.
This guide focuses specifically on Amazon EDI 846: the required segments, typical element values Amazon expects, how to convert an 846 to a flat CSV for downstream systems (ERP, WMS, BI), and how to debug common problems that cause rejections or inaccurate inventory posting. Amazon’s guidance and compliance programs relevant to inventory/SKU feeds have evolved; when referencing Amazon program or penalty changes below, note the effective date for the retailer guidance: Last Updated: 2025-12-28. Verify current requirements with the Amazon vendor portal for any updates after that date.
Who This Is For
This guide is intended for EDI analysts, integration developers, ERP/WMS implementers, and vendor operations teams that receive or generate Amazon 846 files and need to reliably convert them to CSV, import into internal systems, or prevent common rejections. If you maintain mapping scripts, build validation rules, or operate a data pipeline that ingests Amazon inventory advice, this guide is targeted at you.
Key Segments Explained
Below are the Amazon 846 segments you'll see most often. Each entry explains the segment role, common elements, and Amazon-specific expectations.
- ISA - Interchange Control Header
The ISA is the fixed-length envelope header that defines element separators, the interchange control number, sender/receiver IDs, and the component element separator (ISA16). Example:
ISA*00* *00* *ZZ*SENDERID *ZZ*RECEIVERID *210101*1253*U*00401*000000905*0*T*:~. Amazon expects consistent ISA sender/receiver values as registered in Vendor Central or the VAN/AS2 agreements. If ISA control numbers or IDs mismatch on acknowledgements, the interchange will not reconcile. - GS - Functional Group Header
The GS groups a set of related transaction sets (ST...SE). Example:
GS*IB*SENDERID*RECEIVERID*20250101*1253*90*X*004010~. GS02/GS03 are typically the sender and receiver application IDs. Amazon looks for correct application IDs; mismatches lead to downstream routing failures. - ST - Transaction Set Header (ST/SE)
Every 846 transaction begins with
ST*846*0001~and ends with the corresponding SE trailer. ST02 is the transaction set control number; it must match SE02. If ST/SE pair values are inconsistent, the transaction is considered malformed and the 997 may indicate a ST/SE mismatch. - BIA - Beginning Segment for Inventory Advice
BIA identifies the purpose and type of the inventory advice. Useful elements include BIA01 (originating company identifier), BIA02 (action code such as
00for original,05for change), and BIA03 (inventory advice identifier). Amazon uses BIA to detect whether the file is an initial feed or an update to previously submitted inventory. - LIN - Item Identification
LIN identifies the item (UPC, GTIN, SKU, or ASIN). The commonly used pattern is
LIN**VP*1234567890123*UP*0012345678905~where qualifiers likeVNorBPmay appear. For Amazon, mapping ASIN or Seller SKU to internal SKU is critical; incorrect qualifiers result in item-level mismatches. - QTY - Quantity
QTY carries quantities such as on-hand (
QTY*33*100~) or unavailable amounts. The unit of measure (UOM) is important and often encoded in a separateUITor within QTY with a qualifier. Amazon expects UOM that matches its catalog (EA for each). Invalid UOMs produce data quality issues. - DTM - Date/Time Reference
DTM supplies dates tied to the quantity, such as availability date (
DTM*036*20250110~). Amazon uses ISO date formats (YYYYMMDD) within DTM elements. Mismatched or ambiguous dates can cause stock availability to be applied on wrong days.
Example EDI Snippet
ISA*00* *00* *ZZ*SNDID *ZZ*AMZRCV *250101*0800*U*00401*000000905*0*T*:~
GS*IB*SNDID*AMZRCV*20250101*0800*905*X*004010~
ST*846*0001~
BIA*00*INV12345*20250101~
REF*IA*FULFILLMENT_CENTER_1~
N1*ST*FULFILLMENT CENTER 1*92*FC1~
LIN**UP*0012345678905*VN*ABC-1234~
UIT*EA~
QTY*33*125~
DTM*371*20250103~
LIN**UP*0012345678906*VN*ABC-1235~
UIT*EA~
QTY*33*0~
DTM*371*20250103~
SE*13*0001~
GE*1*905~
IEA*1*000000905~
Line-by-line explanation:
ISA...— Interchange header; verifies sender/receiver and sets delimiters. ISA16 (last char) is component separator ":" in this example. The segment terminator is "~".GS*IB...— Functional group header. GS06 is group control number 905.ST*846*0001— Transaction set start; control number 0001 must match SE02.BIA*00*INV12345*20250101— Beginning segment: original inventory advice with identifier INV12345 and date.REF*IA*FULFILLMENT_CENTER_1— Reference: internal code indicating the inventory location.N1*ST*FULFILLMENT CENTER 1*92*FC1— Name/Location segment; qualifier 92 indicates assigned code for the location.- First
LINblock — Identifies item by UPC and vendor item number (VN). The followingUITdefines unit (EA).QTY*33*125= 125 units on hand.DTM*371*20250103indicates availability date. - Second
LINblock — Example showing a 0 quantity for an item currently out of stock. SE*13*0001— Transaction set trailer: segment count 13 and control number 0001.GE*1*905andIEA*1*000000905— Group and interchange trailers to close envelopes.
CSV Output Example
| InventoryID | LocationCode | ItemIdentifier | IdentifierType | VendorSKU | UOM | Quantity | AvailabilityDate |
|---|---|---|---|---|---|---|---|
| INV12345 | FC1 | 0012345678905 | UP | ABC-1234 | EA | 125 | 2025-01-03 |
| INV12345 | FC1 | 0012345678906 | UP | ABC-1235 | EA | 0 | 2025-01-03 |
Step-by-Step Conversion Process
- Validate envelope and delimiters
- Detect segment terminator (usually
~), element separator (commonly*), and component separator (ISA16). Use the ISA line to confirm. - Verify ISA control number sequence and GS control numbers. If mismatched, flag for manual inspection.
- Detect segment terminator (usually
- Parse transaction sets
- Extract each ST/SE block. Ensure SE02 matches ST02 and SE segment count equals actual segments in the ST block.
- If multiple STs exist within a GS, process each as an individual inventory advice record set for CSV output.
- Map key segments to CSV fields
- From BIA, extract inventory advice ID (CSV.InventoryID) and BIA date.
- From REF or N1, extract location code. Amazon commonly sends fulfillment center codes in REF or N1 with qualifier 92.
- From LIN, extract item identifiers: choose qualifier preference (ASIN > Seller SKU > UPC). If LIN contains multiple IDs, prefer the identifier your ERP maps to.
- From QTY and UIT, map units and quantity. Convert UOM to canonical value if needed (EA).
- From DTM, parse availability date into ISO format for CSV import.
- Apply business rules and enrichment
- Enrich item identifiers by joining to a master catalog table to attach SKU, ASIN, or internal product keys.
- Normalize UOMs and convert pack quantities if your ERP counts cases instead of EA.
- Handle zero quantities as explicit stock outs and tag them with reason codes if available.
- Validate and clean data
- Run format checks (numeric quantity, date format YYYYMMDD). Reject or quarantine rows failing critical validations.
- Run duplicate item detection per InventoryID+Location+ItemIdentifier and resolve by summing or applying last-write-wins depending on business rules.
- Export to CSV and verify schema
- Write CSV headers and rows for each LIN block. Ensure proper quoting for fields with commas.
- Run a checksum or row count verification to ensure CSV row counts match expected number of item lines in the 846.
- Automated validation and upload
- Use tools like PlainEDI to pre-validate 846s and detect envelope or mapping errors before importing into production systems.
- Log and notify stakeholders for failed uploads with clear error descriptions generated by the validation engine.
Common Errors and Fixes
- Error: ISA Control Number Mismatch — Symptom: 997 shows ISA control mismatch. Cause: Interchange control numbers not incremented or reused. Fix: Ensure your EDI gateway increments ISA13 and IEA02 correctly and that your VAN/AS2 settings match Amazon’s registered interchange control numbers.
- Error: ST/SE Mismatch (997 Functional Acknowledgment) — Symptom: 997 returns code for ST/SE count mismatch. Cause: SE02 different from ST02 or SE segment count incorrect. Fix: Recompute SE segment count during generation; ensure ST02 and SE02 use the same control number.
- Error: Missing LIN or Unrecognized Identifier — Symptom: Inventory lines are not applied to items. Cause: LIN qualifiers do not match the identifier Amazon expects (e.g., using vendor SKU when ASIN is required). Fix: Update mapping to prioritize ASIN or the Seller SKU used in Amazon’s catalog. Cross-check with product master.
- Error: Invalid UOM (unit of measure) — Symptom: Quantities imported but not interpreted correctly. Cause: UOM qualifier not in expected list (e.g., case vs EA). Fix: Normalize UOMs to EA or perform pack-size conversion. Add UOM translation table in your mapping layer.
- Error: Date Format/Invalid DTM — Symptom: Availability date ignored or misapplied. Cause: DTM format not in YYYYMMDD or wrong qualifier used. Fix: Convert DTM to ISO format and use appropriate qualifier codes (e.g., 371 for availability).
- Error: Duplicate InventoryID or Conflicting Updates — Symptom: Two records try to set different quantities for the same SKU/location. Cause: Concurrent feeds or partial updates. Fix: Apply sequence rules (use BIA action codes to interpret updates) and prefer latest timestamp; implement idempotent processing using InventoryID + timestamp.
- Error: Functional Group/Rejection Routing — Symptom: Interchange accepted but functional group rejected. Cause: Incorrect GS elements or mismatched version (e.g., 00401 vs required version). Fix: Confirm GS08 (version) matches Amazon’s expected version. Use understanding EDI X12 delimiters and structure to validate envelope composition.
Related Resources
- how to process EDI 846 inventory — broader processing best practices for 846 files.
- amazon EDI 850 — purchase order flows that often tie to inventory advice timing.
- reading 997 functional acknowledgments — how to interpret 997s from Amazon for 846 acceptance or rejection.
- converting EDI files for accounting software — mapping patterns for downstream financial reconciliation.
- integrating EDI with ERP systems — common integration patterns and error handling.
- edi-to-csv for small business vendors — lightweight conversion strategies for smaller teams.
FAQ Section
Q: What is the core purpose of the Amazon EDI 846?
The Amazon EDI 846 transmits inventory status and availability for items at a given location. It informs Amazon systems about quantity on hand, in-transit amounts, expected availability dates, and location identifiers so Amazon can make replenishment or listing availability decisions.
Q: How should I choose which identifier from LIN to use (ASIN, UPC, SellerSKU)?
Choose the identifier that maps reliably to Amazon’s catalog in your integration: ASIN is the strongest if provided, otherwise use the Seller SKU that Amazon recognizes. UPC/GTIN can be used as a fallback. Maintain a master SKU mapping table to translate LIN identifiers to your internal product keys during conversion.
Q: Why did my 846 get a 997 rejection even though the data looked correct?
997 functional acknowledgments indicate syntactic issues or envelope problems, not necessarily business-level data errors. Common causes are ISA/GS control number mismatches, incorrect delimiters, ST/SE control number mismatch, or unsupported GS version. Inspect the 997 for specific rejection codes and map them back to the envelopes and ST/SE pairs in the original file.
Q: How should dates in DTM be formatted for Amazon?
DTM dates should follow the X12 expected format (YYYYMMDD) in practice for Amazon. Always use the correct DTM qualifier for the date meaning (e.g., 371 for availability). Convert dates to ISO (YYYY-MM-DD) when writing CSVs for ERP imports.
Q: What validation features does PlainEDI provide for 846 files?
PlainEDI provides envelope and transaction validation that checks ISA/GS consistency, ST/SE counts, segment presence (LIN, QTY, DTM), UOM normalization, and basic business-rule checks (duplicate lines, missing identifiers). Use PlainEDI to pre-validate before uploading to Amazon or importing to your ERP to reduce rejections.
Q: How do I handle partial updates or incremental inventory in 846 messages?
Use BIA action codes and InventoryID timestamps to determine if a message is a full snapshot or an incremental change. Implement idempotent processing—apply updates by InventoryID and date, and prefer the latest timestamp for conflicting updates. For high-frequency feeds, track sequence numbers or digest hashes to avoid replaying old updates.
Q: Do retailers like Amazon issue penalties for 846 non-compliance?
Retailers, including Amazon, enforce compliance programs and may apply penalties for persistent data quality failures that affect supply chain operations. Types of penalties include chargebacks for inaccurate ASNs/ASNs timing, fines for OTIF issues, or remediation requirements. For Amazon-specific program changes and effective dates, see the vendor portal. Last Updated: 2025-12-28 — verify current requirements with Amazon Vendor Central or Seller Central.
Q: Can I convert 846 to CSV without EDI software?
Yes, you can write scripts (Python, Node, Java) to parse X12 delimiters and map segments to CSV. However, using a tool like PlainEDI reduces implementation time because it handles envelope parsing, validation rules, delimiter detection, and provides clear error messages to prevent common mistakes.
Case Studies and Real-World Examples
Case Study 1 — Mid-size Vendor: inventory mismatch due to UOM inconsistency. A vendor sent 846s using UOM = CS (cases) while Amazon expected EA per item. Quantities appeared 12x too high in the buyer's ERP. Solution: vendor implemented a UOM translation table in the mapping step and added PlainEDI pre-validation to block files with unsupported UOMs, preventing incorrect postings.
Case Study 2 — High-volume Logistics Provider: intermittent 997 rejections caused by ISA control reuse during automated resends after connection failures. The provider updated their gateway to persist and increment ISA/GS control numbers across restarts and integrated a retry-queue with de-duplication. This eliminated 997s related to control mismatches and reduced manual intervention.
Case Study 3 — Small Business Vendor: lacked ASIN mapping and used UPC in LIN. Amazon’s system failed to reconcile many SKUs. The vendor built a lightweight enrichment step that joins LIN UPC to their internal SKU and Amazon ASIN using a master catalog. They now produce CSVs with both Seller SKU and ASIN, improving inventory match rates.
Best Practices
- Always validate envelopes (ISA/GS/ST) before parsing business segments.
- Prefer canonical identifiers (ASIN/SellerSKU) and maintain a master mapping table.
- Normalize UOMs and convert pack sizes where ERP expects different units.
- Implement idempotent processing using InventoryID + timestamp to prevent double-applying updates.
- Use a validation tool (e.g., PlainEDI) to catch syntactic and basic business-rule errors pre-import.
- Log every received 846 and always store original X12 for audit and dispute resolution.
Call to Action
Ready to validate and upload your Amazon EDI 846 files with automated checks and clear error reporting? Use PlainEDI to pre-validate 846s, convert to CSV, and eliminate common processing errors. Upload your file now at PlainEDI.