Guide · EDI & Trading-Partner Onboarding

EDI 940 vs 945: what a 3PL actually needs to support

A depositor who moves stock into a third-party warehouse wants two things from it electronically: a way to say 'ship this', and a way to learn what shipped. In X12 those are the 940 and the 945, and a 3PL that handles the pair cleanly has done most of the EDI work its customers will ever ask of it. The rest of the warehouse set exists because inventory arrives as well as leaves, and because counts drift.

Published 4 October 2026 · From the 3PL & B2B logistics practice in Houston, Texas. Business hours, US Central; an engineer replies within one business day.

Two documents, one loop

The 940 comes from the depositor's order system. It names the ship-to, the carrier or service level, the wanted date, and the lines: item, quantity, unit of measure, sometimes lot or packing requirements. It is an instruction rather than a purchase order; the depositor already owns the goods and is saying where to send them.

The 945 goes back once the warehouse has picked, packed and loaded. It repeats the order identifiers so the depositor's system can match it, then adds what happened: quantity shipped per line, the carrier, the tracking or PRO number, the ship date, cartons and weights, and the SSCC of each carton or pallet when the depositor needs those for its own ASN downstream.

Between them the two close a loop. The 940 moves an order to 'released to warehouse'; the 945 moves it to 'shipped', which is what lets the depositor invoice its customer and send its own 856. Until the 945 lands, the depositor's system does not know the goods have gone, so a late 945 surfaces as a customer-service complaint before anyone thinks to call it an EDI problem.

What the 940 has to carry for the warehouse to act on it

  • A shipping order number and the depositor's identifier, so a multi-client warehouse can tell whose order it is
  • A ship-to the warehouse has on file, or the full address when it does not
  • A requested date, and which kind: ship by, deliver by, or do not ship before
  • A carrier and service, or an instruction to use the routing rules already agreed
  • Line detail in an identifier the warehouse recognises: its own SKU, a UPC, or the depositor's part number, with quantity and unit of measure
  • Special handling: lot or expiry rules, pack instructions, labels required, value-added work to do before it ships

The mapping question is never the segment names. It is which identifier the warehouse recognises, whether the depositor counts in eaches or cases, and what to do with a ship-to nobody has seen before. Settle those three on paper before the first test file and testing takes days; leave them to the test cycle and it takes weeks.

What the 945 has to say back

Everything the depositor needs to close the order and bill its customer: quantity shipped against each line, including short ships and substitutions; carrier and tracking; the ship date; and the physical packing, meaning cartons, weights, pallets and SSCCs. A depositor shipping into retail will build its 856 from your 945, so the carton hierarchy has to be right carton by carton, not only in the totals.

The quiet rule: a 945 reports what was shipped, not what was ordered. A warehouse system that echoes the 940 quantities back regardless produces a document that is always consistent and frequently wrong, and the depositor finds out at its customer's dock.

Where the mismatches come from

  • Unit of measure: a 940 in cases answered by a 945 in eaches, or the reverse, so the quantities agree and the numbers do not
  • Partial shipments: whether one 945 covers the whole order, and how a second shipment against the same order is numbered
  • Cancellations and changes: a replacement 940 arriving after the pick has started, with nothing in the file saying it replaces anything
  • Cross-references: an item code or a ship-to that exists in one system and not the other
  • Timing: a 945 sent when the wave closes rather than when the carrier collects, so 'shipped' runs hours ahead of the truck

Each of these is a decision the two parties make once, write into the partner's guide, and then forget. The 997 tells each side the file was readable; it says nothing about whether the quantities made sense. That is the job of a validation step before the file leaves.

The three that complete the set

Stock arrives as well as leaves, and counts drift, so the warehouse series has three more members. The 943 announces a transfer coming into the facility, the 944 confirms what was received against it, and the 947 reports adjustments after the fact: damage, shrink, found stock, count corrections. A 3PL running only the 940 and 945 still has to tell its depositors about receipts and adjustments somehow, and 'somehow' is usually a spreadsheet emailed on Friday.

The 846 inventory advice sits beside them for a depositor who sells from the warehouse's stock on a marketplace and needs on-hand figures on a schedule rather than on request.

What the warehouse system has to be able to do

Four things, in order of how often they are missing: hold a cross-reference table per client for items, ship-tos and carriers; produce the 945 from the pick and pack records rather than from the order; attach the packing hierarchy, meaning which carton holds which lines and which pallet holds which cartons, so an SSCC means something; and send the file on the right event, which is carrier pickup rather than pick completion.

When the warehouse system cannot do one of those, the fix is usually a thin layer beside it rather than a replacement: a small service that reads the system's database or its export and builds the 945 correctly. That is the shape of most of our EDI and trading-partner onboarding. The document table on the EDI integration page shows where the pair sits among the sets we map, and the glossary entry holds the one-paragraph definition.

Sources, so you can check the summary against the original: X12 transaction sets, including the 940 and 945 (X12).

Where this sits in the logistics practice

One row of our 3PL & B2B logistics software page does this work: EDI & Trading-Partner Onboarding. The page that goes deepest on it is EDI & B2B Integration, and the vocabulary is defined in the logistics and EDI glossary. Every engagement starts by mapping the actual path of one order through the systems you run.

More guides

Other questions this practice gets

EDI & Trading-Partner Onboarding

Why retail chargebacks happen and how to trace them to the file

A deduction is a symptom. The cause is in the ASN, the label, the acknowledgement log or the clock, and each one leaves evidence in a file you already have.

Read the guide →
EDI & Trading-Partner Onboarding

What it really takes to onboard a Walmart EDI connection

The weeks go to the test cycle, the labels and the ASN clock, not to the mapping. The order of work for a first Walmart connection, and what to have ready before it starts.

Read the guide →
EDI & Trading-Partner Onboarding

RosettaNet PIPs vs X12: which one your partner will demand

The standard is chosen by the customer, not the supplier. How a 3A4 lines up with an 850, what the RNIF envelope changes, and how to run both without building two order flows.

Read the guide →
Get in touch

Send a 940 and the 945 that answered it.

Two real files, identifiers masked if you prefer, and a note on which system produced each. You get back where the pair will break under the next depositor and what a check before the file leaves would have caught.

Prefer to talk?

Call 832-598-8234 or email msco@stoneagesoftware.com. Houston, Texas — serving Houston, The Woodlands, Conroe, Sugar Land, Katy, Pearland, and the Greater Houston metro.

What happens next

We read your message, an engineer replies with questions or a straight answer, and if a call would help, we book one. From the first reply on, you're talking to the people who'd do the work.

No obligation — we reply within one business day. This form sends your details to Stone Age Software LLC so we can respond to you. See our privacy policy for how we handle them. This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.