TUPREQ Travel (D17A)

This is the standard EDIFACT D17A spec, with 42 loops and 150 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 (108 KB) Generate classes
The ediFabric .NET template, class TSTUPREQ. It needs the common segments, composites and codes of EDIFACT D17A, one download for every transaction in the version. Download C# (2 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 TUPREQ 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 TUPREQ files into TSTUPREQ 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 TUPREQ 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 TUPREQ classes in Python, Java, Node.js, Go, Rust or C

The OpenEDI file describes each TUPREQ as JSON. To work with TUPREQ data as typed objects, generate classes from the OpenEDI file in your language; the root class is TSTUPREQ. 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.

TUPREQ structure

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

IDNameUsageMax use
UIHUIHMandatory1
MSDMSDMandatory1
ORGORGMandatory1
NUNNUNMandatory1
Loop TVLTVLOptional999
TVLTVLMandatory1
ITMITMOptional1
Loop DTIDTIOptional99
DTIDTIMandatory1
ITMITMOptional1
NUNNUNOptional1
Loop RPIRPIOptional99
RPIRPIMandatory1
Loop RTCRTCOptional999
RTCRTCMandatory1
SDTSDTOptional1
PRDPRDOptional1
TFFTFFOptional1
Loop PDTPDTOptional999
PDTPDTMandatory1
ITMITMOptional1
TFFTFFOptional1
RTCRTCOptional1
POSPOSOptional1
RPIRPIOptional1
Loop MAPMAPOptional999
MAPMAPMandatory1
Loop TVLTVLOptional999
TVLTVLMandatory1
ITMITMOptional1
DTIDTIOptional1
Loop RTCRTCOptional999
RTCRTCMandatory1
DTIDTIOptional1
ODSODSOptional1
SSRSSROptional1
RULRULOptional1
TFFTFFOptional1
ITMITMOptional1
CMNCMNOptional1
CURCUROptional1
PMTPMTOptional1
NUNNUNOptional1
IFTIFTOptional99
Loop PDTPDTOptional99
PDTPDTMandatory1
TFFTFFOptional1
Loop RTIRTIOptional999
RTIRTIMandatory1
Loop PDTPDTOptional999
PDTPDTMandatory1
TFFTFFOptional1
ODSODSOptional1
Loop PRDPRDOptional999
PRDPRDMandatory1
DTIDTIOptional1
RTIRTIOptional1
TFFTFFOptional1
RTCRTCOptional1
ODSODSOptional1
NUNNUNOptional1
PMTPMTOptional1
NMENMEOptional1
ITMITMOptional1
Loop RULRULOptional99
RULRULMandatory1
DTIDTIOptional1
ITMITMOptional1
Loop ITDITDOptional99
ITDITDMandatory1
Loop NMENMEOptional9
NMENMEMandatory1
ITMITMOptional1
Loop MAPMAPOptional3
MAPMAPMandatory1
ADSADSOptional1
CONCONOptional1
CRICRIOptional1
ORGORGOptional1
Loop SDTSDTOptional99
SDTSDTMandatory1
POSPOSOptional1
Loop ODSODSOptional99
ODSODSMandatory1
IFTIFTOptional9
DTIDTIOptional1
Loop RULRULOptional99
RULRULMandatory1
DTIDTIOptional1
ITMITMOptional1
Loop TVLTVLOptional999
TVLTVLMandatory1
DTIDTIOptional1
Loop SDTSDTOptional99
SDTSDTMandatory1
POSPOSOptional1
CRICRIOptional1
Loop ODSODSOptional99
ODSODSMandatory1
ITMITMOptional1
IFTIFTOptional1
CRICRIOptional1
ATIATIOptional1
Loop ADSADSOptional9
ADSADSMandatory1
DTIDTIOptional1
Loop CONCONOptional9
CONCONMandatory1
DTIDTIOptional1
Loop PRDPRDOptional999
PRDPRDMandatory1
VEHVEHOptional1
NUNNUNOptional1
RULRULOptional1
RPIRPIOptional1
Loop ICIICIOptional9
ICIICIMandatory1
IFTIFTOptional9
Loop MOVMOVOptional9
MOVMOVMandatory1
RPIRPIOptional1
TFFTFFOptional1
IFTIFTOptional9
Loop SSRSSROptional99
SSRSSRMandatory1
TFFTFFOptional1
RULRULOptional1
IFTIFTOptional9
Loop ALSALSOptional999
ALSALSMandatory1
ITMITMOptional1
IFTIFTOptional1
CURCUROptional1
Loop TVLTVLOptional999
TVLTVLMandatory1
ITMITMOptional1
MAPMAPOptional1
NMENMEOptional1
PLIPLIOptional1
NUNNUNOptional1
CONCONOptional1
CURCUROptional1
SSRSSROptional1
IFTIFTOptional9
Loop ODSODSOptional99
ODSODSMandatory1
NUNNUNOptional1
Loop PMTPMTOptional99
PMTPMTMandatory1
ADSADSOptional1
Loop PDTPDTOptional9
PDTPDTMandatory1
RPIRPIOptional1
Loop RTCRTCOptional99
RTCRTCMandatory1
IFTIFTOptional1
Loop DTIDTIOptional99
DTIDTIMandatory1
Loop PDTPDTOptional99
PDTPDTMandatory1
QTIQTIOptional1
Loop TIFTIFOptional9
TIFTIFMandatory1
ITMITMOptional1
Loop MAPMAPOptional3
MAPMAPMandatory1
ADSADSOptional5
CONCONOptional1
CRICRIOptional1
PMTPMTOptional1
TDITDIOptional1
ALSALSOptional1
ODSODSOptional1
Loop SDTSDTOptional2
SDTSDTMandatory1
PRDPRDOptional1
ICIICIOptional1
SSRSSROptional1
PMTPMTOptional1
Loop MSDMSDOptional9
MSDMSDMandatory1
TFFTFFOptional1
Loop ALSALSOptional9
ALSALSMandatory1
PRDPRDOptional1
ICIICIOptional1
SSRSSROptional1
PMTPMTOptional1
Loop MSDMSDOptional9
MSDMSDMandatory1
TFFTFFOptional1
UITUITMandatory1