CNTCND Contractual Conditions Message (D96A)

This is the standard EANCOM D96A 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 (50 KB) Generate classes
The ediFabric .NET template, class TSCNTCND. It needs the common segments, composites and codes of EANCOM D96A, one download for every transaction in the version. Download C# (1 KB) Common files (52 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 D96A 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
TODTODOptional99
Loop RFFRFFOptional99
RFFRFFMandatory1
DTMDTMOptional99
Loop PRIPRIOptional99
PRIPRIMandatory1
RNGRNGOptional99
Loop QTYQTYOptional99
QTYQTYMandatory1
DTMDTMOptional99
Loop CUXCUXOptional99
CUXCUXMandatory1
Loop TAXTAXOptional99
TAXTAXMandatory1
Loop PATPATOptional99
PATPATMandatory1
DTMDTMOptional99
PCDPCDOptional99
Loop SEQSEQMandatory99
SEQSEQMandatory1
NADNADMandatory1
Loop CTACTAOptional99
CTACTAMandatory1
COMCOMMUNICATION CONTACTOptional9
Loop ALCALLOWANCE OR CHARGEOptional99
ALCALLOWANCE OR CHARGEMandatory1
DTMDTMOptional99
Loop PCDPCDOptional99
PCDPCDMandatory1
RNGRNGOptional9
Loop MOAMOAOptional99
MOAMOAMandatory1
RNGRNGOptional9
Loop LINLINOptional999999
LINLINMandatory1
PIAPIAOptional99
IMDIMDOptional99
Loop RFFRFFOptional99
RFFRFFMandatory1
DTMDTMOptional99
Loop TAXTAXOptional99
TAXTAXMandatory1
Loop ALCALLOWANCE OR CHARGEOptional99
ALCALLOWANCE OR CHARGEMandatory1
DTMDTMOptional99
Loop PCDPCDOptional99
PCDPCDMandatory1
RNGRNGOptional9
Loop MOAMOAOptional99
MOAMOAMandatory1
RNGRNGOptional9
Loop PRIPRICE DETAILSOptional99
PRIPRICE DETAILSMandatory1
RNGRNGOptional99
DTMDTMOptional99
Loop TODTERMS OF DELIVERY OR TRANSPORTOptional99
TODTERMS OF DELIVERY OR TRANSPORTMandatory1
Loop PACPACOptional99
PACPACMandatory1
Loop QTYQTYOptional99
QTYQTYMandatory1
DTMDTMOptional99
Loop NADNADOptional99
NADNADMandatory1
UNTMessage TrailerOptional1