Contract Warehousing vs a 3PL: Dedicated or Shared Space
Contract warehousing is a multi-year deal for space, staff and systems run for one company. How it differs from a shared 3PL, and which one fits.
Choosing a 3PLNovember 1, 202610 min read

Our glossary defines electronic data interchange (EDI) and X12, which publishes the numbered transaction sets that make up the documents below. This guide is for a brand that sells to retailers or wholesalers through a 3PL: which documents pass between you, your 3PL and each retailer, what each one carries, what a late or wrong one costs, and what to ask a 3PL before you sign. It draws on X12's own definitions, retailers' published EDI requirements and the EDI support shown on 3PLs' Fulfill.com profiles.
Each of these EDI documents is an X12 transaction set with a number and a name. With a 3PL in the middle, they fall into three groups: stock going into the warehouse, each retail order going out, and stock levels. The diagram shows who sends each one.

The 940, 945, 943 and 944 are warehouse documents: X12 writes them between a warehouse and a depositor, which in a 3PL setup is you. The retailer is not a party to them. What the retailer sees is its own 850 purchase order, the 856 ship notice, the 846 if it takes inventory feeds, and your invoice, the 810.
| Set | X12 name | From | To |
|---|---|---|---|
| 850 | Purchase Order | Retailer | You |
| 940 | Warehouse Shipping Order | You | Your 3PL |
| 945 | Warehouse Shipping Advice | Your 3PL | You |
| 856 | Ship Notice/Manifest | You, built from the 3PL's pack data | Retailer |
| 943 | Warehouse Stock Transfer Shipment Advice | You | Your 3PL |
| 944 | Warehouse Stock Transfer Receipt Advice | Your 3PL | You |
| 947 | Warehouse Inventory Adjustment Advice | Either side | The other side |
| 846 | Inventory Inquiry/Advice | Your 3PL, or you | You, or a retailer |
| 997 | Functional Acknowledgment | Whoever received a document | Its sender |
X12 defines the 940 as the document a depositor uses to advise a warehouse to make a shipment, confirm a shipment, or modify or cancel a shipping order it sent earlier. You are the depositor: the goods in the 3PL's building are yours, and the 940 is how an order reaches the 3PL by EDI.
A retailer's 850 purchase order is addressed to you, its supplier, not to your warehouse, so your order system or an EDI platform working for you turns each one into a 940 for the 3PL. The retailer's details have to survive that step. CVS's 2026 ASN guide maps fields from its 850 straight into the 856, from the PO number and date to the ship-to location, the UPC and the case pack. A detail dropped between the 850 and the 940 comes back later as a wrong 856.
The 945 goes the other way. X12 says the warehouse uses it to advise the depositor that a shipment was made, and that it is used to reconcile order quantities with shipment quantities. If the 3PL shipped less than the 940 asked for, the 945 is where you see it.
When your own system sends the retailer's 856 and your 810 invoice, it needs the shipment details the 945 reports. So the time your 3PL takes to send a 945 after a truck leaves sets how soon you can send both.
X12 defines the 856, the ship notice/manifest, as a list of the contents of a shipment with the information around it: order information, product description, physical characteristics, type of packaging, marking, carrier information and how the goods are configured within the transportation equipment. Retailers also call it the advance ship notice, or ASN: Kroger's EDI guide uses the two names interchangeably.
X12 makes the sender the organization responsible for detailing and communicating the contents of a shipment. The retailer holds its supplier, you, to that: CVS's February 2026 supplemental guide opens with an ASN mandate for all suppliers sending shipments into its distribution centers. But only the warehouse knows what went into each carton and onto each pallet, so the 856 is built from your 3PL's pack data, whoever transmits it.
That pack data includes the labels. CVS's guide asks for one unique SSCC bar code per pallet, or one per carton on small parcel shipments. GS1 describes the SSCC as the number that identifies a logistic unit, such as a case, pallet or parcel. The SSCCs in the 856 are the ones on the labels your 3PL applies, so the label work and the 856 need one owner.
Retailers set their own clocks for the 856. Kroger's EDI portal asks suppliers to send the ASN quickly enough after the truck is loaded that it is in Kroger's system before the truck arrives. CVS charges a late fee when the ASN is not received one calendar day before it receives the shipment, with exceptions only for same-day ship and receive. Your retailer's routing guide and EDI guide set the rule you are held to.
Retailers enforce these rules with chargebacks. Two schedules published for 2026 show the scale:
Those charges land on you as the supplier, even when the error happened on your 3PL's dock: CVS's guide puts the responsibility for correct data on its suppliers. Whether you can pass a chargeback back to the 3PL is a question for your contract, which is why it is on the list below. Our glossary covers vendor compliance programs more broadly.
Inbound stock has its own pair. X12's 943, the warehouse stock transfer shipment advice, lets a depositor tell a receiving location that a transfer shipment has been made, with detail on the product being shipped to it. The 944, the warehouse stock transfer receipt advice, is the receiving location's report back to the depositor on the product it received.
Read together, the two show a short or over shipment from your factory or supplier before it turns into a stock count you cannot explain. The 947, the warehouse inventory adjustment advice, covers what happens after receiving: X12 describes it as notice of a quantity or status change to inventory records, the internal adjustments between a warehouse and a depositor.
X12 lists four uses for the 846, the inventory inquiry/advice. Two matter here. A representative of a seller can use it to supply inventory information to that seller, which is your 3PL reporting stock to you. A seller can use it to give inventory information to a prospective purchaser, with no obligation to buy, which is you reporting available stock to a retailer.
The two need not carry the same number. The 3PL counts what is in its building; what you offer a retailer may hold some of that back for other channels. That is a reason to send the retailer's 846 from your own system rather than straight from the warehouse.
Retailers publish their own guide for each transaction set, down to the segments they expect, and test you against it. Kroger's portal, for example, says a vendor must meet the Kroger EDI 856 standard before implementation moves from test to production. Fitting your data to each guide is EDI mapping.
Two kinds of acknowledgment come back. X12's 997 functional acknowledgment reports the results of the syntax check on a document, and the standard does not cover what the data means. CVS returns a 997 as accepted or rejected and uses a separate document, the 824 application advice, for errors and missing segments. A 997 that says accepted is not proof the retailer can use the data.
The documents travel over a direct connection or through a network: Kroger's EDI portal, for example, has a request form for AS2 connections and a page listing VANs and providers. A brand can also hand the connections, maps and tests to an EDI provider or an order platform. If the order system itself is still an open question, our guide to ecommerce order management covers how one connects your channels to a 3PL.
Fulfill.com partner Pipe17 is one order platform that offers this. Its own site describes a managed EDI service that runs the connection for each retailer program and sends the 940 shipping request to the 3PL's warehouse, with the 945 confirmation coming back:
On November 2, 2026, 843 of the 2,701 3PL profiles active on Fulfill.com (31.2%) listed EDI support, which shows as an EDI entry in a profile's Technology and Integrations section.
The share climbs with the channels that trade EDI. Among profiles that show each sales channel, the share that also show EDI support runs from 36.4% for Shopify to 64.3% for B2B retail:

That is 277 of 431 for B2B retail, 185 of 344 (53.8%) for B2B wholesale, 184 of 474 (38.8%) for Walmart, 370 of 1,006 (36.8%) for Amazon and 362 of 994 for Shopify. Among profiles that show retail fulfillment as a capability, 46.0% show EDI support (487 of 1,058).
These shares count profile data, not every 3PL that can trade EDI. A missing EDI entry is a question to ask, not an answer. If you sell to retailers, start with B2B and retail fulfillment 3PLs, or with 3PLs for B2B and wholesale fulfillment if you sell to distributors.
A 3PL that already trades with your retailers has done their setup before. One that has not adds that setup to your launch.
Not necessarily. Retailers hold their supplier, you, to the EDI program. Your 3PL needs a reliable way to receive each order and report what shipped, by EDI or another connection, and the pack data to build each 856.
The 945 goes from the warehouse to you, to confirm that a shipment was made and reconcile it against the order. The 856 goes to the retailer and describes the shipment itself: its contents, packaging, marking and carrier.
No. A 997 reports whether the document passed a syntax check. A retailer can still reject the data for business reasons: CVS, for example, uses the 824 application advice for errors and missing segments.
It may. A missing EDI entry on a Fulfill.com profile is not a no. Ask which transaction sets and retailers it trades today.
Tell us your sales channels, the retailers you ship to and the documents they require, and we will match you with 3PLs that fit.
We read each source on November 2, 2026:
The network figures read the active 3PL profiles in the Fulfill.com network on November 2, 2026: the EDI support, sales channels and capabilities shown on each profile. The channel counts come from each profile's sales channel data, so a channel that shows only through an integration or an older tag is not counted. The partner card's description comes from Pipe17's own website.
Disclosure: Pipe17 is a Fulfill.com vendor partner. Fulfill.com is paid when readers click through to its website.
Insights on choosing a 3PL, evaluating fulfillment partners, and scaling your eCommerce operation, from the team behind Fulfill.com.
No spam, ever. You'll get our newsletter; unsubscribe anytime.
Contract warehousing is a multi-year deal for space, staff and systems run for one company. How it differs from a shared 3PL, and which one fits.
Choosing a 3PLNovember 1, 202610 min read
A 3PL is liable for lost or damaged stock if it failed to take reasonable care, up to your agreement's cap. What warehouse legal liability covers, and the gap.
Choosing a 3PLOctober 29, 20269 min read
Compare fulfillment center vs distribution center and warehouse roles. Choose the right facility for ecommerce orders, retail shipments or both.
Choosing a 3PLOctober 29, 20267 min read