EANCOM IFTMIN Instruction Message Last updated: 2026-09-29

IFTMIN is the instruction message for transport. Shippers and forwarders send it to a carrier or logistics provider with everything needed to move a consignment. This sample follows EANCOM D96A.

It identifies the parties, the transport stages in TDT groups, the places of loading and delivery, and the goods items with their packages, weights and dangerous goods information.

At a glance

Standard
EANCOM
Version
D96A EAN004
Sent by
Shipper or forwarder to carrier
Responses
CONTRL, IFTSTA
ediFabric .NET template
TSIFTMIN in EdiFabric.Templates.Edifact
OpenEDI definition
View IFTMIN in the spec library

IFTMIN structure

The full EANCOM IFTMIN layout from its OpenEDI definition, the same model ediFabric uses to parse, validate and generate it: 21 loops and 55 segment positions, in file order. Loops are shaded and their segments indented; Max use is how many times a segment or loop may repeat.

Segment / loop Name Usage Max use
UNHMessage headerMandatory1
BGMBeginning of messageMandatory1
DTMDate/time/periodOptional9
TSRTransport service requirementsOptional9
MOAMonetary amountOptional99
FTXFree textOptional99
CNTControl totalOptional9
TOD loopTerms of delivery or transportOptional2
TODTerms of delivery or transportMandatory1
LOCPlace/location identificationOptional9
RFF loopReferenceOptional99
RFFReferenceMandatory1
DTMDate/time/periodOptional9
TDT loopDetails of transportOptional99
TDTDetails of transportMandatory1
DTMDate/time/periodOptional9
LOC loopPlace/location identificationOptional99
LOCPlace/location identificationMandatory1
NAD loopName and addressMandatory99
NADName and addressMandatory1
CTA loopContact informationOptional9
CTAContact informationMandatory1
COMCommunication contactOptional9
DOC loopDocument/message detailsOptional9
DOCDocument/message detailsMandatory1
DTMDate/time/periodOptional1
RFF loopReferenceOptional9
RFFReferenceMandatory1
DTMDate/time/periodOptional9
GID loopGoods item detailsOptional999
GIDGoods item detailsMandatory1
HANHandling instructionsOptional1
TMPTemperatureOptional1
RNGRange detailsOptional1
LOCPlace/location identificationOptional9
MOAMonetary amountOptional9
PIAAdditional product idOptional9
FTXFree textOptional9
NAD loopName and addressOptional9
NADName and addressMandatory1
DTMDate/time/periodOptional1
MEA loopMeasurementsOptional99
MEAMeasurementsMandatory1
EQNNumber of unitsOptional1
DIM loopDimensionsOptional99
DIMDimensionsMandatory1
EQNNumber of unitsOptional1
RFF loopReferenceOptional9
RFFReferenceMandatory1
DTMDate/time/periodOptional9
PCI loopPackage identificationOptional9
PCIPackage identificationMandatory1
GINGoods identity numberOptional10
DOC loopDocument/message detailsOptional9
DOCDocument/message detailsMandatory1
DTMDate/time/periodOptional9
SGP loopSplit goods placementOptional999
SGPSplit goods placementMandatory1
DGS loopDangerous goodsOptional9
DGSDangerous goodsMandatory1
FTXFree textOptional99
CTA loopContact informationOptional9
CTAContact informationMandatory1
COMCommunication contactOptional9
MEA loopMeasurementsOptional9
MEAMeasurementsMandatory1
EQNNumber of unitsOptional1
EQD loopEquipment detailsOptional999
EQDEquipment detailsMandatory1
MEAMeasurementsOptional9
DIMDimensionsOptional9
SELSeal numberOptional99
NAD loopName and addressOptional9
NADName and addressMandatory1
DTMDate/time/periodOptional1
UNTMessage trailerMandatory1

Sample IFTMIN file

An EANCOM transport instruction for one consignment. Paste it into EdiNation to see every element named and validated.

UNB+UNOA:2+SID+RID+20130430:1159+I-EX1/1+++++T01'
UNH+ME000001+IFTMIN:D:96A:UN:EAN004'
BGM+610+569952+9'
DTM+137:20020301:102'
DTM+2:200203081100:203'
CNT+11:1'
RFF+CU:TI1284'
TDT+20++30+31'
DTM+133:200203051100:203'
LOC+9+5412345678908::9'
NAD+CZ+5412345123453::9'
NAD+CA+5411234512309::9'
NAD+CN+5411234444402::9'
NAD+DP+5412345145660::9'
GID+1+1:09::9+14:PK'
HAN+EAT::9'
TMP+2+000:CEL'
RNG+5+CEL:-5:5'
MOA+44:45000:EUR'
PIA+5+5410738377117:SRV'
MEA+AAE+X7E+KGM:250'
PCI+33E'
GIN+BJ+354123450000000014'
UNT+23+ME000001'
UNZ+1+I-EX1/1'

The same IFTMIN as JSON

ediFabric turns every loop, segment and element into a named field. This is the transaction from the sample, in the JSON that ediFabric Native and Cloud return and accept.

{
  "UNH": {
    "MessageReferenceNumber_01": "ME000001",
    "MessageIdentifier_02": {
      "MessageType_01": "IFTMIN",
      "MessageVersionNumber_02": "D",
      "MessageReleaseNumber_03": "96A",
      "ControllingAgencyCoded_04": "UN",
      "AssociationAssignedCode_05": "EAN004"
    }
  },
  "BGM": {
    "DOCUMENTMESSAGENAME_01": {
      "Documentmessagenamecoded_01": "610"
    },
    "DOCUMENTMESSAGENUMBER_02": "569952",
    "MESSAGEFUNCTIONCODED_03": "9"
  },
  "DTM": [
    {
      "DATETIMEPERIOD_01": {
        "Datetimeperiodqualifier_01": "137",
        "Datetimeperiod_02": "20020301",
        "Datetimeperiodformatqualifier_03": "102"
      }
    },
    {
      "DATETIMEPERIOD_01": {
        "Datetimeperiodqualifier_01": "2",
        "Datetimeperiod_02": "200203081100",
        "Datetimeperiodformatqualifier_03": "203"
      }
    }
  ],
  "CNT": [
    {
      "CONTROL_01": {
        "Controlqualifier_01": "11",
        "Controlvalue_02": "1"
      }
    }
  ],
  "RFFLoop": [
    {
      "RFF": {
        "REFERENCE_01": {
          "Referencequalifier_01": "CU",
          "Referencenumber_02": "TI1284"
        }
      }
    }
  ],
  "TDTLoop": [
    {
      "TDT": {
        "TRANSPORTSTAGEQUALIFIER_01": "20",
        "MODEOFTRANSPORT_03": {
          "Modeoftransportcoded_01": "30"
        },
        "TRANSPORTMEANS_04": {
          "Typeofmeansoftransportidentification_01": "31"
        }
      },
      "DTM": [
        {
          "DATETIMEPERIOD_01": {
            "Datetimeperiodqualifier_01": "133",
            "Datetimeperiod_02": "200203051100",
            "Datetimeperiodformatqualifier_03": "203"
          }
        }
      ],
      "LOCLoop": [
        {
          "LOC": {
            "PLACELOCATIONQUALIFIER_01": "9",
            "LOCATIONIDENTIFICATION_02": {
              "Placelocationidentification_01": "5412345678908",
              "Codelistresponsibleagencycoded_03": "9"
            }
          }
        }
      ]
    }
  ],
  "NADLoop": [
    {
      "NAD": {
        "PARTYQUALIFIER_01": "CZ",
        "PARTYIDENTIFICATIONDETAILS_02": {
          "Partyididentification_01": "5412345123453",
          "Codelistresponsibleagencycoded_03": "9"
        }
      }
    },
    {
      "NAD": {
        "PARTYQUALIFIER_01": "CA",
        "PARTYIDENTIFICATIONDETAILS_02": {
          "Partyididentification_01": "5411234512309",
          "Codelistresponsibleagencycoded_03": "9"
        }
      }
    },
    {
      "NAD": {
        "PARTYQUALIFIER_01": "CN",
        "PARTYIDENTIFICATIONDETAILS_02": {
          "Partyididentification_01": "5411234444402",
          "Codelistresponsibleagencycoded_03": "9"
        }
      }
    },
    {
      "NAD": {
        "PARTYQUALIFIER_01": "DP",
        "PARTYIDENTIFICATIONDETAILS_02": {
          "Partyididentification_01": "5412345145660",
          "Codelistresponsibleagencycoded_03": "9"
        }
      }
    }
  ],
  "GIDLoop": [
    {
      "GID": {
        "GOODSITEMNUMBER_01": "1",
        "NUMBERANDTYPEOFPACKAGES_02": {
          "Numberofpackages_01": "1",
          "Typeofpackagesidentification_02": "09",
          "Codelistresponsibleagencycoded_04": "9"
        },
        "NUMBERANDTYPEOFPACKAGES_03": {
          "Numberofpackages_01": "14",
          "Typeofpackagesidentification_02": "PK"
        }
      },
      "HAN": {
        "HANDLINGINSTRUCTIONS_01": {
          "Handlinginstructionscoded_01": "EAT",
          "Codelistresponsibleagencycoded_03": "9"
        }
      },
      "TMP": {
        "TEMPERATUREQUALIFIER_01": "2",
        "TEMPERATURESETTING_02": {
          "Temperaturesetting_01": "000",
          "Measureunitqualifier_02": "CEL"
        }
      },
      "RNG": {
        "RANGETYPEQUALIFIER_01": "5",
        "RANGE_02": {
          "Measureunitqualifier_01": "CEL",
          "Rangeminimum_02": "-5",
          "Rangemaximum_03": "5"
        }
      },
      "MOA": [
        {
          "MONETARYAMOUNT_01": {
            "Monetaryamounttypequalifier_01": "44",
            "Monetaryamount_02": "45000",
            "Currencycoded_03": "EUR"
          }
        }
      ],
      "PIA": [
        {
          "PRODUCTIDFUNCTIONQUALIFIER_01": "5",
          "ITEMNUMBERIDENTIFICATION_02": {
            "Itemnumber_01": "5410738377117",
            "Itemnumbertypecoded_02": "SRV"
          }
        }
      ],
      "MEALoop": [
        {
          "MEA": {
            "MEASUREMENTAPPLICATIONQUALIFIER_01": "AAE",
            "MEASUREMENTDETAILS_02": {
              "Measurementdimensioncoded_01": "X7E"
            },
            "VALUERANGE_03": {
              "Measureunitqualifier_01": "KGM",
              "Measurementvalue_02": "250"
            }
          }
        }
      ],
      "PCILoop": [
        {
          "PCI": {
            "MARKINGINSTRUCTIONSCODED_01": "33E"
          },
          "GIN": [
            {
              "IDENTITYNUMBERQUALIFIER_01": "BJ",
              "IDENTITYNUMBERRANGE_02": {
                "Identitynumber_01": "354123450000000014"
              }
            }
          ]
        }
      ]
    }
  ],
  "UNT": {
    "NumberofSegmentsinaMessage_01": "23",
    "MessageReferenceNumber_02": "ME000001"
  }
}

Parse and validate an IFTMIN file

Read the file into typed objects with ediFabric .NET, or post it to the ediFabric Cloud REST API from any language and get JSON back.

using EdiFabric.Templates.EdifactD96A;

License.SetSerial("YOUR_SERIAL_KEY");

using (var stream = File.OpenRead(@"C:\edi\Instruction.txt"))
using (var reader = new EdifactReader(stream, "EdiFabric.Templates.Edifact"))
{
    var items = await reader.ReadToEndAsync();
    foreach (var transaction in items.OfType<TSIFTMIN>())
    {
        if (transaction.IsValid(out MessageErrorContext errors))
            Console.WriteLine($"{transaction.UNH.MessageReferenceNumber_01} is valid");
        else
            Console.WriteLine(string.Join(Environment.NewLine, errors.Flatten()));
    }
}
curl -X POST 'https://api.edination.com/v2/edifact/read' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SERIAL_KEY' \
-H 'Content-Type: application/octet-stream' \
--data-binary '@Instruction.txt'

Generate an IFTMIN file

Populate a TSIFTMIN object in .NET, or post JSON in the shape shown above to ediFabric Cloud, and get a valid IFTMIN file back.

using EdiFabric.Templates.EdifactD96A;

License.SetSerial("YOUR_SERIAL_KEY");

var transaction = new TSIFTMIN();

//  Message header
transaction.UNH = new UNH();
transaction.UNH.MessageReferenceNumber_01 = "0001";
transaction.UNH.MessageIdentifier_02 = new S009();
transaction.UNH.MessageIdentifier_02.MessageType_01 = "IFTMIN";
transaction.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D";
transaction.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "96A";
transaction.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN";

//  Transport instruction number 
transaction.BGM = new BGM();
transaction.BGM.DOCUMENTMESSAGENAME_01 = new C002();
transaction.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "610";
transaction.BGM.Documentmessagenumber_02 = "569952";
transaction.BGM.Messagefunctioncoded_03 = "9";

//  Repeating DTM
transaction.DTM = new List<DTM>();

// ... set the remaining loops and segments the same way

// SegmentBuilders is in the Common project of the example repository
using (var stream = new MemoryStream())
{
    using (var writer = new EdifactWriter(stream))
    {
        writer.Write(SegmentBuilders.BuildUnb("1"));
        writer.Write(transaction);
    }
    Console.WriteLine(Encoding.UTF8.GetString(stream.ToArray()));
}
# the JSON returned by /read, edited or produced by your application
curl -X POST 'https://api.edination.com/v2/edifact/write' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SERIAL_KEY' \
-H 'Content-Type: application/json' \
--data-binary '@Instruction.json' \
-o 'Instruction.txt'

Complete ediFabric .NET example

A complete C# program for the EANCOM IFTMIN, built on TSIFTMIN in EdiFabric.Templates.Edifact. The same code is in the ediFabric .NET examples on GitHub.

using EdiFabric.Core.Model.Edi;
using EdiFabric.Framework.Readers;
using EdiFabric.Framework.Writers;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using EdiFabric.Core.Model.Edi.Edifact;
using EdiFabric.Templates.EdifactD96A;
using EdiFabric.Examples.EDIFACT.Common;

namespace EdiFabric.Examples.EDIFACT.IFTMIN
{
    class Program
    {
        static void Main(string[] args)
        {
            SerialKey.Set(Common.SerialKey.Get());
            Read();
            Write();
        }

        ///
        /// Read Instruction
        ///
        static void Read()
        {
            var ediStream = File.OpenRead(Directory.GetCurrentDirectory() + @"\..\..\..\Files\Eancom\Instruction.txt");

            List ediItems;
            using (var ediReader = new EdifactReader(ediStream, "EdiFabric.Templates.Edifact"))
                ediItems = ediReader.ReadToEnd().ToList();

            var transactions = ediItems.OfType();

            foreach (var transaction in transactions)
            {
                if (transaction.HasErrors)
                {
                    //  partially parsed
                    var errors = transaction.ErrorContext.Flatten();
                }
            }
        }

        ///
        /// Write Instruction
        ///
        static void Write()
        {
            var transaction = BuildInstruction("ME000001");

            using (var stream = new MemoryStream())
            {
                using (var writer = new EdifactWriter(stream))
                {
                    writer.Write(SegmentBuilders.BuildUnb("1"));
                    writer.Write(transaction);
                }

                var ediString = stream.LoadToString();
            }
        }

        ///
        /// Build instruction.
        /// Original from https://www.gs1.org/sites/default/files/docs/eancom/s4/iftmin.pdf
        ///
        static TSIFTMIN BuildInstruction(string controlNumber)
        {
            var result = new TSIFTMIN();

            //  Message header
            result.UNH = new UNH();
            result.UNH.MessageReferenceNumber_01 = controlNumber.PadLeft(14, '0');
            result.UNH.MessageIdentifier_02 = new S009();
            result.UNH.MessageIdentifier_02.MessageType_01 = "IFTMIN";
            result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D";
            result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "96A";
            result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN";

            //  Transport instruction number
            result.BGM = new BGM();
            result.BGM.DOCUMENTMESSAGENAME_01 = new C002();
            result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "610";
            result.BGM.Documentmessagenumber_02 = "569952";
            result.BGM.Messagefunctioncoded_03 = "9";

            //  Repeating DTM
            result.DTM = new List();

            //  Message date/time 1st March 2002
            var dtm1 = new DTM();
            dtm1.DATETIMEPERIOD_01 = new C507();
            dtm1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "137";
            dtm1.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020301";
            dtm1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            result.DTM.Add(dtm1);

            //  Delivery date/time requested, 8th March 2002 at 11:00
            var dtm2 = new DTM();
            dtm2.DATETIMEPERIOD_01 = new C507();
            dtm2.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "2";
            dtm2.DATETIMEPERIOD_01.Datetimeperiod_02 = "200203081100";
            dtm2.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "203";
            result.DTM.Add(dtm2);

            //  Repeating CNT
            result.CNT = new List();

            //  Total number of packages 1
            var cnt = new CNT();
            cnt.CONTROL_01 = new C270();
            cnt.CONTROL_01.Controlqualifier_01 = "11";
            cnt.CONTROL_01.Controlvalue_02 = "1";
            result.CNT.Add(cnt);

            //  Repeating RFF Groups
            result.RFFLoop = new List();

            //  Begin RFF Group
            var rffLoop1 = new Loop_RFF_IFTMIN();

            //  Consignor’s reference number TI1284
            rffLoop1.RFF = new RFF();
            rffLoop1.RFF.REFERENCE_01 = new C506();
            rffLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "CU";
            rffLoop1.RFF.REFERENCE_01.Referencenumber_02 = "TI1284";

            //  End RFF Group
            result.RFFLoop.Add(rffLoop1);

            //  Repeating TDT Groups
            result.TDTLoop = new List();

            //  Begin TDT Group
            var tdtLoop1 = new Loop_TDT_IFTMIN();

            //  Details of transport, by truck
            tdtLoop1.TDT = new TDT();
            tdtLoop1.TDT.Transportstagequalifier_01 = "20";
            tdtLoop1.TDT.MODEOFTRANSPORT_03 = new C220();
            tdtLoop1.TDT.MODEOFTRANSPORT_03.Modeoftransportcoded_01 = "30";
            tdtLoop1.TDT.TRANSPORTMEANS_04 = new C228();
            tdtLoop1.TDT.TRANSPORTMEANS_04.Typeofmeansoftransportidentification_01 = "31";

            //  Repeating DTM
            tdtLoop1.DTM = new List();

            //  Estimated departure of truck 5th March 2002 at 11am
            var dtmTdt1 = new DTM();
            dtmTdt1.DATETIMEPERIOD_01 = new C507();
            dtmTdt1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "133";
            dtmTdt1.DATETIMEPERIOD_01.Datetimeperiod_02 = "200203051100";
            dtmTdt1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "203";
            tdtLoop1.DTM.Add(dtmTdt1);

            //  Repeating LOC Groups
            tdtLoop1.LOCLoop = new List();

            //  Begin LOC Group
            var locTdt1 = new Loop_LOC_IFTMIN_2();

            //  Place of truck loading identified with GLN 5412345678908
            locTdt1.LOC = new LOC();
            locTdt1.LOC.Placelocationqualifier_01 = "9";
            locTdt1.LOC.LOCATIONIDENTIFICATION_02 = new C517();
            locTdt1.LOC.LOCATIONIDENTIFICATION_02.Placelocationidentification_01 = "5412345678908";
            locTdt1.LOC.LOCATIONIDENTIFICATION_02.Codelistresponsibleagencycoded_03 = "9";

            //  End LOC Group
            tdtLoop1.LOCLoop.Add(locTdt1);

            //  End TDT Group
            result.TDTLoop.Add(tdtLoop1);

            //  Repeating NAD Groups
            result.NADLoop = new List();

            //  Begin NAD Group 1
            var nadLoop1 = new Loop_NAD_IFTMIN();

            //  Consignor identified with GLN 5412345123453
            nadLoop1.NAD = new NAD();
            nadLoop1.NAD.Partyqualifier_01 = "CZ";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345123453";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  End NAD Group 1
            result.NADLoop.Add(nadLoop1);

            //  Begin NAD Group 2
            var nadLoop2 = new Loop_NAD_IFTMIN();

            //  Carrier identified with GLN 5411234512309
            nadLoop2.NAD = new NAD();
            nadLoop2.NAD.Partyqualifier_01 = "CA";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5411234512309";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  End NAD Group 2
            result.NADLoop.Add(nadLoop2);

            //  Begin NAD Group 3
            var nadLoop3 = new Loop_NAD_IFTMIN();

            //  Consignee identified with GLN 5411234444402
            nadLoop3.NAD = new NAD();
            nadLoop3.NAD.Partyqualifier_01 = "CN";
            nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5411234444402";
            nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  End NAD Group 3
            result.NADLoop.Add(nadLoop3);

            //  Begin NAD Group 4
            var nadLoop4 = new Loop_NAD_IFTMIN();

            //  Delivery party identified with GLN 5412345145660
            nadLoop4.NAD = new NAD();
            nadLoop4.NAD.Partyqualifier_01 = "DP";
            nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345145660";
            nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  End NAD Group 4
            result.NADLoop.Add(nadLoop4);

            //  Repeating GID Groups
            result.GIDLoop = new List();

            //  Begin GID Group
            var gidLoop1 = new Loop_GID_IFTMIN();

            //  First occurrence of goods in one returnable pallet with 14 packages
            gidLoop1.GID = new GID();
            gidLoop1.GID.Goodsitemnumber_01 = "1";
            gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_02 = new C213();
            gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_02.Numberofpackages_01 = "1";
            gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_02.Typeofpackagesidentification_02 = "09";
            gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_02.Codelistresponsibleagencycoded_04 = "9";
            gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_03 = new C213();
            gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_03.Numberofpackages_01 = "14";
            gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_03.Typeofpackagesidentification_02 = "PK";

            //  The goods are foods stuffs
            gidLoop1.HAN = new HAN();
            gidLoop1.HAN.HANDLINGINSTRUCTIONS_01 = new C524();
            gidLoop1.HAN.HANDLINGINSTRUCTIONS_01.Handlinginstructionscoded_01 = "EAT";
            gidLoop1.HAN.HANDLINGINSTRUCTIONS_01.Codelistresponsibleagencycoded_03 = "9";

            //  Transport temperature 0 degrees Celsius
            gidLoop1.TMP = new TMP();
            gidLoop1.TMP.Temperaturequalifier_01 = "2";
            gidLoop1.TMP.TEMPERATURESETTING_02 = new C239();
            gidLoop1.TMP.TEMPERATURESETTING_02.Temperaturesetting_01 = "000";
            gidLoop1.TMP.TEMPERATURESETTING_02.Measureunitqualifier_02 = "CEL";

            //  The range of temperature must be between –5 and 5 degrees Celsius
            gidLoop1.RNG = new RNG();
            gidLoop1.RNG.Rangetypequalifier_01 = "5";
            gidLoop1.RNG.RANGE_02 = new C280();
            gidLoop1.RNG.RANGE_02.Measureunitqualifier_01 = "CEL";
            gidLoop1.RNG.RANGE_02.Rangeminimum_02 = "-5";
            gidLoop1.RNG.RANGE_02.Rangemaximum_03 = "5";

            //  Repeating MOA
            gidLoop1.MOA = new List();

            //  Declared valued of the carriage 45.000 EUR
            var moaGid1 = new MOA();
            moaGid1.MONETARYAMOUNT_01 = new C516();
            moaGid1.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "44";
            moaGid1.MONETARYAMOUNT_01.Monetaryamount_02 = "45000";
            moaGid1.MONETARYAMOUNT_01.Currencycoded_03 = "EUR";
            gidLoop1.MOA.Add(moaGid1);

            //  Repeating PIA
            gidLoop1.PIA = new List();

            //  Product identification of the goods using GTIN 5410738377117
            var piaGid1 = new PIA();
            piaGid1.Productidfunctionqualifier_01 = "5";
            piaGid1.ITEMNUMBERIDENTIFICATION_02 = new C212();
            piaGid1.ITEMNUMBERIDENTIFICATION_02.Itemnumber_01 = "5410738377117";
            piaGid1.ITEMNUMBERIDENTIFICATION_02.Itemnumbertypecoded_02 = "SRV";
            gidLoop1.PIA.Add(piaGid1);

            //  Repeating MEA Groups
            gidLoop1.MEALoop = new List();

            //  Begin MEA GID Group
            var meaGid1 = new Loop_MEA_IFTMIN();

            //  Gross weight of returnable pallet plus 14 packages on the pallet is 250 Kilograms
            meaGid1.MEA = new MEA();
            meaGid1.MEA.Measurementapplicationqualifier_01 = "AAE";
            meaGid1.MEA.MEASUREMENTDETAILS_02 = new C502();
            meaGid1.MEA.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "X7E";
            meaGid1.MEA.VALUERANGE_03 = new C174();
            meaGid1.MEA.VALUERANGE_03.Measureunitqualifier_01 = "KGM";
            meaGid1.MEA.VALUERANGE_03.Measurementvalue_02 = "250";

            //  End MEA GID Group
            gidLoop1.MEALoop.Add(meaGid1);

            //  Repeating PCI Groups
            gidLoop1.PCILoop = new List();

            //  Begin PCI GID Group
            var pciGid1 = new Loop_PCI_IFTMIN();

            //  Marked with the EAN.UCC serial shipping container code
            pciGid1.PCI = new PCI();
            pciGid1.PCI.Markinginstructionscoded_01 = "33E";

            //  Repeating GIN
            pciGid1.GIN = new List();

            //  Identification of marked serial shipping container code
            var ginPci1 = new GIN();
            ginPci1.Identitynumberqualifier_01 = "BJ";
            ginPci1.IDENTITYNUMBERRANGE_02 = new C208();
            ginPci1.IDENTITYNUMBERRANGE_02.Identitynumber_01 = "354123450000000014";
            pciGid1.GIN.Add(ginPci1);

            //  End PCI GID Group
            gidLoop1.PCILoop.Add(pciGid1);

            //  End GID Group
            result.GIDLoop.Add(gidLoop1);

            return result;
        }
    }
}

More operations in ediFabric .NET

IFTMIN questions

Is IFTMIN a booking?

It is the firm instruction. Some partners use IFTMBF or IFTMBC for booking requests and confirmations, and IFTMIN once the shipment is ready.

How does the carrier report progress?

With IFTSTA status reports for each event.

What is the X12 equivalent?

The 204 motor carrier load tender, or the 404 for rail.

How do I parse and generate EANCOM IFTMIN files in .NET?

In .NET, install EdiFabric and EdiFabric.Templates.Edifact, read the file with EdifactReader into TSIFTMIN objects and write them back with EdifactWriter. From any other language, post the file to the ediFabric Cloud REST API, which returns the same structure as JSON and converts JSON back to EANCOM.

Resources

Parse your first EANCOM IFTMIN in five minutes

The Community plan is free forever and needs no credit card. It includes ediFabric .NET, Native and Cloud with one serial key.

Sign up free Validate EDI files free