← Back to Guides

How to Process EDI 846 Inventory Reports

Complete guide to reading and processing EDI 846 inventory inquiry/advice transactions. Learn how to manage stock levels, on-hand quantities, and inventory updates.

Transaction Types16 min read

What is an EDI 846 Inventory Inquiry/Advice?

The EDI 846 transaction set, also known as the Inventory Inquiry/Advice, is used by both buyers and sellers to provide updates regarding inventory levels. Suppliers send 846s to retailers to communicate on-hand inventory quantities, available stock, out-of-stock items, and forecasted availability across warehouses, distribution centers, and stores.

Who uses 846 transactions? The 846 is required for dropship and direct-to-consumer fulfillment models. Walmart, Target, Amazon, and other major retailers request frequent 846 updates (daily or multiple times per day) to ensure their eCommerce storefronts display accurate product availability.

Why 846 Inventory Reports Matter

  • Real-time inventory visibility: Retailers see your current stock levels across all locations
  • Prevents overselling: Out-of-stock items are flagged before customers can purchase
  • Improves customer experience: Accurate availability reduces cancellations and backorders
  • Daily or real-time updates: Some retailers request 846s multiple times per day

Common Use Cases for EDI 846 Transactions

The 846 transaction set can be used in multiple scenarios:

1. Supplier to Retailer

Scenario: You (the supplier) send an 846 to Walmart showing current inventory levels for products in your warehouse.

Purpose: Walmart's eCommerce site displays accurate "In Stock" or "Out of Stock" status for your products.

2. Warehouse to Warehouse

Scenario: Your East Coast warehouse sends an 846 to your West Coast warehouse showing stock levels for product transfers.

Purpose: Internal inventory visibility for multi-location operations.

3. Dropship Vendors

Scenario: You dropship products for Target. You send an 846 showing available inventory that Target can sell on Target.com.

Purpose: Target knows which products are available for direct shipment from your warehouse to customers.

4. Inventory Inquiry

Scenario: A retailer sends you an 846 inquiry asking for current stock levels for specific products.

Purpose: The retailer wants to know if you can fulfill a large order before issuing an 850 PO.

EDI 846 Structure: Critical Segments

Understanding the key segments in an 846 inventory report helps you accurately communicate stock levels to trading partners.

BIA Segment: Beginning Segment for Inventory Inquiry/Advice

The BIA segment is the header for the 846 transaction and identifies the purpose and type of inventory report.

BIA*00*ZZ*INV-2025-001*20251020*1430~
  • BIA01 (00): Transaction set purpose code (00 = Original, 01 = Cancellation, 04 = Change, 05 = Replace)
  • BIA02 (ZZ): Report type code (ZZ = Mutually defined, values vary by trading partner)
  • BIA03 (INV-2025-001): Reference identification (unique report ID)
  • BIA04 (20251020): Date (YYYYMMDD format)
  • BIA05 (1430): Time (HHMM format)

Common Report Type Codes (BIA02):

  • AC: Active (product is currently available)
  • PO: Pre-Order (product available for future orders)
  • RO: Run Out (product depleted, no restock planned)
  • NA: Not Active (product discontinued)
  • ZZ: Mutually defined (custom agreement with trading partner)

LIN Segment: Item Identification

The LIN segment identifies the specific product using UPC, GTIN, SKU, or other identifiers.

LIN*1*UP*012345678905*VN*SKU-ABC-123~
  • LIN01 (1): Line item number (sequential count)
  • LIN02 (UP): Product ID qualifier (UP = UPC, UK = GTIN, VN = Vendor SKU, EN = EAN)
  • LIN03 (012345678905): Product identifier (UPC code)
  • LIN04 (VN): Second product ID qualifier (optional, for additional identifier)
  • LIN05 (SKU-ABC-123): Second product identifier (Vendor's SKU)

Best Practice:

Include both UPC (LIN02/LIN03) and your internal SKU (LIN04/LIN05) to help retailers match products in their systems.

QTY Segment: Quantity Information

The QTY segment specifies the inventory quantity and type (on-hand, available, committed, etc.).

QTY*OH*500*EA~
QTY*AV*450*EA~
QTY*CM*50*EA~
  • QTY01: Quantity qualifier (identifies what the quantity represents)
  • QTY02: Quantity (the actual number)
  • QTY03: Unit of measure (EA = Each, CA = Case, BX = Box, PL = Pallet)
QTY01 CodeQuantity TypeDescription
OHOn-HandTotal physical inventory in warehouse
AVAvailableQuantity available for sale (OH - CM)
CMCommittedQuantity reserved for existing orders
ITIn TransitQuantity en route to warehouse
BOBackorderQuantity on backorder (oversold)

N1 Segment: Party Identification

The N1 segment identifies the inventory location (warehouse, distribution center, store).

N1*WH*ACME WAREHOUSE EAST*92*WH-EAST-01~
N3*123 WAREHOUSE BLVD~
N4*ATLANTA*GA*30301~
  • N101 (WH): Entity identifier code (WH = Warehouse, ST = Ship To, DC = Distribution Center)
  • N102 (ACME WAREHOUSE EAST): Location name
  • N103 (92): Identification code qualifier (92 = Assigned by buyer)
  • N104 (WH-EAST-01): Location identifier code

N3 segment: Street address (123 WAREHOUSE BLVD)
N4 segment: City (ATLANTA), State (GA), Zip (30301)

DTM Segment: Date/Time Reference

The DTM segment provides important dates like inventory snapshot date and expected restock dates.

DTM*007*20251020~
DTM*063*20251025~
  • DTM01: Date/Time qualifier (007 = Effective date, 063 = Expected ship date, 068 = Delivery date)
  • DTM02: Date in YYYYMMDD format

DTM*007: Date when inventory count was taken
DTM*063: Date when out-of-stock items will be restocked

CTT Segment: Transaction Totals

The CTT segment summarizes the total number of line items and optionally a hash total of quantities.

CTT*3*1000~
  • CTT01 (3): Number of line items (count of LIN segments)
  • CTT02 (1000): Hash total (sum of all QTY02 quantities, optional)

Real-World Example: Reading an 846 Inventory Report

Let's walk through a complete 846 inventory report for a supplier with 3 products:

ISA*00*          *00*          *ZZ*ACME001        *ZZ*WALMART        *251020*1430*U*00401*000012345*0*P*>~ GS*IB*ACME001*WALMART*20251020*1430*12345*X*004010~ ST*846*0001~ BIA*00*AC*INV-2025-001*20251020*1430~ DTM*007*20251020~ N1*WH*ACME WAREHOUSE EAST*92*WH-EAST-01~ N3*123 WAREHOUSE BLVD~ N4*ATLANTA*GA*30301~ LIN*1*UP*012345678905*VN*SKU-ABC-123~ QTY*OH*500*EA~ QTY*AV*450*EA~ QTY*CM*50*EA~ LIN*2*UP*012345678906*VN*SKU-ABC-124~ QTY*OH*0*EA~ QTY*AV*0*EA~ DTM*063*20251025~ LIN*3*UP*012345678907*VN*SKU-ABC-125~ QTY*OH*200*EA~ QTY*AV*200*EA~ QTY*CM*0*EA~ CTT*3*700~ SE*20*0001~ GE*1*12345~ IEA*1*000012345~

Step-by-Step Breakdown:

BIA*00*AC*INV-2025-001*20251020*1430~

Report header: Original inventory report, Active products, Report ID INV-2025-001, Date Oct 20 2025, Time 2:30 PM

N1*WH*ACME WAREHOUSE EAST*92*WH-EAST-01~

Location: ACME Warehouse East in Atlanta, GA 30301

Product 1: UPC 012345678905 (SKU-ABC-123)

  • On-Hand: 500 units
  • Available: 450 units
  • Committed: 50 units (reserved for existing orders)

Product 2: UPC 012345678906 (SKU-ABC-124)

  • On-Hand: 0 units (out of stock)
  • Available: 0 units
  • Restock date: Oct 25, 2025 (DTM*063)

Product 3: UPC 012345678907 (SKU-ABC-125)

  • On-Hand: 200 units
  • Available: 200 units (all available, nothing committed)
  • Committed: 0 units

CTT*3*700~

Totals: 3 line items, 700 total on-hand units (500 + 0 + 200)

What Walmart Sees:

  • Product 1: Show "In Stock - 450 available" on Walmart.com
  • Product 2: Show "Out of Stock - Available Oct 25" on Walmart.com
  • Product 3: Show "In Stock - 200 available" on Walmart.com

Retailer-Specific 846 Inventory Requirements

Walmart

  • ✅ Required for Walmart Dropship Vendor program
  • ✅ Use ANSI X12 version 4010 or 5010
  • ✅ Report type codes: AC (Active), PO (Pre-Order), RO (Run Out), NA (Not Active)
  • ✅ Update frequency: Daily or multiple times per day for high-demand items
  • ✅ Must include both UPC and vendor SKU in LIN segment

Target

  • ✅ Required for Target.com dropship vendors
  • ✅ Use ANSI X12 version 4010
  • ✅ Daily inventory updates preferred
  • ✅ Include QTY*AV (available) and QTY*OH (on-hand)
  • ✅ Use DTM*063 to indicate restock dates for out-of-stock items

Amazon Vendor Central

  • ✅ Real-time inventory feeds preferred
  • ✅ Use ANSI X12 version 4010
  • ✅ Include QTY*OH and QTY*AV for each product
  • ✅ Out-of-stock items should show QTY*AV*0
  • ✅ Update immediately when inventory levels change

Home Depot

  • ✅ Required for vendor-managed inventory (VMI) programs
  • ✅ Use ANSI X12 version 4010
  • ✅ Daily updates minimum
  • ✅ Include N1 segments for each warehouse/DC location
  • ✅ Use QTY*OH, QTY*AV, and QTY*CM

Best Practices for Sending 846 Inventory Reports

846 Inventory Update Checklist

  1. Update frequently: Send 846s daily at minimum. For high-demand products, send updates multiple times per day or in real-time.
  2. Include all quantity types: Always send QTY*OH (on-hand), QTY*AV (available), and QTY*CM (committed) to give retailers full visibility.
  3. Flag out-of-stock items: Use QTY*AV*0 for out-of-stock products and include DTM*063 with expected restock date.
  4. Use correct product identifiers: Include both UPC (LIN02/LIN03) and your vendor SKU (LIN04/LIN05) to help retailers match products.
  5. Specify inventory location: Use N1 segments to identify which warehouse/DC the inventory is in. Multi-location sellers should send separate 846s for each location.
  6. Validate before sending: Ensure CTT01 (line item count) matches the number of LIN segments. If using CTT02 (hash total), verify it matches the sum of all QTY02 values.
  7. Send changes only (optional): Some retailers prefer "delta" 846s showing only inventory changes since the last report. Check with your trading partner.
  8. Include timestamp: Use BIA04 (date) and BIA05 (time) to timestamp inventory snapshots. This helps retailers understand when the data is current.

Common Mistakes to Avoid

  • Inaccurate availability: Showing QTY*AV = QTY*OH when you have committed quantities. Always subtract committed/reserved stock from available.
  • Stale data: Sending the same 846 daily without updating quantities. Retailers will stop trusting your inventory data.
  • Missing restock dates: Showing QTY*AV*0 without a DTM*063 restock date. Customers want to know when items will be back in stock.
  • Wrong UOM: Sending quantities in cases (CA) when retailer expects eaches (EA). Always verify unit of measure with your trading partner.
  • No location data: Omitting N1 segments for multi-warehouse operations. Retailers need to know which warehouse has stock.

How PlainEDI Helps You Process 846 Inventory Reports

Manually parsing 846 EDI files to track inventory across multiple retailers is time-consuming. PlainEDI converts 846 inventory reports to clean CSV format, making it easy to:

  • View all inventory levels in a spreadsheet with product IDs, quantities, and locations clearly labeled
  • Compare on-hand vs. available quantities to identify committed/reserved stock
  • Track out-of-stock items and restock dates using DTM*063 segments
  • Audit 846 accuracy before sending to retailers to prevent overselling
  • Import 846 data into your inventory management system (ERP, WMS, etc.)

Try PlainEDI's 846 Inventory Converter

Upload your 846 EDI file and get instant CSV output with all segments (BIA, LIN, QTY, N1, DTM) clearly labeled. Validate your inventory reports before sending to retailers.

Convert 846 to CSV Now →

Frequently Asked Questions

How often should I send 846 inventory updates?

Minimum: Daily. Most retailers request daily 846 updates at a minimum. For dropship programs or high-demand products, send updates multiple times per day or in real-time when inventory levels change. Amazon and Walmart prefer real-time or near-real-time updates.

What's the difference between QTY*OH and QTY*AV?

QTY*OH (On-Hand) is the total physical inventory in your warehouse. QTY*AV (Available) is inventory available for new orders after subtracting committed/reserved stock. Formula: QTY*AV = QTY*OH - QTY*CM

Should I send 846s for out-of-stock items?

Yes. Always include out-of-stock items with QTY*AV*0. Include a DTM*063 segment with the expected restock date so the retailer can show "Available [date]" to customers. If the item is permanently discontinued, use BIA02 report type code "NA" (Not Active).

Can I send one 846 for multiple warehouse locations?

Yes, but best practice is separate 846s per location. If you have multiple warehouses, send a separate 846 for each location with its own N1 segment identifying the warehouse. This gives retailers visibility into which location has stock and helps with fulfillment routing.

What happens if my 846 inventory is inaccurate?

Inaccurate 846 data leads to overselling (you get orders you can't fulfill) or underselling (you show out-of-stock when you have inventory). Both result in poor customer experience, order cancellations, and potential chargebacks from retailers. Always validate your 846 data before sending.

Can PlainEDI generate 846 inventory reports for me?

PlainEDI is primarily a converter tool (EDI to CSV). For generating 846 reports, you'll need an EDI generation tool or ERP system that can export inventory data to 846 format. However, you can use PlainEDI to validate your generated 846 files before sending them to retailers.

Summary: Mastering EDI 846 Inventory Reports

  • 846 provides real-time inventory visibility to retailers (on-hand, available, committed)
  • Required for dropship and VMI programs at Walmart, Target, Amazon, Home Depot
  • Send daily minimum, real-time preferred for high-demand products
  • QTY*AV = QTY*OH - QTY*CM (available = on-hand - committed)
  • Always include DTM*063 restock dates for out-of-stock items
  • Use PlainEDI to convert 846s to CSV for validation and auditing

Ready to Simplify 846 Inventory Processing?

Upload your 846 EDI inventory reports to PlainEDI and get clean CSV output. Validate inventory levels and ensure accuracy before sending to retailers.