ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

IFTMIN — Instruction Message (D.96A)

The IFTMIN message carries transport / forwarding instructions for a single consignment from an instructing party to the party arranging the forwarding or transport services, on terms previously agreed.

Purpose

Per the official UN/CEFACT definition, IFTMIN is "a message from the party issuing an instruction regarding forwarding/transport services for a consignment under conditions agreed, to the party arranging the forwarding and/or transport services." The standard specifies that it is a "single-consignment-based message", aligned with the booking messages (IFTMBP, IFTMBF, IFTMBC), the Instruction Contract Status (IFTMCS) and the Arrival Notice (IFTMAN).

IFTMIN covers every mode of transport (road, rail, sea, air, inland waterway) and every party (consignor, consignee, forwarder, broker, carrier). It is the message that closes the loop on transport instructions for a consignment: "pick up X at the consignor at this time, deliver to that consignee, over this routing, with this equipment, under these Incoterms."

Segment structure

IFTMIN D.96A is a flat-structure message, with no formal Header / Detail / Summary split: no UNS, no labelled Detail section. The UNECE spec chains the head-of-message segments directly, then the parties / transport / goods / equipment groups, then UNT.

The header opens with the mandatories: UNH M , BGM M , then a series of message-level conditional segments: CTA C , COM C , DTM C , TSR C , CUX C , MOA C , FTX C , CNT C , DOC C .

Note: DTM is conditional in IFTMIN (not mandatory as in ORDERS). However, at least a DTM+137 (issue date) is expected in practice.

Parties and routing

Then come the consignment-positioning groups:

  • SG1 LOC+DTM — key places and dates (origin, destination, transshipment). LOC[0] qualifies: 9 = Place of loading, 11 = Place of discharge, 13 = Final destination, etc.
  • SG2 TOD+LOC — terms of delivery (Incoterm in TOD[2]).
  • SG3 RFF+DTM — references (booking, transport contract, pre-issued bill of lading).
  • SG4 GOR+DTM+LOC+SEL+FTX — governmental requirements (customs, health certificates).
  • SG5 DOC+DTM — required documents.
  • SG6 CPI+RFF+CUX+LOC+MOA — charge payment instructions, with SG7 TCC for the charge breakdown.
  • SG8 TDT+DTM+TSRmain transport details (mode, conveyance, carrier name) with sub-group SG9 LOC+DTM for ports/stops, SG10 RFF+DTM for transport references.
  • SG11 NAD+LOC+MOAparties (mandatory, up to 99 occurrences): consignor (CZ), consignee (CN), carrier (CA), forwarder (FW), notify (NI), etc. with SG12 CTA+COM for contacts, SG13 DOC+DTM, SG14 TCC, SG15 RFF+DTM, SG16 CPI, SG17 TSR+RFF+LOC+TPL+FTX — per-party service requirements.

Goods and equipment

The business core rides on two loops:

  • SG18 (up to 999 occurrences) GID+HAN+TMP+RNG+TMD+LOC+MOA+PIA+FTXgoods. GID M opens the line, HAN C , TMP C , PIA C . SG18 nests SG19 NAD+DTM+GDS (line-level parties with cargo nature), SG20 MEA+EQN (measurements), SG21 DIM+EQN (dimensions), SG22 RFF+DTM, SG23 PCI+RFF+DTM+GIN (package identification with SSCC), SG24 DOC+DTM, SG25 GOR+DTM+LOC+SEL+FTX (customs requirements), SG26 DOC+DTM, SG27 TPL (Transport Placement), SG28 MEA+EQN, SG29 SGP (Split Goods Placement), SG30 MEA+EQN, SG31 TCC (line charges), SG32 DGS+FTXdangerous goods.
  • SG37 (up to 999 occurrences) EQD+EQN+TMD+MEA+DIM+SEL+TPL+HAN+TMP+FTXtransport equipment: container, trailer, wagon. EQD M opens, SEL C . SG37 nests SG38 TCC+PRI+EQN+PCD+MOA+QTY (equipment charges), SG39 NAD+DTM (party associated with the equipment) with SG40 CTA+COM, SG41 EQA+EQN (attached equipment — chassis, reefer genset).

Trailer

After SG41 comes directly UNT M . IFTMIN has no Summary section.

Mandatory / conditional

Three structural items are strictly mandatory in every D.96A IFTMIN:

  • UNH — opens the message.
  • BGM — gives the function code (610 = Transport instruction, 13 = Request, 9 = Original...) and the number.
  • SG11 with its NAD — at least one parties group (M in the spec, up to 99 occurrences).

On the business side you also need: a DTM+137 (issue date), LOC+9 / LOC+11 (origin / destination), a NAD+CZ (consignor) and NAD+CN (consignee), a NAD+CA (carrier), a TDT for the main carriage, and at least one GID in SG18 with its MEA weight.

Real-world example

A multimodal transport order: 10 pallets (6 tonnes) for pickup in Rouen on May 20 and delivery in Hamburg on May 22, by sea on MV NORTH STAR in a sealed 45GP container.

edifact iftmin-d96a-example.edi
UNB+UNOC:3+5410000000123:14+5410000000999:14+260519:1500+CTRL000060'
UNH+1+IFTMIN:D:96A:UN'
BGM+610+IFTMIN-2026-0519-A+9'
DTM+137:20260519:102'
TSR+30+1'
LOC+9+FRROU+FR:::Rouen'
LOC+11+DEHAM+DE:::Hamburg'
DTM+232:202605201400:203'
DTM+17:202605221700:203'
RFF+CN:BOOKING-2026-0519-A'
TOD+6++CIF'
NAD+CZ+5410000000123::9+ACME LOGISTICS'
NAD+CN+5410000000456::9+ACME PARIS DEPOT'
NAD+CA+5410000000999::9+EUROCARRIER GMBH'
GID+1+10:PAL:67'
HAN+++FRAGILE'
MEA+WT++KGM:6000'
PIA+5+SKU-A:SA'
GDS+H'
TDT+20+VOY-1234+1+13:Sea++:::EUROCARRIER+++:MV NORTH STAR'
EQD+CN+EVRU1234567+45GP:103:5'
EQN+1'
SEL+SEAL-998877:CA'
UNT+19+1'
UNZ+1+CTRL000060'
  • BGM+610+IFTMIN-2026-0519-A+9 — function 610 (Transport instruction), number IFTMIN-2026-0519-A, status 9.
  • DTM+137 — issue date.
  • TSR+30+1 — Transport service: 30 (standard), priority 1.
  • LOC+9 / LOC+11 — Place of loading (Rouen, FRROU) and Place of discharge (Hamburg, DEHAM).
  • DTM+232 / DTM+17 — pickup and delivery dates (qualifier 203 timestamp).
  • RFF+CN — booking number.
  • TOD+6++CIF — Terms of Delivery: CIF Hamburg.
  • NAD+CZ / NAD+CN / NAD+CA — Consignor, Consignee, Carrier.
  • GID+1+10:PAL:67 — 10 pallet-type packages (qualifier 67 = unit load).
  • HAN — "Fragile" handling.
  • MEA+WT++KGM:6000 — weight: 6,000 kg.
  • TDT+20 — Transport stage 20 (Main carriage), conveyance VOY-1234, mode 1 (Sea), vessel MV NORTH STAR.
  • EQD+CN+EVRU1234567+45GP:103:5 — Equipment: container EVRU1234567, type 45GP (40-foot high-cube), source code ISO 6346.
  • SEL+SEAL-998877:CA — seal SEAL-998877, applied by the carrier (CA).
  • UNT+19+1 — 19 segments.

Common errors

  • IFTMIN vs IFTMBF confusion — IFTMIN is the instruction (giving the transport order), IFTMBF is the firm booking confirmation. Many TMS implementations mix them up. IFTMIN is used once the shipment is booked and you're transmitting detailed operational instructions.
  • Missing NAD+CA — no carrier identified means the recipient doesn't know who's expected to execute. Carrier is always required in practice, even though SG11 only asks for "at least one NAD".
  • GID without weight MEA — a consignment without a weight is unusable for pricing, routing and equipment allocation. MEA+WT++KGM:<n> (or LBR) must always sit next to a GID in SG18.
  • EQD without qualifier — the EQD must carry a clear EQD[0] (CN container, TT tractor + trailer, RR rail wagon). Without a qualifier, the carrier doesn't know what equipment to dispatch.
  • Incoterm without a place — a TOD+6++CIF without a following LOC+11 spelling out "CIF Hamburg" opens a dispute over which side bears costs and risks. Incoterm + place are inseparable.
  • Dangerous goods without DGS — for ADR/IMDG/IATA-DGR transport, the DGS segment (SG32 inside SG18) is a business mandatory. Skipping it leads to customs refusals and fines.

IFTMIN belongs to the "single consignment" transport message family:

  • IFTSTA D.96A — the status message returned by the carrier (tracking events).
  • DESADV D.96A — the commercial-flow despatch advice, which references the IFTMIN.
  • ORDERS D.96A — the originating commercial order, referenced via RFF+ON.
  • IFTMBC, IFTMBP, IFTMBF — the booking family (request, proposal, firm).
  • IFTMCS — the contract status.
  • IFTMAN — the arrival notice.
  • CONTRL D.96A — the automatic syntactic acknowledgment.

JSON equivalent

JSON projection matching the example above. The mapping is not normative — it's an ediverse convention to ease integration in TypeScript / Python environments.

json iftmin-d96a-equivalent.json
{
  "interchange": {
    "controlRef": "CTRL000060",
    "from": { "id": "5410000000123", "qualifier": "14" },
    "to": { "id": "5410000000999", "qualifier": "14" },
    "datetime": "2026-05-19T15:00:00Z",
    "syntax": { "id": "UNOC", "version": "3" }
  },
  "message": {
    "ref": "1",
    "type": "IFTMIN",
    "version": { "syntax": "D", "release": "96A", "agency": "UN" }
  },
  "transportInstruction": {
    "number": "IFTMIN-2026-0519-A",
    "function": "610",
    "status": "9",
    "issueDate": "2026-05-19",
    "service": { "code": "30", "priority": "1" },
    "origin": { "code": "FRROU", "country": "FR", "name": "Rouen" },
    "destination": { "code": "DEHAM", "country": "DE", "name": "Hamburg" },
    "pickupAt": "2026-05-20T14:00:00Z",
    "deliveryAt": "2026-05-22T17:00:00Z",
    "incoterm": "CIF",
    "parties": {
      "consignor": { "gln": "5410000000123", "name": "ACME LOGISTICS" },
      "consignee": { "gln": "5410000000456", "name": "ACME PARIS DEPOT" },
      "carrier": { "gln": "5410000000999", "name": "EUROCARRIER GMBH" }
    },
    "goods": {
      "ref": 1,
      "count": 10,
      "packageType": "PAL",
      "handling": "FRAGILE",
      "weightKg": 6000,
      "sku": "SKU-A",
      "nature": "H"
    },
    "transport": {
      "stage": "20",
      "conveyance": "VOY-1234",
      "mode": "1",
      "type": "Sea",
      "carrierName": "EUROCARRIER",
      "vesselName": "MV NORTH STAR"
    },
    "equipment": {
      "id": "EVRU1234567",
      "type": "45GP",
      "supplier": "5",
      "quantity": 1,
      "seal": "SEAL-998877"
    },
    "references": { "booking": "BOOKING-2026-0519-A" }
  }
}