SLSRPT — Sales Data Report Message (D.96A)
SLSRPT transmits sales data tied to products or services: location, period, product identification, price, monetary amount, quantity, market-segment information, sales parties — for use in production, planning, marketing, or statistical analysis.
Purpose
Per the UN/CEFACT functional definition, SLSRPT is "a message to enable the transmission of sales data related to products or services". The intent is to provide, for one or more locations over a given period: location of the sale, period, product identification, selling price, quantity and value, additional identifications (promotion flag, product group/family), periodic turnover, sales channel, market segment, and sales-parties identification. It is typically sent by the seller (retailer or HQ) to a supplier or a third party — often a marketing institute for statistical analysis.
Segment structure
SLSRPT D.96A has two sections: a Header setting context (period, parties, currency) and a Detail built around the SG5 group, which describes sales per location with up to 200,000 repetitions.
Header
Mandatory header segments: UNH M , BGM M , and DTM M .
Header groups:
- SG1 (M, ×5) —
NADparty names and addresses (seller, recipient, per location when relevant). - SG2 (C, ×5) —
CTA + COMcontacts associated with parties. - SG3 (C, ×5) —
RFF + DTMreferences (contract, framework agreement). - SG4 (C, ×5) —
CUX + DTMcurrencies and reference date.
Detail (location and product lines)
The Detail lives entirely in SG5, a loop built around LOC M DTM , with two sub-groups:
- SG6 (C, ×99) —
RFF + DTMlocation-specific references. - SG7 (C, ×200,000) — a product loop built around
LIN M with
PIA ,
IMD ,
PAC ,
RFF ,
DOC ,
ALI ,
MOA ,
PRI , and
GIN .
Inside each line, an inner loop SG8 (C, ×999) bundlesQTY + MKS + NADto break down quantities per sales channel / segment / party.
The message closes with UNT M .
Mandatory / conditional
Strictly mandatory in every SLSRPT D.96A:
UNH,UNT— frame the message.BGM— report type and number (qualifier 74 = sales report).DTM— at least one header date (covered period).- SG1 NAD — at least one identified party (the supplier).
- SG5 LOC — at least one sales location in the Detail.
SG7 (product lines) is itself conditional at the standard level, but a report without LIN is operationally useless. Sector conventions (notably GS1 EANCOM SLSRPT) require at minimum one LIN with a GTIN, one QTY (qualifier 47 = sales quantity), and often a PRI.
Real-world example
Weekly sales report sent by a retailer (point of sale identified by GLN) to a musical instruments supplier, for week W19 2026:
UNB+UNOC:3+5410000000456:14+5410000000123:14+260513:0800+CTRL000077'
UNH+1+SLSRPT:D:96A:UN'
BGM+74+SLS-2026-W19+9'
DTM+90:20260504:102'
DTM+91:20260510:102'
NAD+SU+5410000000456::9'
RFF+ACE:CONTRACT-2025-Q4'
DTM+171:20251201:102'
CUX+2:EUR:9'
LOC+162+5410000000999::9'
DTM+90:20260504:102'
DTM+91:20260510:102'
LIN+1++3520000001234:EN'
IMD+F++:::Acoustic guitar, mahogany finish'
PIA+1+ACME-AG-100:SA'
ALI+++88'
PRI+AAA:849.00'
QTY+47:18'
QTY+61:1530'
MOA+86:15282.00'
LIN+2++3520000005678:EN'
IMD+F++:::Capo, spring loaded'
PRI+AAA:19.50'
QTY+47:142'
QTY+61:84'
MOA+86:2769.00'
UNT+25+1'
UNZ+1+CTRL000077' BGM+74+SLS-2026-W19+9— code 74 (sales report), number SLS-2026-W19, status 9 (Original).DTM+90— period start.DTM+91— period end.NAD+SU— Supplier.RFF+ACE— contract reference (ACE = Additional Customer Equivalent reference).CUX+2:EUR:9— reference currency for amounts (qualifier 2 = reference currency, 9 = ordering currency).LOC+162— sales location (qualifier 162 = place of sale), identified by GLN.- For each
LIN:QTY+47= sales quantity (sold over the period),QTY+61= on-hand quantity (stock). MOA+86— Message total amount (sale value over the period, net of taxes).UNT+25+1— 25 segments in the message.
Common errors
- SG5 without LOC — the Detail section must always open with a LOC qualifier 162. Jumping straight to LIN without LOC context is rejected.
- QTY qualifier mismatch — 47 = sales quantity, 61 = on-hand, 25 = ordered quantity. Mixing these silently breaks downstream analytics.
- Wrong DTM period qualifier — 90/91 = period start/end. Using 137 (document date) instead loses the period semantics.
- Missing GTIN in LIN[3] — most subsets require a GTIN-13 or GTIN-14 in composite C212. An internal reference without GTIN is usually rejected by research institutes.
- NAD per location outside SG8 — to differentiate parties per location, NAD must live in SG8 (sales channel), not the header.
Related messages
SLSRPT typically sits in a Vendor Managed Inventory loop:
- SLSFCT — Sales Forecast (forward-looking complement to SLSRPT for replenishment).
- INVRPT D.96A — Inventory Report (stock state at a given time).
- ORDERS D.96A — Supplier-generated order in VMI mode.
- DESADV D.96A — Subsequent despatch advice.
- CONTRL D.96A — automatic syntactic acknowledgment.
JSON equivalent
JSON projection for integration into an analytics platform or data warehouse:
{
"interchange": {
"controlRef": "CTRL000077",
"from": { "id": "5410000000456", "qualifier": "14" },
"to": { "id": "5410000000123", "qualifier": "14" },
"datetime": "2026-05-13T08:00:00Z",
"syntax": { "id": "UNOC", "version": "3" }
},
"message": {
"ref": "1",
"type": "SLSRPT",
"version": { "syntax": "D", "release": "96A", "agency": "UN" }
},
"salesReport": {
"number": "SLS-2026-W19",
"function": "74",
"status": "9",
"period": { "from": "2026-05-04", "to": "2026-05-10" },
"parties": {
"supplier": { "gln": "5410000000456" }
},
"contract": { "qualifier": "ACE", "ref": "CONTRACT-2025-Q4", "date": "2025-12-01" },
"currency": "EUR",
"locations": [
{
"gln": "5410000000999",
"period": { "from": "2026-05-04", "to": "2026-05-10" },
"lines": [
{
"ref": 1, "gtin": "3520000001234",
"description": "Acoustic guitar, mahogany finish",
"supplierItem": "ACME-AG-100",
"price": { "net": 849.00 },
"quantities": { "sold": 18, "onHand": 1530 },
"amount": { "saleValue": 15282.00 }
},
{
"ref": 2, "gtin": "3520000005678",
"description": "Capo, spring loaded",
"price": { "net": 19.50 },
"quantities": { "sold": 142, "onHand": 84 },
"amount": { "saleValue": 2769.00 }
}
]
}
]
}
}