IFTMCS Instruction contract status message (D97A)
This is the standard EDIFACT D97A spec, with 38 loops and 138 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.
Use the IFTMCS 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 IFTMCS files into TSIFTMCS objects. See ediFabric .NET.
ediFabric Native
Native supports X12 today, and EDIFACT is coming. When it's available, map version D97A to this Native model with set_map to parse IFTMCS 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 IFTMCS classes in Python, Java, Node.js, Go, Rust or C
The OpenEDI file describes each IFTMCS as JSON. To work with IFTMCS data as typed objects, generate classes from the OpenEDI file in your language; the root class is TSIFTMCS. 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.
IFTMCS structure
Loops and segments of the standard IFTMCS, with their usage and maximum repeats.
| ID | Name | Usage | Max use |
|---|---|---|---|
| UNH | Message Header | Optional | 1 |
| BGM | BEGINNING OF MESSAGE | Mandatory | 1 |
| CTA | CONTACT INFORMATION | Optional | 1 |
| COM | COMMUNICATION CONTACT | Optional | 9 |
| DTM | DATE/TIME/PERIOD | Optional | 9 |
| TSR | TRANSPORT SERVICE REQUIREMENTS | Optional | 9 |
| CUX | CURRENCIES | Optional | 9 |
| MOA | MONETARY AMOUNT | Optional | 99 |
| FTX | FREE TEXT | Optional | 99 |
| CNT | CONTROL TOTAL | Optional | 9 |
| Loop LOC | PLACE/LOCATION IDENTIFICATION | Optional | 99 |
| LOC | PLACE/LOCATION IDENTIFICATION | Mandatory | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 9 |
| Loop TOD | TERMS OF DELIVERY OR TRANSPORT | Optional | 2 |
| TOD | TERMS OF DELIVERY OR TRANSPORT | Mandatory | 1 |
| LOC | PLACE/LOCATION IDENTIFICATION | Optional | 9 |
| Loop RFF | REFERENCE | Optional | 99 |
| RFF | REFERENCE | Mandatory | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 9 |
| Loop GOR | GOVERNMENTAL REQUIREMENTS | Optional | 9 |
| GOR | GOVERNMENTAL REQUIREMENTS | Mandatory | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 9 |
| LOC | PLACE/LOCATION IDENTIFICATION | Optional | 9 |
| SEL | SEAL NUMBER | Optional | 9 |
| FTX | FREE TEXT | Optional | 9 |
| Loop DOC | DOCUMENT/MESSAGE DETAILS | Optional | 9 |
| DOC | DOCUMENT/MESSAGE DETAILS | Mandatory | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 1 |
| Loop CPI | CHARGE PAYMENT INSTRUCTIONS | Optional | 9 |
| CPI | CHARGE PAYMENT INSTRUCTIONS | Mandatory | 1 |
| RFF | REFERENCE | Optional | 99 |
| CUX | CURRENCIES | Optional | 1 |
| LOC | PLACE/LOCATION IDENTIFICATION | Optional | 9 |
| MOA | MONETARY AMOUNT | Optional | 9 |
| Loop TCC | TRANSPORT CHARGE/RATE CALCULATIONS | Optional | 99 |
| TCC | TRANSPORT CHARGE/RATE CALCULATIONS | Mandatory | 1 |
| LOC | PLACE/LOCATION IDENTIFICATION | Optional | 1 |
| FTX | FREE TEXT | Optional | 1 |
| CUX | CURRENCIES | Optional | 1 |
| PRI | PRICE DETAILS | Optional | 1 |
| EQN | NUMBER OF UNITS | Optional | 1 |
| PCD | PERCENTAGE DETAILS | Optional | 1 |
| MOA | MONETARY AMOUNT | Optional | 9 |
| QTY | QUANTITY | Optional | 9 |
| Loop TDT | DETAILS OF TRANSPORT | Optional | 99 |
| TDT | DETAILS OF TRANSPORT | Mandatory | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 9 |
| TSR | TRANSPORT SERVICE REQUIREMENTS | Optional | 9 |
| Loop LOC | PLACE/LOCATION IDENTIFICATION | Optional | 99 |
| LOC | PLACE/LOCATION IDENTIFICATION | Mandatory | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 9 |
| Loop RFF | REFERENCE | Optional | 9 |
| RFF | REFERENCE | Mandatory | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 1 |
| Loop NAD | NAME AND ADDRESS | Optional | 99 |
| NAD | NAME AND ADDRESS | Mandatory | 1 |
| LOC | PLACE/LOCATION IDENTIFICATION | Optional | 9 |
| MOA | MONETARY AMOUNT | Optional | 9 |
| Loop CTA | CONTACT INFORMATION | Optional | 9 |
| CTA | CONTACT INFORMATION | Mandatory | 1 |
| COM | COMMUNICATION CONTACT | Optional | 9 |
| Loop DOC | DOCUMENT/MESSAGE DETAILS | Optional | 9 |
| DOC | DOCUMENT/MESSAGE DETAILS | Mandatory | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 1 |
| Loop TCC | TRANSPORT CHARGE/RATE CALCULATIONS | Optional | 99 |
| TCC | TRANSPORT CHARGE/RATE CALCULATIONS | Mandatory | 1 |
| PRI | PRICE DETAILS | Optional | 1 |
| EQN | NUMBER OF UNITS | Optional | 1 |
| PCD | PERCENTAGE DETAILS | Optional | 1 |
| MOA | MONETARY AMOUNT | Optional | 9 |
| QTY | QUANTITY | Optional | 9 |
| Loop RFF | REFERENCE | Optional | 9 |
| RFF | REFERENCE | Mandatory | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 9 |
| Loop CPI | CHARGE PAYMENT INSTRUCTIONS | Optional | 9 |
| CPI | CHARGE PAYMENT INSTRUCTIONS | Mandatory | 1 |
| RFF | REFERENCE | Optional | 99 |
| CUX | CURRENCIES | Optional | 1 |
| LOC | PLACE/LOCATION IDENTIFICATION | Optional | 9 |
| MOA | MONETARY AMOUNT | Optional | 9 |
| Loop TSR | TRANSPORT SERVICE REQUIREMENTS | Optional | 99 |
| TSR | TRANSPORT SERVICE REQUIREMENTS | Mandatory | 1 |
| RFF | REFERENCE | Optional | 1 |
| LOC | PLACE/LOCATION IDENTIFICATION | Optional | 1 |
| TPL | TRANSPORT PLACEMENT | Optional | 1 |
| FTX | FREE TEXT | Optional | 9 |
| Loop GID | GOODS ITEM DETAILS | Optional | 999 |
| GID | GOODS ITEM DETAILS | Mandatory | 1 |
| HAN | HANDLING INSTRUCTIONS | Optional | 1 |
| TMP | TEMPERATURE | Optional | 1 |
| RNG | RANGE DETAILS | Optional | 1 |
| TMD | TRANSPORT MOVEMENT DETAILS | Optional | 1 |
| LOC | PLACE/LOCATION IDENTIFICATION | Optional | 9 |
| MOA | MONETARY AMOUNT | Optional | 9 |
| PIA | ADDITIONAL PRODUCT ID | Optional | 9 |
| FTX | FREE TEXT | Optional | 9 |
| Loop NAD | NAME AND ADDRESS | Optional | 9 |
| NAD | NAME AND ADDRESS | Mandatory | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 1 |
| GDS | NATURE OF CARGO | Optional | 9 |
| Loop MEA | MEASUREMENTS | Optional | 99 |
| MEA | MEASUREMENTS | Mandatory | 1 |
| EQN | NUMBER OF UNITS | Optional | 1 |
| Loop DIM | DIMENSIONS | Optional | 99 |
| DIM | DIMENSIONS | Mandatory | 1 |
| EQN | NUMBER OF UNITS | Optional | 1 |
| Loop RFF | REFERENCE | Optional | 9 |
| RFF | REFERENCE | Mandatory | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 9 |
| Loop PCI | PACKAGE IDENTIFICATION | Optional | 9 |
| PCI | PACKAGE IDENTIFICATION | Mandatory | 1 |
| RFF | REFERENCE | Optional | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 1 |
| GIN | GOODS IDENTITY NUMBER | Optional | 9 |
| Loop DOC | DOCUMENT/MESSAGE DETAILS | Optional | 9 |
| DOC | DOCUMENT/MESSAGE DETAILS | Mandatory | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 9 |
| Loop TPL | TRANSPORT PLACEMENT | Optional | 9 |
| TPL | TRANSPORT PLACEMENT | Mandatory | 1 |
| Loop MEA | MEASUREMENTS | Optional | 9 |
| MEA | MEASUREMENTS | Mandatory | 1 |
| EQN | NUMBER OF UNITS | Optional | 1 |
| Loop SGP | SPLIT GOODS PLACEMENT | Optional | 999 |
| SGP | SPLIT GOODS PLACEMENT | Mandatory | 1 |
| SEQ | SEQUENCE DETAILS | Optional | 1 |
| Loop MEA | MEASUREMENTS | Optional | 9 |
| MEA | MEASUREMENTS | Mandatory | 1 |
| EQN | NUMBER OF UNITS | Optional | 1 |
| Loop TCC | TRANSPORT CHARGE/RATE CALCULATIONS | Optional | 99 |
| TCC | TRANSPORT CHARGE/RATE CALCULATIONS | Mandatory | 1 |
| CUX | CURRENCIES | Optional | 1 |
| PRI | PRICE DETAILS | Optional | 1 |
| EQN | NUMBER OF UNITS | Optional | 1 |
| PCD | PERCENTAGE DETAILS | Optional | 1 |
| MOA | MONETARY AMOUNT | Optional | 9 |
| QTY | QUANTITY | Optional | 9 |
| LOC | PLACE/LOCATION IDENTIFICATION | Optional | 9 |
| Loop DGS | DANGEROUS GOODS | Optional | 9 |
| DGS | DANGEROUS GOODS | Mandatory | 1 |
| FTX | FREE TEXT | Optional | 99 |
| Loop CTA | CONTACT INFORMATION | Optional | 9 |
| CTA | CONTACT INFORMATION | Mandatory | 1 |
| COM | COMMUNICATION CONTACT | Optional | 9 |
| Loop MEA | MEASUREMENTS | Optional | 9 |
| MEA | MEASUREMENTS | Mandatory | 1 |
| EQN | NUMBER OF UNITS | Optional | 1 |
| Loop SGP | SPLIT GOODS PLACEMENT | Optional | 999 |
| SGP | SPLIT GOODS PLACEMENT | Mandatory | 1 |
| Loop MEA | MEASUREMENTS | Optional | 9 |
| MEA | MEASUREMENTS | Mandatory | 1 |
| EQN | NUMBER OF UNITS | Optional | 1 |
| Loop EQD | EQUIPMENT DETAILS | Optional | 999 |
| EQD | EQUIPMENT DETAILS | Mandatory | 1 |
| EQN | NUMBER OF UNITS | Optional | 1 |
| TMD | TRANSPORT MOVEMENT DETAILS | Optional | 1 |
| MEA | MEASUREMENTS | Optional | 9 |
| DIM | DIMENSIONS | Optional | 9 |
| SEL | SEAL NUMBER | Optional | 99 |
| TPL | TRANSPORT PLACEMENT | Optional | 9 |
| HAN | HANDLING INSTRUCTIONS | Optional | 1 |
| TMP | TEMPERATURE | Optional | 1 |
| FTX | FREE TEXT | Optional | 9 |
| Loop TCC | TRANSPORT CHARGE/RATE CALCULATIONS | Optional | 99 |
| TCC | TRANSPORT CHARGE/RATE CALCULATIONS | Mandatory | 1 |
| PRI | PRICE DETAILS | Optional | 1 |
| EQN | NUMBER OF UNITS | Optional | 1 |
| PCD | PERCENTAGE DETAILS | Optional | 1 |
| MOA | MONETARY AMOUNT | Optional | 9 |
| QTY | QUANTITY | Optional | 9 |
| Loop NAD | NAME AND ADDRESS | Optional | 9 |
| NAD | NAME AND ADDRESS | Mandatory | 1 |
| DTM | DATE/TIME/PERIOD | Optional | 1 |
| Loop EQA | ATTACHED EQUIPMENT | Optional | 99 |
| EQA | ATTACHED EQUIPMENT | Mandatory | 1 |
| EQN | NUMBER OF UNITS | Optional | 1 |
| UNT | Message Trailer | Optional | 1 |