The EDI 947 explains why your inventory changed when nothing shipped or arrived. Receipts come in on the 944 and shipments go out on the 945. Everything else that moves the number (a pallet dropped by a forklift, a lot put on quality hold, a cycle count that finds two extra cases) arrives on a 947. Without it, your on-hand balance and the warehouse's drift apart, and you find out when an order cannot be filled.
This guide covers what the 947 carries, the reason codes that drive it, every segment you will map, a live example with increases and decreases, how it differs from the 846, and the errors that leave your books out of step with the warehouse floor.
What Is an EDI 947?
An EDI 947 is the Warehouse Inventory Adjustment Advice transaction set defined by the ASC X12 standards body. The warehouse sends it to the depositor (the inventory owner) to report adjustments to inventory levels or status that happen inside the warehouse. In the X12 envelope it travels in a functional group with the code AW in GS01.
Two points from the X12 definition shape how it is used. First, the adjustment types that are reported by EDI are set by agreement between the warehouse and the depositor, so no two 3PLs send exactly the same mix. Second, a 947 covers one storage location: a warehouse with adjustments in two buildings sends two 947s for the period, each listing only the products that changed.
Authoritative references for 947 work:
- The X12 transaction set catalog defines the 947 alongside the 940, 943, 944 and 945
- GS1 US governs the UPC case codes and GTINs that identify each adjusted item
- Your 3PL's 947 implementation guide and warehouse agreement list which adjustment reasons it reports, how often, and whether it reports status changes (holds) as well as quantity changes
Who sends it? The warehouse or 3PL, from its WMS.
Who receives it? The depositor, into its ERP or inventory system.
When is it sent? Either as each adjustment is posted, or in a batch per reporting period (often daily), depending on the agreement.
Why does it matter? The 846 Inventory Inquiry/Advice tells you what the warehouse has now. The 947 tells you why that differs from what you expected. Finance needs the reason to write off damage, file a claim or charge it back to the warehouse under the agreement, and customer service needs to know stock is on hold before it promises it.
Common Reasons for a 947
| Situation | Effect on available stock | Typical reason code (W1901) |
|---|---|---|
| Forklift or handling damage in the warehouse | Decrease | 02 Warehousing damage |
| Quality, regulatory or customer hold on a lot | Decrease (moved to hold) | 05 Product put on hold |
| Hold released | Increase | 55 Product taken off hold |
| Cycle count finds less than the system | Decrease | 06 Book adjustment decrease |
| Cycle count finds more than the system | Increase | 56 Book adjustment increase |
| Stock destroyed (expired, recalled, contaminated) | Decrease | 07 Product dumped or destroyed |
| Receipt was wrong and is corrected later | Decrease or increase | 04 / 54 Receipt less / greater than previously reported |
| Shipment was wrong and is corrected later | Decrease or increase | 03 / 53 Shipment greater / less than previously reported |
| Lost stock later found | Increase | 51 Unable-to-locate product located |
The codes in the 01 to 07 range are stock decreases and the codes in the 51 to 56 range are the matching increases. The quantity in W1902 is reported as a number of units, and the reason code says which way it moves. Your 3PL's guide lists the exact subset it uses, and some add qualifiers to say which stock bucket (available, damaged, hold) the adjustment applies to.
Interactive Example: Damage, Hold and Cycle Count (947)
A week after receiving the Boise transfer, the Reno 3PL reports three adjustments for the depositor's stock in one 947. W15 carries the date the report was created. N1*WH names the reporting warehouse, and G62*07 the effective date of the adjustments. Each W19 line gives a reason code, a quantity, a unit and the item; G69 holds the warehouse's free-text reason and N9*TN its transaction number.
- Line 1: 2 cases of granola damaged by a forklift (
02, a decrease) - Line 2: 4 cases of almond butter, lot
L2610B, put on QC hold (05, a decrease to available stock) - Line 3: 1 case of trail mix found in a cycle count (
56, an increase)
Use the Plain English tab for a readable summary, or click any segment to break it down element by element.
3PL 947 Inventory Adjustment Advice
The warehouse reports three adjustments to the depositor's stock: 2 cases damaged in the warehouse, 4 cases of one lot put on QC hold, and a 1-case cycle count overage
- Document
- 947 Warehouse Inventory Adjustment Advice
- From / to
- RIDGELINE3PL → NFPANTRY
- Segments
- 18
- Interchange date
- Nov 13, 2026
Raw EDI (X12)
Human-Readable
Interchange
Functional Group
Transaction 947
Warehouse Inventory Adjustment AdviceSegment Detail
947 Structure at a Glance
| Position | Segment | Name | Usage | Notes |
|---|---|---|---|---|
| Header | ST | Transaction Set Header | Mandatory | ST01 = 947 |
| Header | W15 | Warehouse Adjustment Identification | Mandatory | Report date and adjustment numbers |
| Header loop | N1 / N2 / N3 / N4 / PER | Name and address | Mandatory | The reporting warehouse, sometimes the depositor too |
| Header | N9 | Reference Identification | Optional | Extra references for the whole report |
| Header | G62 | Date/Time | Optional | Effective date of the adjustments |
| Header | NTE | Note/Special Instruction | Optional | Free-text notes |
| Detail loop | W19 | Warehouse Adjustment Item Detail | Mandatory, repeats | One per item adjustment: reason, quantity, unit, item IDs |
| Detail loop | G69 | Line Item Detail - Description | Optional | Free-text reason for the adjustment |
| Detail loop | N9 | Reference Identification | Optional | Warehouse transaction number, lot, stock status |
| Summary | SE | Transaction Set Trailer | Mandatory | Segment count and control number |
Unlike the 943 and 944, the 947 has no totals segment. Each W19 line stands on its own.
Key Segments Explained
W15: Warehouse Adjustment Identification
W15*20261113~
| Element | Name | Example | What it means |
|---|---|---|---|
| W1501 | Date | 20261113 | The date the report was created, as CCYYMMDD |
| W1502 | Adjustment Number | The warehouse's ID for this adjustment | |
| W1503 | Adjustment Number | The depositor's ID for this adjustment | |
| W1504 | Transaction Set Purpose Code | Original, replacement and so on, where the guide uses it |
W1502 and W1503 are a pair in the X12 syntax: if one is sent, the other must be too. That suits adjustments the depositor asked for (a hold it requested, for example) where both sides have a number. For routine adjustments the warehouse often leaves both blank and puts its own transaction number on each line in N9*TN, as in the example.
W19: Warehouse Adjustment Item Detail
W19*05*4*CA*086123450021*VN*NFP-ALB-16***L2610B~
| Element | Name | Example | What it means |
|---|---|---|---|
| W1901 | Quantity or Status Adjustment Reason Code | 05 | Why the stock changed, and in which direction. See the table above |
| W1902 | Credit/Debit Quantity | 4 | How many units were adjusted |
| W1903 | Unit of Measure | CA | The unit of W1902 |
| W1904 | UPC Case Code | 086123450021 | The 12-digit case-level UPC |
| W1905 | Product/Service ID Qualifier | VN | What the next element is. VN = vendor item number |
| W1906 | Product/Service ID | NFP-ALB-16 | Your item number |
| W1907 / W1908 | Second qualifier and ID | A second identifier, where needed | |
| W1909 | Warehouse Lot Number | L2610B | The lot affected |
Further elements carry weights (W1910 to W1915) and an inventory transaction type code (W1916) for warehouses that use them. Read the reason code before the quantity: a 4 with code 05 takes four cases out of available stock; the same 4 with code 55 puts them back.
G69 and N9: The Story Behind the Number
G69*QC HOLD REQUESTED BY DEPOSITOR~
N9*TN*WT-77121~
G69 is free text, and it is often the only place the warehouse says what actually happened. Keep it with the adjustment in your system; it is the first thing anyone asks for in a damage dispute. N9*TN carries the warehouse's transaction reference, which is what you quote back to the 3PL. Some guides also use an N9 to say which stock status (available, damaged, hold) the line applies to.
EDI 947 vs 846, 944 and 945
| Document | Sent by | What it tells you |
|---|---|---|
| 947 Warehouse Inventory Adjustment Advice | Warehouse | Each change to stock, with a reason |
| 846 Inventory Inquiry/Advice | Warehouse (or supplier) | The current balance, as a snapshot |
| 944 Warehouse Stock Transfer Receipt Advice | Warehouse | Stock received into the building |
| 945 Warehouse Shipping Advice | Warehouse | Stock shipped out against a 940 |
Think of the 846 as a bank balance and the 947 as the statement lines that are not deposits or withdrawals. You can run a 3PL relationship on the 846 alone and simply overwrite your balance every day, but you lose the reasons. That is fine for a small catalog. It is a problem for anyone who has to account for damage, track holds by lot, or hold a 3PL to an inventory accuracy clause.
A good reconciliation is simple to state: yesterday's balance plus 944 receipts, minus 945 shipments, plus or minus 947 adjustments, should equal today's 846. When it does not, one of the four documents is missing.
Where the 947 Sits in 3PL EDI
| Flow | Document | Direction |
|---|---|---|
| Inbound | 943 Stock Transfer Shipment Advice | Depositor to warehouse |
| Inbound | 944 Stock Transfer Receipt Advice | Warehouse to depositor |
| Outbound | 940 Warehouse Shipping Order | Depositor to warehouse |
| Outbound | 945 Warehouse Shipping Advice | Warehouse to depositor |
| Inventory | 846 Inventory Inquiry/Advice | Warehouse to depositor |
| Inventory | 947 Warehouse Inventory Adjustment Advice | Warehouse to depositor |
| All | 997 Functional Acknowledgment | Both ways |
For the full setup with a new 3PL, see our guide to 3PL EDI integration.
Common 947 Errors and How to Prevent Them
| Error | What happens | Prevention |
|---|---|---|
| Reason code direction ignored | A hold release posted as a second decrease | Map every reason code your 3PL uses to increase or decrease explicitly |
Negative quantity in W1902 | Double reversal, or the line rejected | Agree that quantities are positive and the reason code sets direction, unless the guide says otherwise |
| Holds posted as write-offs | Stock that will come back is written off, then reappears | Post hold codes to a hold location, not to scrap |
| Lot missing on a lot-specific hold | The whole item is blocked instead of one lot | Require W1909 or a lot N9 on hold and release lines |
| 947 not sent for a reason the 3PL treats as internal | 846 balance changes with no explanation | List in the agreement which adjustments must be reported |
| Unit of measure mismatch | Cases adjusted as eaches | Convert with a maintained item table, same as for 944s |
| Duplicate 947 | Adjustment applied twice | Deduplicate on the warehouse transaction number |
947 Implementation Checklist
- Get the 3PL's 947 guide and the exact list of reason codes it sends
- Map each reason code to an ERP adjustment type, a direction and a stock location (available, hold, damaged, scrap)
- Agree whether adjustments are sent as they happen or in a daily batch
- Agree how damage is charged under the warehouse agreement, and capture the warehouse transaction number for it
- Confirm lot reporting for holds, releases and destruction
- Build the daily reconciliation: opening balance, 944s, 945s, 947s, against the 846
- Test a decrease, an increase, a hold and its release, and a destruction
- Send a 997 for every 947
For the full list of X12 document numbers, see our EDI document types reference.
Handling 3PL and Order Data With OrderSync
Accurate inventory only pays off if the orders that consume it are entered correctly. For most distributors those orders arrive in every shape: EDI 850s from retailers, PDFs and emails from independents, spreadsheets from reps.
OrderSync reads those orders in any format, matches customers, items and units to your catalog, and outputs clean data to your ERP or valid X12. Paste any 947 into the free EDI inspector to see it parsed segment by segment with a plain-English summary, read about ERP integration, or book a 15-minute walkthrough to see your own orders processed.
Frequently Asked Questions
What is an EDI 947 used for?
The EDI 947 lets a warehouse tell the inventory owner that stock changed inside the warehouse for a reason other than a receipt or a shipment: damage, a hold, a hold release, destruction, or a correction after a cycle count. Each line carries the item, quantity and a reason code.
What is the 947 EDI document type?
The 947 is the X12 Warehouse Inventory Adjustment Advice, part of the warehouse series with the 940, 943, 944 and 945. It travels in a functional group with the code AW. It reports changes in quantity or status, not balances.
What does an EDI 947 example look like?
A typical 947 has a W15 header with the report date, an N1 naming the warehouse, a G62 effective date, then one W19 line per adjustment. For example, W19022*CA followed by the item's UPC case code and item number reports two cases lost to warehouse damage.
What is the difference between an EDI 947 and an EDI 846?
The 846 reports the current inventory balance as a snapshot. The 947 reports individual changes and the reason for each. The 846 tells you what you have; the 947 tells you why it changed. Many depositors use both and reconcile them daily.
How does an EDI 947 show an increase or a decrease?
Through the reason code in W1901. Codes 01 to 07 are decreases (for example 02 warehousing damage, 05 product put on hold) and codes 51 to 56 are increases (for example 55 product taken off hold, 56 book adjustment increase). The quantity in W1902 is the number of units adjusted.
What is the W19 segment in an EDI 947?
W19 is the Warehouse Adjustment Item Detail segment, one per adjusted item. W1901 is the reason code, W1902 the quantity, W1903 the unit of measure, W1904 the UPC case code, W1905 and W1906 an item ID qualifier and number, and W1909 the lot.
Does every 3PL send EDI 947s?
No. Some 3PLs only send an 846 and let the balance speak for itself. Others send 947s for every adjustment. Which adjustments are reported by EDI is a matter for the warehouse agreement, so ask before you sign rather than after the first unexplained write-off.