CNTCND Contractual Conditions (D01B)

This is the standard EANCOM D01B syntax 3 spec, with 22 loops and 47 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 (53 KB) Generate classes
The ediFabric .NET template, class TSCNTCND. It needs the common segments, composites and codes of EANCOM D01B syntax 3, one download for every transaction in the version. Download C# (1 KB) Common files (57 KB)
The intermediary model ediFabric Native loads with set_map. Native supports X12 today, and EANCOM is coming. Download Native (1 KB)

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

ediFabric Native

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

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

CNTCND structure

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

IDNameUsageMax use
UNHMessage HeaderOptional1
BGMBGMMandatory1
DTMDTMMandatory99
PAIPAIOptional99
TODTerms of delivery or transportOptional99
Loop RFFRFFOptional99
RFFRFFMandatory1
DTMDTMOptional99
Loop PRIPrice detailsOptional99
PRIPrice detailsMandatory1
RNGRNGOptional99
Loop QTYQTYOptional99
QTYQTYMandatory1
DTMDTMOptional99
Loop CUXCurrenciesOptional99
CUXCurrenciesMandatory1
Loop TAXTAXOptional99
TAXTAXMandatory1
Loop PATPATOptional99
PATPATMandatory1
DTMDTMOptional99
PCDPCDOptional99
Loop SEQSequence detailsMandatory99
SEQSequence detailsMandatory1
NADNADMandatory1
Loop CTACTAOptional99
CTACTAMandatory1
COMCommunication contactOptional99
Loop ALCAllowance or chargeOptional99
ALCAllowance or chargeMandatory1
DTMDTMOptional99
Loop PCDPCDOptional99
PCDPCDMandatory1
RNGRNGOptional99
Loop MOAMOAOptional99
MOAMOAMandatory1
RNGRNGOptional99
Loop LINLine itemOptional99
LINLine itemMandatory1
PIAPIAOptional99
IMDIMDOptional99
Loop RFFRFFOptional99
RFFRFFMandatory1
DTMDTMOptional99
Loop TAXTAXOptional99
TAXTAXMandatory1
Loop QTYQTYOptional99
QTYQTYMandatory1
DTMDTMOptional99
Loop ALCAllowance or chargeOptional99
ALCAllowance or chargeMandatory1
DTMDTMOptional99
Loop PCDPCDOptional99
PCDPCDMandatory1
RNGRNGOptional99
Loop MOAMOAOptional99
MOAMOAMandatory1
RNGRNGOptional99
Loop PRIPrice detailsOptional99
PRIPrice detailsMandatory1
RNGRNGOptional99
DTMDTMOptional99
Loop TODTerms of delivery or transportOptional99
TODTerms of delivery or transportMandatory1
Loop PACPackageOptional99
PACPackageMandatory1
Loop NADNADOptional99
NADNADMandatory1
UNTMessage TrailerOptional1