UTILMD Utilities master data message (D17A)

This is the standard EDIFACT D17A spec, with 13 loops and 54 segment positions, as OpenEDI JSON, an ediFabric C# template and an ediFabric Native model. To change it for a trading partner, customize it in the EDI Spec Builder.

Loading the spec…
The spec as an OpenAPI 3 schema with x-openedi-* extensions, for ediFabric Native, ediFabric Cloud and the EDI Spec Builder. Download OpenEDI (95 KB) Generate classes
The ediFabric .NET template, class TSUTILMD. It needs the common segments, composites and codes of EDIFACT D17A, one download for every transaction in the version. Download C# (1 KB) Common files (69 KB)
The intermediary model ediFabric Native loads with set_map. Native supports X12 today, and EDIFACT is coming. Download Native (1 KB)

Use the UTILMD spec in your code

ediFabric .NET

Add the C# template and its common files to your project, or reference the template NuGet package, and read UTILMD files into TSUTILMD objects. See ediFabric .NET.

ediFabric Native

Native supports X12 today, and EDIFACT is coming. When it's available, map version D17A to this Native model with set_map to parse UTILMD files to JSON from Python, Java, C or C#. See ediFabric Native.

OpenEDI

Select Customize in Spec Builder to copy the spec under your own name, change it for your partner, and parse files against it in EdiNation, ediFabric Native or ediFabric Cloud. Read about OpenEDI.

Generate UTILMD classes in Python, Java, Node.js, Go, Rust or C

The OpenEDI file describes each UTILMD as JSON. To work with UTILMD data as typed objects, generate classes from the OpenEDI file in your language; the root class is TSUTILMD. The classes keep the loops, segments, lengths and code lists, but not the EDI data formats. Read more in Generate a class from OpenEDI.

Python: datamodel-code-generator. Node.js: openapi-typescript. Java, Go, Rust and C: OpenAPI Generator.

UTILMD structure

Loops and segments of the standard UTILMD, with their usage and maximum repeats.

IDNameUsageMax use
UNHUNHMandatory1
BGMBGMMandatory1
DTMDTMMandatory9
MKSMKSOptional9
FTXFTXOptional9
TSRTSROptional9
Loop RFFRFFOptional9
RFFRFFMandatory1
DTMDTMOptional9
Loop NADNADOptional99
NADNADMandatory1
RFFRFFOptional1
FIIFIIOptional1
ATTATTOptional9
Loop CTACTAOptional9
CTACTAMandatory1
COMCOMOptional9
Loop IDEIDEOptional99999
IDEIDEMandatory1
LINLINOptional1
PIAPIAOptional9
IMDIMDOptional9
DTMDTMOptional99
PRCPRCOptional9
STSSTSOptional9
TAXTAXOptional9
PTYPTYOptional9
FTXFTXOptional9
AGRAGROptional9
INPINPOptional9
TSRTSROptional9
Loop LOCLOCOptional99999
LOCLOCMandatory1
HYNHYNOptional9
Loop RFFRFFOptional99
RFFRFFMandatory1
DTMDTMOptional9
Loop CCICCIOptional99
CCICCIMandatory1
CAVCAVOptional99
Loop SEQSEQOptional99999
SEQSEQMandatory1
RFFRFFOptional9
PIAPIAOptional9
Loop QTYQTYOptional99
QTYQTYMandatory1
DTMDTMOptional9
STSSTSOptional9
LINLINOptional9
Loop CCICCIOptional99
CCICCIMandatory1
CAVCAVOptional99
Loop MOAMOAOptional99
MOAMOAMandatory1
RFFRFFOptional9
DTMDTMOptional9
Loop NADNADOptional99
NADNADMandatory1
RFFRFFOptional9
DTMDTMOptional9
FIIFIIOptional1
LANLANOptional9
Loop CTACTAOptional9
CTACTAMandatory1
COMCOMOptional9
CNTCNTOptional9
UNTUNTMandatory1