A 3PL that can already ship, and a customer asking for 940 and 945
Take a hypothetical 3PL running a mid-size fulfillment operation, not a published case study. It already does the hard part of shipping well: it shops across carriers, buys labels, prints them at the pack station, and returns a tracking number to the customer's storefront within minutes of a shipment leaving the dock. By any reasonable definition, this warehouse is shipping.
Then a new customer onboards, and their integration pack asks for two documents: a 940 and a 945. X12 defines the 940 as a Warehouse Shipping Order, the instruction a customer sends to a warehouse to ship goods (X12 940 overview). The 945 is a Warehouse Shipping Advice, the message the warehouse sends back to confirm that goods have shipped, carrying both the quantity ordered and the quantity actually shipped (X12 945 overview). Neither is about labels, rates, or tracking numbers. They are about the customer's process: what they told you to do, and what you confirm you did.
That is where the question usually gets asked in the wrong form: do we need EDI or an API. The team's real questions are narrower and more useful. Which link in the chain is missing, who is responsible for supplying it, and how will we prove the loop closed rather than that our software returned a success code.
One boundary before going further, because it prevents wasted work: which documents a partner exchanges, at which version, with which fields, and by which cutoff, is confirmed partner by partner. There is no universal document set every 3PL must adopt, and no outside vendor can tell you what your customer's receiving process will accept. This guide is about how to decide, not about how to test API calls, and the testing side lives in a separate guide on WMS and shipping API integration testing.






