EDI 940 EDI TransactionPublished May 9, 2026

EDI 940 Warehouse Shipping Order Guide

How the EDI 940 Warehouse Shipping Order works. Learn key segments, 3PL workflows, and how to send 940s to your warehouse for drop-ship and DC fulfillment.

The EDI 940 Warehouse Shipping Order is the X12 transaction set a brand or seller sends to a third-party warehouse or 3PL to instruct them to ship a specific order on a specific date to a specific destination. It is how DTC brands, drop-ship vendors, and any company using outsourced fulfillment hand off shipping instructions without phone calls or spreadsheets.

What Is an EDI 940?

An EDI 940 is a structured warehouse shipping instruction defined by the ASC X12 standards body that the depositor (the inventory owner) sends to the warehouse (the inventory custodian) to authorize a shipment. The warehouse then picks, packs, ships, and responds with an EDI 945 Warehouse Shipping Advice confirming what actually shipped.

The 940 is one half of a tightly coupled pair:

  • 940 (depositor → warehouse): "Ship this order to this address by this date"
  • 945 (warehouse → depositor): "Here's what we actually shipped, in this many cartons, with these tracking numbers"

Without a 940/945 pair, brands using a 3PL have to email or portal-upload every shipment instruction by hand, which kills the operational efficiency that 3PLs are supposed to deliver.

EDI 940 Format and Key Segments

A 940 always carries the same five sections in a deterministic order:

SegmentPurposeExample
W05Header — depositor order number, purpose code, internal referenceW05*N*123456*ORDER789
LXLine group — assigns line numbers within the shipmentLX*1
W01Item detail — quantity, UOM, item identifier (UPC/SKU), customer item IDW01*12*EA*UPC*012345678905
N1 / N3 / N4Ship-to and other party addresses (stores, customers, drop-ship destinations)N1*ST*Customer Name~N3*123 Main St~N4*Austin*TX*78701
W76Total quantity summary — closes the loop on what was instructedW76*12

The ISA/GS envelope and ST*940/SE framing are standard across X12.

Common reference qualifiers in W05

  • IA — Internal vendor number (your reference back into your own system)
  • CN — Carrier-assigned reference
  • CR — Customer purchase order reference
  • DP — Department number for the receiving retailer

Common Use Cases

DTC brands using a 3PL

Direct-to-consumer brands that fulfill out of a 3PL warehouse send a 940 for every order received from Shopify, Amazon, or their own site. The 3PL system picks, packs, generates a shipping label, and sends back a 945 confirming the shipment with tracking. No human involvement at the warehouse for routine orders.

Drop-ship vendors fulfilling for retailers

When a brand drop-ships on behalf of a retailer (Wayfair, Home Depot, Lowe's), the retailer sends an 850 PO to the brand. The brand turns around and sends a 940 to its 3PL with the end-customer ship-to address. The 3PL ships to the consumer directly.

Multi-warehouse routing

Brands with inventory in multiple warehouses route 940s to the closest warehouse to the customer based on stocking rules. The 940's ship-from is implicit (the warehouse receiving the message), so the same 940 schema works across all warehouses.

EDI 940 vs EDI 945

This is the most-asked comparison for the 940. The two work as a strict request-response pair:

  • EDI 940 is the instruction sent from depositor to warehouse: "ship this."
  • EDI 945 is the confirmation sent from warehouse to depositor: "we shipped this, on this date, in these cartons, via this carrier, with these tracking numbers."

The 945 line items reference the original 940 line items so the depositor's system can reconcile shipped quantity against ordered quantity. Short-shipped lines, backorders, and substitutions are all communicated via the 945, not the 940.

Interactive Example: 3PL 940 Shipping Order

This is a real brand-to-3PL 940 shape. Use the Plain English tab below for a human-readable translation, or Split View to see raw and parsed side by side. Click any segment to drill into it element-by-element.

Live example3PL WarehouseEDI 940

3PL 940 Warehouse Shipping Order

Brand-to-3PL shipping instruction with mixed eaches and case-pack lines, plus a requested ship-by date

Transaction Type
940 Transaction 940
Trading Partners
BRAND123 → WAREHOUSE456
Segments
21 segments
Validation
All checks passed
Ship To
ACME CUSTOMER INC
123 MAIN STREET, AUSTIN, TX, 78701
Buyer
BRAND COMPANY LLC
555 INNOVATION BLVD, SAN FRANCISCO, CA, 94107
Key Dates
Interchange: 2026-05-09
/ search navigateesc close

Raw EDI (X12)

1
ISA*00* *00* *ZZ*BRAND123 *ZZ*WAREHOUSE456 *260509*0900*U*00401*000000020*0*P*:~
2
GS*OW*BRAND123*WAREHOUSE456*20260509*0900*20*X*004010~
3
ST*940*0020~
4
W05*N*ORD-78901234*WHSE-001~
5
N1*ST*ACME CUSTOMER INC~
6
N3*123 MAIN STREET~
7
N4*AUSTIN*TX*78701*US~
8
N1*BY*BRAND COMPANY LLC*92*BRAND123~
9
N3*555 INNOVATION BLVD~
10
N4*SAN FRANCISCO*CA*94107~
11
G62*10*20260512~
12
LX*1~
13
W01*12*EA*UPC*012345678905***VN*BRAND-SKU-001~
14
G69*Performance Tee Black Medium~
15
LX*2~
16
W01*4*CA*UPC*012345678912***VN*BRAND-SKU-002~
17
G69*Performance Tee White Large Case of 12~
18
W76*16~
19
SE*14*0020~
20
GE*1*20~
21
IEA*1*000000020~

Human-Readable

Interchange

Sender ID(ZZ)BRAND123
Receiver ID(ZZ)WAREHOUSE456
Date260509
Time0900
Control Number000000020
Acknowledgment RequestedNo

Functional Group

Functional IDOWOW
SenderBRAND123
ReceiverWAREHOUSE456
Date20260509
Time0900
Control Number20
Transactions1

Transaction 940

Transaction 940
Transaction Type940
Control Number0020
Segments15
W05W05
N1Party Identification
N3Party Location
N4Geographic Location
N1Party Identification
N3Party Location
N4Geographic Location
G62G62
LXLX
W01W01
G69G69
LXLX
W01W01
G69G69
W76W76
1 functional group1 transactionControl #000000020Valid

The example above ships 12 eaches of UPC 012345678905 and 4 cases of UPC 012345678912 to Acme Customer in Austin TX against depositor order number ORD-78901234, with a requested ship-by date of 2026-05-12.

Interactive Example: Sysco Foodservice 940

Sysco and other foodservice distributors use the 940 to route restaurant-bound shipments through their DC network. The 940 carries cold-chain temperature requirements via TD5 segments and references the receiving restaurant directly as the ship-to.

Live exampleSyscoEDI 940

Sysco 940 Foodservice Routing

Sysco-style 940 with carrier mandate, refrigerated TD5, multi-line cold-chain shipment, and DC-to-restaurant routing

Transaction Type
940 Transaction 940
Trading Partners
SYSCO → WAREHOUSE456
Segments
26 segments
Validation
All checks passed
Ship To
BUONA SERA RISTORANTE
450 RESTAURANT ROW, PHILADELPHIA, PA, 19103
Buyer
SYSCO CORPORATION
1390 ENCLAVE PARKWAY, HOUSTON, TX, 77077
Key Dates
Interchange: 2026-05-09
/ search navigateesc close

Raw EDI (X12)

1
ISA*00* *00* *ZZ*SYSCO *ZZ*WAREHOUSE456 *260509*0915*U*00401*000000024*0*P*:~
2
GS*OW*SYSCO*WAREHOUSE456*20260509*0915*24*X*004010~
3
ST*940*0024~
4
W05*N*SYS-ORD-44521*WHSE-SYSCO-001~
5
N1*ST*BUONA SERA RISTORANTE~
6
N3*450 RESTAURANT ROW~
7
N4*PHILADELPHIA*PA*19103~
8
N1*BY*SYSCO CORPORATION*92*SYSCO~
9
N3*1390 ENCLAVE PARKWAY~
10
N4*HOUSTON*TX*77077~
11
G62*10*20260511~
12
G62*64*20260510~
13
TD5*O*2*PFG*M*REFRIGERATED 34F~
14
LX*1~
15
W01*8*CA*UPC*034567812340***VN*PROD-CHK-BREAST~
16
G69*Boneless Chicken Breast 4oz Case of 40~
17
LX*2~
18
W01*4*CA*UPC*034567812357***VN*PROD-MOZ-FRESH~
19
G69*Fresh Mozzarella 1lb Case of 12~
20
LX*3~
21
W01*2*CA*UPC*034567812364***VN*PROD-OLIVE-EXV~
22
G69*Extra Virgin Olive Oil 3L Case of 4~
23
W76*14~
24
SE*17*0024~
25
GE*1*24~
26
IEA*1*000000024~

Human-Readable

Interchange

Sender ID(ZZ)SYSCO
Receiver ID(ZZ)WAREHOUSE456
Date260509
Time0915
Control Number000000024
Acknowledgment RequestedNo

Functional Group

Functional IDOWOW
SenderSYSCO
ReceiverWAREHOUSE456
Date20260509
Time0915
Control Number24
Transactions1

Transaction 940

Transaction 940
Transaction Type940
Control Number0024
Segments20
W05W05
N1Party Identification
N3Party Location
N4Geographic Location
N1Party Identification
N3Party Location
N4Geographic Location
G62G62
G62G62
TD5Carrier Details
LXLX
W01W01
G69G69
LXLX
W01W01
G69G69
LXLX
W01W01
G69G69
W76W76
1 functional group1 transactionControl #000000024Valid

The example above routes a refrigerated order (chicken breast, fresh mozzarella, olive oil) from a Sysco DC to a restaurant in Philadelphia with explicit 34°F temperature mandate and a Performance Food Group carrier override.

Interactive Example: DTC Brand Drop-Ship 940

Direct-to-consumer brands using a 3PL send a 940 per consumer order. The ship-to is the end customer's residential address, line counts are typically small (one or two items), and special handling instructions go in repeating G69 general note segments.

Live example3PL Drop-ShipEDI 940

DTC Brand 940 Drop-Ship to Consumer

Drop-ship 940 from a Shopify brand to a 3PL with consumer residential ship-to, single-item line, and gift-wrap special handling

Transaction Type
940 Transaction 940
Trading Partners
DTCBRAND → FULFILLMENT
Segments
21 segments
Validation
All checks passed
Ship To
JANE THOMPSON
1842 ELM STREET APT 3C, BROOKLYN, NY, 11201
Buyer
DTC BRAND CO
200 CANAL STREET, NEW YORK, NY, 10013
Key Dates
Interchange: 2026-05-09
/ search navigateesc close

Raw EDI (X12)

1
ISA*00* *00* *ZZ*DTCBRAND *ZZ*FULFILLMENT *260509*1045*U*00401*000000025*0*P*:~
2
GS*OW*DTCBRAND*FULFILLMENT*20260509*1045*25*X*004010~
3
ST*940*0025~
4
W05*N*SHOP-78554*FUL-DROP-001~
5
N1*ST*JANE THOMPSON~
6
N3*1842 ELM STREET APT 3C~
7
N4*BROOKLYN*NY*11201*US~
8
N1*BY*DTC BRAND CO*92*DTCBRAND~
9
N3*200 CANAL STREET~
10
N4*NEW YORK*NY*10013~
11
G62*10*20260510~
12
TD5**2*UPS*M*GROUND~
13
LX*1~
14
W01*1*EA*UPC*098765432101***VN*BRAND-CANDLE-SOY-09~
15
G69*Soy Candle Bergamot 9oz~
16
G69*GIFT WRAP REQUESTED PER ORDER NOTES~
17
G69*INCLUDE HANDWRITTEN NOTE: Happy Birthday Mom~
18
W76*1~
19
SE*15*0025~
20
GE*1*25~
21
IEA*1*000000025~

Human-Readable

Interchange

Sender ID(ZZ)DTCBRAND
Receiver ID(ZZ)FULFILLMENT
Date260509
Time1045
Control Number000000025
Acknowledgment RequestedNo

Functional Group

Functional IDOWOW
SenderDTCBRAND
ReceiverFULFILLMENT
Date20260509
Time1045
Control Number25
Transactions1

Transaction 940

Transaction 940
Transaction Type940
Control Number0025
Segments15
W05W05
N1Party Identification
N3Party Location
N4Geographic Location
N1Party Identification
N3Party Location
N4Geographic Location
G62G62
TD5Carrier Details
LXLX
W01W01
G69G69
G69G69
G69G69
W76W76
1 functional group1 transactionControl #000000025Valid

The example above is a Shopify-sourced order for a single soy candle, drop-shipped to a residential Brooklyn address via UPS Ground, with gift-wrap and handwritten note instructions captured as freeform notes for the warehouse to fulfill.

Trading Partner Requirements

Most 3PLs accept a fairly standard 940 with minor variations. Common gotchas:

  • Carrier and service codes: Some 3PLs require the depositor to dictate the carrier (FedEx, UPS, USPS) and service level via TD5 segments. Others use shipping rules tables on the warehouse side.
  • Shipping date qualifiers: Use G62*10 for "must ship by" date, G62*64 for "do not ship before" date.
  • Hold codes: W05*Hold indicates a hold code on the order (credit hold, fraud check) — do not ship until released.
  • Special handling: Hazmat, signature required, gift wrap all carried in G69 general notes or MAN marking segments.

Implementation Best Practices

  1. Send the 940 immediately on order receipt — most 3PLs have a same-day cutoff time. Delays in sending the 940 push the shipment to the next day.
  2. Map cancellations carefully — a 940 with W05*Cancel cancels the order. Use this only for true cancellations, not order modifications. For modifications, use W05*Replace and resend the full corrected 940.
  3. Validate ship-to addresses upstream — 3PL systems reject 940s with malformed addresses. Run address validation in your order management system before sending.
  4. Match 945 quantities back to 940 line numbers — this is the only reliable way to detect short shipments, substitutions, and backorders programmatically.

Related Transaction Sets

Frequently Asked Questions

What is an EDI 940 used for? The 940 instructs a third-party warehouse or 3PL to ship a specific order. It contains the destination address, line items with quantities and UPCs, requested ship date, and any special handling instructions.

What is the difference between EDI 940 and EDI 945? The 940 is the shipping order (depositor → warehouse). The 945 is the shipping advice that confirms what actually shipped (warehouse → depositor). They form a request-response pair.

Do all 3PLs accept EDI 940? Most large 3PLs accept 940/945 pairs natively. Smaller 3PLs may require an EDI translation layer or accept CSV/API alternatives. OrderSync handles all three.

Can I send a 940 to my own warehouse? Yes. Many brands with internal warehouses still use 940/945 internally to standardize the shipping interface. This makes it trivial to swap in a 3PL later without changing the upstream order management system.

How quickly does the warehouse need to respond with a 945? Industry standard is same-day or next-business-day. SLAs vary by 3PL contract. Late or missing 945s break downstream ASN (856) timing to retailers.

Need Help With EDI 940?

OrderSync handles 940 generation, transmission, and 945 reconciliation across all major 3PLs. Connect your order source (Shopify, NetSuite, custom ERP) and your warehouse, and the 940/945 pair flows automatically with full audit trail.

Try the free EDI Inspector to parse and validate your 940 samples.

James Darby
Last updated: 5/9/2026