INVRPT — EDIFACT Inventory Report Message (D.16B)
The INVRPT message is the periodic inventory report sent by a stock holder (warehouse, point of sale, logistics platform) to a manufacturer or central buyer: it carries stock levels per item and per location, inbound and outbound movements, recalls of available quantity and stockouts. It is central to VMI (Vendor Managed Inventory) and co-managed inventory schemes. This page summarises the segment structure as published by UN/CEFACT for directory D.16B.
Purpose
The INVRPT message is the periodic inventory report sent by a stock holder (warehouse, point of sale, logistics platform) to a manufacturer or central buyer: it carries stock levels per item and per location, inbound and outbound movements, recalls of available quantity and stockouts. It is central to VMI (Vendor Managed Inventory) and co-managed inventory schemes.
This page focuses on the structure published by UN/CEFACT for directory D.16B. The segments listed, their status (M / C), position and repetition factor are extracted from the official file invrpt_c.htm hosted on service.unece.org.
Segment structure
The INVRPT D.16B message has 19 header entries, 58 detail entries and 0 summary entries (segments and groups combined). Groups are shown in bold and their members are indented by actual nesting depth.
Header
| Pos. | Tag | Name | S | Rep. |
|---|---|---|---|---|
00010 | UNH | Message header | M | 1 |
00020 | BGM | Beginning of message | M | 1 |
00030 | FTX | Free text | C | ×99 |
00040 | DTM | Date/time/period | M | ×10 |
00050 | SG1 | Group (×10) | C | ×10 |
00060 | RFF | Reference | M | 1 |
00070 | DTM | Date/time/period | C | 1 |
00080 | SG2 | Group (×20) | C | ×20 |
00090 | NAD | Name and address | M | 1 |
00100 | LOC | Place/location identification | C | ×5 |
00110 | SG3 | Group (×99) | C | ×99 |
00120 | RFF | Reference | M | 1 |
00130 | DTM | Date/time/period | C | 1 |
00140 | SG4 | Group (×10) | C | ×10 |
00150 | CTA | Contact information | M | 1 |
00160 | COM | Communication contact | C | ×5 |
00170 | SG5 | Group (×5) | C | ×5 |
00180 | CUX | Currencies | M | 1 |
00190 | DTM | Date/time/period | C | 1 |
Detail
| Pos. | Tag | Name | S | Rep. |
|---|---|---|---|---|
00200 | SG6 | Group (×9999) | C | ×9999 |
00210 | CPS | Consignment packing sequence | M | 1 |
00220 | SG7 | Group (×999) | C | ×999 |
00230 | PAC | Package | M | 1 |
00240 | PCI | Package identification | C | ×1000 |
00250 | SG8 | Group (×9999) | C | ×9999 |
00260 | QTY | Quantity | M | 1 |
00270 | GIN | Goods identity number | C | ×9999 |
00280 | DTM | Date/time/period | C | ×5 |
00290 | SG9 | Group (×9999999) | C | ×9999999 |
00300 | LIN | Line item | M | 1 |
00310 | PIA | Additional product id | C | ×10 |
00320 | IMD | Item description | C | ×10 |
00330 | NAD | Name and address | C | 1 |
00340 | MEA | Measurements | C | ×10 |
00350 | ALI | Additional information | C | ×10 |
00360 | LOC | Place/location identification | C | ×5 |
00370 | DTM | Date/time/period | C | ×5 |
00380 | FTX | Free text | C | ×99 |
00390 | SG10 | Group (×10) | C | ×10 |
00400 | RFF | Reference | M | 1 |
00410 | DTM | Date/time/period | C | 1 |
00420 | SG11 | Group (×1) | C | 1 |
00430 | CTA | Contact information | M | 1 |
00440 | COM | Communication contact | C | ×9 |
00450 | SG12 | Group (×9999) | C | ×9999 |
00460 | INV | Inventory management related details | M | 1 |
00470 | QTY | Quantity | M | ×9 |
00480 | GIN | Goods identity number | C | ×9999 |
00490 | LOC | Place/location identification | C | ×5 |
00500 | DTM | Date/time/period | C | ×5 |
00510 | STS | Status | C | ×9 |
00520 | FTX | Free text | C | ×9 |
00530 | SG13 | Group (×5) | C | ×5 |
00540 | NAD | Name and address | M | 1 |
00550 | LOC | Place/location identification | C | 1 |
00560 | SG14 | Group (×5) | C | ×5 |
00570 | PRI | Price details | M | 1 |
00580 | CUX | Currencies | C | 1 |
00590 | DTM | Date/time/period | C | 1 |
00600 | SG15 | Group (×10) | C | ×10 |
00610 | RFF | Reference | M | 1 |
00620 | DTM | Date/time/period | C | 1 |
00630 | SG16 | Group (×9999) | C | ×9999 |
00640 | CPS | Consignment packing sequence | M | 1 |
00650 | SG17 | Group (×9999) | C | ×9999 |
00660 | PAC | Package | M | 1 |
00670 | MEA | Measurements | C | ×10 |
00680 | QTY | Quantity | C | ×10 |
00690 | SG18 | Group (×9999) | C | ×9999 |
00700 | PCI | Package identification | M | 1 |
00710 | RFF | Reference | C | 1 |
00720 | DTM | Date/time/period | C | ×5 |
00730 | GIN | Goods identity number | C | ×9999 |
00740 | SG19 | Group (×99) | C | ×99 |
00750 | GIR | Related identification numbers | M | 1 |
00760 | DTM | Date/time/period | C | ×5 |
00770 | UNT | Message trailer | M | 1 |
Summary
No segment in this section.
Changes vs D.96A
Top-level differences between D.96A and D.16B for the INVRPT message (segments directly inside header / detail / summary, ignoring nested groups). The comparison is indicative: a given tag may have evolved inside nested groups without showing up in this synthesis.
Segments added vs D.96A
FTXin the header section (status C, repeat ×99) — not present at the top of the corresponding D.96A section.FTXin the detail section (status C, repeat ×99) — not present at the top of the corresponding D.96A section.CTAin the detail section (status M, repeat ×1) — not present at the top of the corresponding D.96A section.COMin the detail section (status C, repeat ×9) — not present at the top of the corresponding D.96A section.GIRin the detail section (status M, repeat ×1) — not present at the top of the corresponding D.96A section.
Status changes (M ↔ C)
NAD(detail): status M in D.96A → C in D.16B.INV(detail): status C in D.96A → M in D.16B.
Structural example
Minimal example of an INVRPT D.16B message with mandatory segments only. The goal is to show the exact version declared in UNH (INVRPT:D:16B:UN) — not to replicate a full business case (see the INVRPT D.96A page for an annotated example).
UNB+UNOC:3+5410000000123:14+5410000000456:14+260514:1430+CTRL016001'
UNH+1+INVRPT:D:16B:UN'
BGM+33+INVRPT-2026-05-13+9'
DTM+137:20260514:102'
DTM+90:20260513:102'
NAD+MS+5410000000456::9'
NAD+MR+5410000000123::9'
LOC+18+FRPAR01::ZZZ'
CPS+1'
LIN+1++3520000001234:EN'
QTY+145:850'
DTM+209:20260513:102'
UNT+12+1'
UNZ+1+CTRL016001' Common errors
- Misaligned UNH tokens — The
UNH+...+INVRPT:D:16B:UNtoken must reflect exactly the directory in use — a mismatch between the UNH release and the release agreed with the partner is rejected by every strict validator. - Wrong UNT segment count — The value after
UNT+must include UNH and UNT themselves. By far the most common sender-side error, regardless of the directory in use. - Stale code lists — Between D.96A and D.16B, several code lists received new qualifiers (DTM status, RFF qualifier, NAD codes…). Reusing an older directory’s code tables triggers warnings or even rejections depending on the partner’s strict-conformance mode.
Related messages
Other versions of this message available on ediverse.io: INVRPT D.96A, INVRPT D.01B, INVRPT D.10A, INVRPT D.21B, INVRPT D.24A, INVRPT D.97A, INVRPT D.99B, INVRPT D.00B, INVRPT D.02B, INVRPT D.05A, INVRPT D.08A, INVRPT D.13B, INVRPT D.18B, INVRPT D.20B.
X12 functional equivalent: X12 846.