CONTEN Tender message (D12A)

This is the standard EDIFACT D12A spec, with 34 loops and 105 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 (101 KB) Generate classes
The ediFabric .NET template, class TSCONTEN. It needs the common segments, composites and codes of EDIFACT D12A, one download for every transaction in the version. Download C# (2 KB) Common files (68 KB)
The intermediary model ediFabric Native loads with set_map. Native supports X12 today, and EDIFACT is coming. Download Native (1 KB)

Use the CONTEN 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 CONTEN files into TSCONTEN objects. See ediFabric .NET.

ediFabric Native

Native supports X12 today, and EDIFACT is coming. When it's available, map version D12A to this Native model with set_map to parse CONTEN 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 CONTEN classes in Python, Java, Node.js, Go, Rust or C

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

CONTEN structure

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

IDNameUsageMax use
UNHUNHMandatory1
BGMBGMMandatory1
RFFRFFMandatory1
DTMDTMMandatory1
AUTAUTOptional2
AGRAGROptional2
Loop INDINDOptional1000
INDINDMandatory1
RCSRCSMandatory1
Loop GEIGEIMandatory1
GEIGEIMandatory1
Loop BIIBIIMandatory1
BIIBIIMandatory1
IMDIMDMandatory9
Loop BIIBIIOptional1000
BIIBIIMandatory1
RCSRCSMandatory1
GEIGEIMandatory10
NADNADOptional1
LOCLOCOptional1
APRAPROptional1
ALIALIOptional2
QTYQTYOptional5
DTMDTMOptional10
RTERTEOptional9
Loop RFFRFFOptional10
RFFRFFMandatory1
DTMDTMOptional2
GEIGEIOptional5
FTXFTXOptional5
Loop CUXCUXOptional5
CUXCUXMandatory1
DTMDTMOptional5
FTXFTXOptional1
Loop ALCALCOptional2
ALCALCMandatory1
RFFRFFOptional1
DTMDTMOptional1
RNGRNGOptional1
FTXFTXOptional10
Loop PCDPCDOptional20
PCDPCDMandatory1
RFFRFFOptional1
Loop RCSRCSOptional100
RCSRCSMandatory1
BIIBIIMandatory1
FTXFTXOptional9
Loop ARDARDMandatory100
ARDARDMandatory1
MOAMOAMandatory6
FTXFTXOptional10
Loop TAXTAXOptional5
TAXTAXMandatory1
MOAMOAOptional1
LOCLOCOptional5
Loop ALCALCOptional15
ALCALCMandatory1
ALIALIOptional5
Loop QTYQTYOptional1
QTYQTYMandatory1
RNGRNGOptional1
Loop PCDPCDOptional1
PCDPCDMandatory1
RNGRNGOptional1
Loop MOAMOAOptional1
MOAMOAMandatory1
RNGRNGOptional1
Loop RTERTEOptional1
RTERTEMandatory1
RNGRNGOptional1
Loop TAXTAXOptional5
TAXTAXMandatory1
MOAMOAOptional1
Loop NADNADOptional20
NADNADMandatory1
LOCLOCOptional25
FIIFIIOptional9
FTXFTXOptional5
Loop RFFRFFOptional5
RFFRFFMandatory1
DTMDTMOptional5
Loop DOCDOCOptional5
DOCDOCMandatory1
DTMDTMOptional5
Loop CTACTAOptional5
CTACTAMandatory1
COMCOMOptional5
UNSUNSMandatory1
Loop BIIBIIMandatory1000
BIIBIIMandatory1
RCSRCSMandatory1
GEIGEIMandatory10
Loop RFFRFFOptional10
RFFRFFMandatory1
DTMDTMOptional1
Loop DIMDIMOptional100
DIMDIMMandatory1
APRAPROptional1
FTXFTXOptional1
Loop LINLINOptional100
LINLINMandatory1
Loop IMDIMDOptional1000
IMDIMDMandatory1
RFFRFFOptional5
GEIGEIOptional5
Loop QTYQTYMandatory1000
QTYQTYMandatory1
GEIGEIOptional3
APRAPROptional1
Loop PRIPRIOptional3
PRIPRIMandatory1
GEIGEIMandatory3
Loop ARDARDOptional2
ARDARDMandatory1
MOAMOAOptional1
Loop TAXTAXOptional5
TAXTAXMandatory1
MOAMOAOptional1
LOCLOCOptional5
Loop RCSRCSOptional5
RCSRCSMandatory1
BIIBIIMandatory1
GEIGEIMandatory1
Loop ALCALCOptional2
ALCALCMandatory1
RFFRFFOptional1
DTMDTMOptional1
RNGRNGOptional1
FTXFTXOptional10
Loop PCDPCDOptional20
PCDPCDMandatory1
RFFRFFOptional1
Loop IMDIMDOptional9
IMDIMDMandatory1
QTYQTYOptional1
MOAMOAOptional1
PRIPRIOptional1
CNTCNTOptional10
UNTUNTMandatory1