945 Warehouse Shipping Advice
Receive shipment confirmations with tracking numbers, carton data, and lot assignments
The 945 Warehouse Shipping Advice is an inbound EDI transaction that confirms your 3PL has shipped an order. When your 3PL sends a 945, the connector creates an Item Fulfillment in NetSuite with full carton details, tracking numbers, and lot/serial number assignments.
The 945 is the most feature-rich inbound 900-series transaction — it handles not just quantity confirmation, but also carton-level packing data, SSCC-18 identifiers, carrier tracking, and lot traceability.
When Does a 945 Arrive?
A 945 is sent by your 3PL after they pick, pack, and ship an order. This is the inbound counterpart to the 940 Warehouse Shipping Order — the 940 says "please ship this," and the 945 says "we shipped it, here's what we packed and the tracking numbers."
Data Flow
940 sent to 3PL (shipping instructions)
→ 3PL picks, packs, and ships
→ 3PL sends 945 to Orderful
→ Orderful delivers 945 to NetSuite connector
→ Connector matches 945 to original Sales Order or Transfer Order
→ Item Fulfillment created with:
- Shipped quantities per line
- Carton records with SSCC-18 and tracking numbers
- Lot/serial number assignments (if applicable)
→ Fulfillment status set to "Shipped"
What the Connector Does
When a 945 is received, the connector processes it in two phases:
Phase 1: Map to Business Data Object (BDO)
- Extracts the order reference — looks for the Depositor Order Number or Purchase Order Number in the 945 header
- Looks up the original order — finds the Sales Order or Transfer Order in NetSuite
- Processes each LX loop (one LX per carton/shipment group):
- Extracts SSCC-18 and tracking numbers from the Marks and Numbers segment
- Processes each W12 loop (item detail within the carton):
- Matches items to the original order using vendor number, UPC, or PO line reference
- Extracts quantities and units of measure
- Extracts lot/serial numbers from extended reference information (Lot qualifier)
- Builds a carton record linking items to their packed quantities
- Aggregates items — if the same item appears in multiple LX loops (multiple cartons), quantities are summed
- Handles unshipped items — any order line items not present in the 945 are set to a shipped quantity of zero on the fulfillment
- Validates — confirms shipped quantities don't exceed ordered quantities
Phase 2: Create Item Fulfillment
- Transforms the original order into an Item Fulfillment record
- Sets ship status to "Packed" temporarily (prevents premature outbound processing)
- Updates line items on the fulfillment:
- Sets
itemreceiveto true for each matched line - Updates quantity to the shipped quantity from the 945
- For lot-numbered items: writes lot assignments to the inventory detail subrecord
- Sets
- Creates carton records linked to the Item Fulfillment with SSCC-18 and tracking data
- Sets ship status to "Shipped" — this triggers any downstream outbound processing (e.g., generating an 856 ASN)
Line Item Matching
Same as other inbound 900-series transactions — the connector matches each W12 item to a line on the original order:
| 945 Identifier | Qualifier | Matches To |
|---|---|---|
| Product Service ID | Vendor Number | Item's Vendor Item Number in NetSuite |
| Product Service ID | UPC | Item's UPC Code in NetSuite |
| Product Service ID | Purchase Order Line Ref | Line number on the original order |
Message Structure (Inbound)
Header
| 945 Element | Used For | Notes |
|---|---|---|
| Depositor Order Number | Order lookup | Primary reference to find the Sales Order or Transfer Order |
| Purchase Order Number | Order lookup (fallback) | Used if Depositor Order Number is not present |
Carton/Shipment Groups (LX Loop)
Each LX loop represents a carton, pallet, or shipment group. The loop contains:
Marks and Numbers (per LX)
| 945 Element | Qualifier | Maps To | Notes |
|---|---|---|---|
| Marks and Numbers | SSCC-18 and Application Identifier | Carton SSCC | The unique carton identifier |
| Marks and Numbers | Carrier Assigned Package ID | Tracking Number | Carrier tracking number for this carton |
Item Details (W12 Loop, nested within LX)
Each W12 within an LX represents one item packed in that carton:
| 945 Element | Maps To | Notes |
|---|---|---|
| Product Service ID + Qualifier | Item matching | See matching table above |
| Quantity | Shipped quantity | Number of units of this item in this carton |
| Unit of Measure | UOM | |
| UPC Case Code | Case UPC | |
| Free-Form Description | Line description | |
| Case Pack Size | Pack | |
| Extended Reference (Lot qualifier) | Lot/serial number | Assigned to inventory detail subrecord |
Lot/Serial Number Handling
If items are lot-numbered or serial-numbered in NetSuite, the connector writes lot assignments from the 945 into the Item Fulfillment's inventory detail subrecord:
- Lot numbers are extracted from the W12 extended reference information (Reference Qualifier =
Lot) - Each lot number gets an inventory assignment line with the lot's quantity
- Lot information is also stored in a custom field on the fulfillment line for reporting
Note: For lot assignment to work, the item must be configured as a Lot Numbered item in NetSuite. If the item is not lot-numbered, the lot data from the 945 is stored in the custom field but not written to inventory detail.
Configuration
Enabling 945 Processing
- Open the relevant Customer or Vendor record
- Go to the Orderful subtab > Enabled Transaction Types
- Add a line for 945 - Warehouse Shipping Advice
- Configure:
- Test Mode — process 945s from the TEST stream
No additional 945-specific configuration is required beyond the standard enabled transaction type setup.
Item Requirements
Items must have identifiers matching what your 3PL sends:
- Vendor Item Number and/or UPC Code — at least one must match the 3PL's product service IDs
- Lot Numbered item type — if you need lot tracking from the 945
Validation Rules
| Rule | What Happens |
|---|---|
| Shipped quantity exceeds ordered quantity | Error logged — the line is flagged |
| Item not found on original order | Error logged — the line is skipped |
| Original order not found | Processing fails — no Item Fulfillment is created |
Troubleshooting
Item Fulfillment Not Created
| Check | How to Fix |
|---|---|
| 945 not enabled | Enable 945 on the Customer or Vendor's Enabled Transaction Types |
| Order reference doesn't match | Verify the Depositor Order Number or Purchase Order Number matches a Sales Order or Transfer Order in NetSuite |
| Sales Order not approved | The order must be in "Pending Fulfillment" status for a fulfillment to be created |
| Order already fully fulfilled | If all lines are already fulfilled, a new fulfillment can't be created |
Tracking Numbers Not Appearing
| Check | How to Fix |
|---|---|
| Wrong qualifier in 945 | Tracking numbers must use the Carrier Assigned Package ID qualifier in the Marks and Numbers segment |
| SSCC-18 present but no tracking | SSCC-18 and tracking numbers are separate fields — your 3PL needs to send both if you need carrier tracking |
Lot Numbers Not Assigned
| Check | How to Fix |
|---|---|
| Item not lot-numbered | The item must be configured as a Lot Numbered item type in NetSuite |
| Wrong qualifier in 945 | Lot numbers must use the Lot reference qualifier in the W12 extended reference information |
| Lot data in custom field but not inventory detail | This happens when the item isn't lot-numbered — lot info is stored for reference but not formally assigned |
Cartons Not Created
| Check | How to Fix |
|---|---|
| No SSCC-18 in 945 | Carton records require an SSCC-18 identifier from the Marks and Numbers segment |
| LX loop structure issues | Each carton should be its own LX loop with Marks and Numbers followed by W12 item details |
Error Messages
| Error | Meaning | Solution |
|---|---|---|
| "Could not find related Sales Order / Transfer Order" | Order reference doesn't match anything in NetSuite | Verify the Depositor Order Number with your 3PL |
| "No matching line items" | None of the items in the 945 could be matched to the original order | Check item identifiers (UPC, vendor number) |
| "Shipped quantity exceeds ordered quantity" | 3PL reported shipping more than ordered | Verify with your 3PL |
What's Next
- 940 Warehouse Shipping Order — The outbound instruction that triggers a 945 response
- 947 Warehouse Inventory Adjustment Advice — For inventory adjustments rather than shipment confirmations
- 3PLs and 900-Series Overview — Back to the overview
Updated 20 days ago
