# 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](https://x12.org/) 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:

| Segment | Purpose | Example |
|---|---|---|
| `W05` | Header — depositor order number, purpose code, internal reference | `W05*N*123456*ORDER789` |
| `LX` | Line group — assigns line numbers within the shipment | `LX*1` |
| `W01` | Item detail — quantity, UOM, item identifier (UPC/SKU), customer item ID | `W01*12*EA*UPC*012345678905` |
| `N1` / `N3` / `N4` | Ship-to and other party addresses (stores, customers, drop-ship destinations) | `N1*ST*Customer Name~N3*123 Main St~N4*Austin*TX*78701` |
| `W76` | Total quantity summary — closes the loop on what was instructed | `W76*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.

<EDISample id="940-3pl-basic" />

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.

<EDISample id="940-sysco-foodservice" />

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.

<EDISample id="940-dropship-consumer" />

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

- [EDI 945 Warehouse Shipping Advice](/guides/edi/945-warehouse-shipping-advice) — The 3PL's response confirming what actually shipped
- [EDI 850 Purchase Order](/guides/edi/850-purchase-order) — The retailer-side PO that often triggers a downstream 940 to your warehouse
- [EDI 856 Ship Notice](/guides/edi/856-ship-notice) — The ASN you send to the retailer once the 945 confirms shipment
- [EDI 944 Warehouse Stock Transfer Receipt](https://x12.org/products/transaction-sets) — The 944 confirms inventory receipts at the warehouse, the inverse direction

## 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](/edi-inspector) to parse and validate your 940 samples.
