Skip to content

Format · Read and write

EDIFACT ORDERS D96A

The ORDERS purchase order message from directory D96A is still one of the most common ways to send orders electronically in retail and manufacturing. every-edi reads and generates ORDERS D96A directly: segment by segment, by fixed rules, without AI.

At a glance

Standard
UN/EDIFACT
Message type
ORDERS (purchase order)
Directory
D96A
every-edi
Read and write
Processing
Rule-based, no AI

What ORDERS D96A is for

UN/EDIFACT is the international standard for exchanging structured business documents. Each message type has a name (ORDERS is the purchase order) and is published in directories that have been revised over the years. D96A dates from 1996, yet many order flows still run on it: once a connection works, nobody is keen to change the directory.

An ORDERS message carries the same content as a paper order: order number, date, requested delivery date, buyer, delivery address, and lines with item number, quantity and price. The difference is the fixed structure, which an ERP system can take over without anyone retyping it.

Who requires ORDERS

Usually the large customers: retail chains, wholesalers, manufacturing groups and purchasing associations. For them EDI is the norm, and suppliers are expected to accept orders electronically. There is almost always a partner-specific specification as well (an implementation guideline or “message implementation guide”) that sets out which segments are mandatory and which codes apply.

In retail this often means EANCOM, the GS1 subset of EDIFACT. EANCOM 1997 is based on D96A; the newer EANCOM 2002 is based on D01B. We check your partner’s specification and a sample file to confirm their requirements are covered.

Example

A fictitious order with three lines. Each line is a segment: the apostrophe ends it, “+” separates data elements, and “:” separates components within a data element.

ORDERS_4500012345.edi
UNA:+.? '
UNB+UNOC:3+4012345000009:14+4098765000003:14+261008:0930+1042'
UNH+1+ORDERS:D:96A:UN'
BGM+220+4500012345+9'
DTM+137:20261008:102'
DTM+2:20261015:102'
FTX+DEL+++Rampe 3?: Anlieferung Mo-Fr 7-14 Uhr'
NAD+BY+4012345000009::9'
NAD+SU+4098765000003::9'
NAD+DP+4012345000016::9'
CUX+2:EUR:9'
LIN+1++4012345678901:EN'
PIA+1+ART-7720:SA'
IMD+F++:::Hydraulikzylinder HZ-200/100'
QTY+21:4:PCE'
PRI+AAA:285.00'
LIN+2++4012345678918:EN'
PIA+1+ART-3381:SA'
IMD+F++:::Dichtungsset DS-200'
QTY+21:4:SET'
PRI+AAA:42.50'
LIN+3++4012345678925:EN'
PIA+1+ART-9910:SA'
IMD+F++:::Hydraulikschlauch 2m DN10'
QTY+21:10:MTR'
PRI+AAA:18.90'
UNS+S'
CNT+2:3'
UNT+27+1'
UNZ+1+1042'

All names, numbers and GLNs in the example are fictitious.

SegmentMeaning
UNA:+.? 'Defines the delimiters: component, data element, decimal mark, release character, segment terminator. Optional; without UNA the default characters apply.
UNB+UNOC:3+…:14+…:14+261008:0930+1042Interchange header: character set UNOC (Latin-1, includes accented letters), syntax version 3, sender and recipient GLN (14 = GS1), date and time, interchange reference.
UNH+1+ORDERS:D:96A:UNMessage header: type ORDERS, directory D, release 96A, controlling agency UN.
BGM+220+4500012345+9Beginning of message: 220 = order, then the customer’s order number, 9 = original.
DTM+137:20261008:102Order date (137) in format 102, i.e. CCYYMMDD.
DTM+2:20261015:102Requested delivery date (2).
FTX+DEL+++Rampe 3?: …Free text about delivery. The “?” before the colon is the release character; without it the colon would be read as a delimiter.
NAD+BY+4012345000009::9Buyer (BY), identified by GLN; 9 = GS1 code list.
NAD+SU+4098765000003::9Supplier (SU), meaning you.
NAD+DP+4012345000016::9Delivery party (DP), again given as a GLN rather than a written address.
CUX+2:EUR:9Order currency.
LIN+1++4012345678901:ENLine 1, item identified by its GTIN (EN).
PIA+1+ART-7720:SAAdditional item number: your supplier article number (SA).
IMD+F++:::Hydraulikzylinder …Item description as free text (F).
QTY+21:4:PCEOrdered quantity (21): 4 pieces (PCE).
PRI+AAA:285.00Net price (AAA) per unit, with a full stop as decimal mark.
UNS+SSeparates the lines from the summary section.
CNT+2:3Control total: number of lines (2), here 3.
UNT+27+1Message trailer: number of segments from UNH up to and including UNT, plus the message reference from UNH.
UNZ+1+1042Interchange trailer: number of messages and the reference from UNB.

Common pitfalls

What every-edi does with it

What is not included (yet)

For EDIFACT, every-edi currently supports only the ORDERS purchase order in directory D96A. Other directories such as D01B (and therefore EANCOM 2002) and other message types such as invoice (INVOIC), despatch advice (DESADV) or order response (ORDRSP) are not included yet.

Other formats

every-edi also handles GEVIS XML (GEVISEDI01), CSV with header and line records (HDR/POS), free-form CSV tables via learned CSV profiles, and JSON over a REST interface.

Send us a real file.

The quickest way to find out whether every-edi fits your customers is with real examples: three orders and, if you have one, your partner’s specification. You get the result back in the target format.

Request a demo