IFTMIN D01B Integration

Viya offers a standard IFTMIN implementation for enabling legacy systems to connect to latest Viya technology.
Although legacy systems are hard to adjust, Viya does not offer a completely flexible integration.
In the situation where additional field mapping is required, Viya should be contacted.

Integration types

This integration offers the following integration types:

1. Order and Labeling

Submitting an order to the Order and Labeling integration will not result in communication towards a carrier.
Instead a number per handling unit is requested from a predefined range.
This number will be assigned to the handling unit and stored as trackingReference.
The aquired tracking number will also be printed on the standard Viya shipping label.

2. Manifesting

The manifest is send towards the carrier in order to inform them about the complete load of a truck/container.
The message can contain 1 order, or a collection of multiple orders.
The IFTMIN D01B message does not support manifest level information, so the IFTMIN will contain a list of shipments without reference to a specific manifest. One file = one manifest.

IFTMIN specific configuration

As each IFTMIN implementation can be different, the following configuration options are available:

Data format

Edifact messages are constructed by wrapping the content in controll characters.
Viya uses the standard Edifact characters by default (see below table, the UNA1-UNA6 fields), but provides configuration options to change the default reserved characters if needed.

UNA1 - Component data element separatorUsed as a separator between component data elements contained
within a composite data element (default value: ’:‘)
No (default used)
UNA2 - Data element separatorUsed to separate two simple or composite data elements (default value: ’+‘)No (default used)
UNA3 - Decimal markUsed to indicate the character used for decimal notation (default value:’.‘)No (default used)
UNA4 - Release characterUsed to restore any service character to its original specification (default value: ’?‘)No (default used)
UNA5 - Repetition separatorUsed to indicate the character used for repetition separation (default value: ’*‘)
UNA6 - Segment terminatorUsed to indicate the end of segment data (default value:''')No (default used)

Data quality

In case a field value exceeds the maximum length allowed by IFTMIN, the field will be automatically truncated to the allowed maximum number of characters.
For address fields you do not always want the system to cut-off the data, so if desired: you can configure the integration to force the user to adjust the address details to fit within IFTMIN limits upon generating the label (ordering step).

Cut address fields to allowed sizeMark the checkbox if you wish to truncate address fields when they exceed
the maximum character limit permitted by IFTMIN.
For specific details on the maximum character limits for each address field,
please refer to the IFTMIN documentation available at
No (default used)

File routing

Typically carriers route a file within their system based on the filename and Sender/Receiver information.

Sender GLNValue identifying the sender of the message,
If available use GLN.
Receiver GLNValue identifying the receiver of the message.
If available use GLN. The carrier should provide this value.
Filename prefixTypically use the code_company, this is the first part of the filename. Only use this if the standard filename is not sufficient for the carrier.No

IFTMIN D01B Message Definition

SegmentGroupSegment NoNameMandatoryOccurencesEdiFactory Link
UNAService string adviceC1
UNBInterchange headerM1Specs
UNH0010Message headerM1Specs

Loop per shipment (sh):

shBGM0020Beginning of messageM1Specs
shTSR0060Transport service requirementsC9Specs
shMOA0080Monetary amountC99Specs
shFTX0090Free text (shipment level)C99Specs
shCNT0100Control totalC9Specs
shTOD20170Terms of delivery or transportM1Specs
shRFF30200Reference (shipment level)M1Specs
shNAD110580Name and addressM1Specs
shCTA121550Contact informationM1Specs
shCOM121560Communication contactC9Specs
shRFF150760Reference (address level)M1Specs

Loop per handlingUnit (hu):

shhuGID180910Goods item detailsM1Specs
shhuFTX180990Free Text (goods item level)C99Specs
shhuPCI231160Package identificationM1Specs
shhuGIN231160Goods identity numberC10Specs

Loop per dangerousGoods item within handlingUnit (dg):

shhudgDGS321520Dangerous goodsM1Specs
shhudgFTX321530Free Text (dangerous goods level)C99Specs
UNT2000Message trailerM1Specs
UNZInterchange trailerM1Specs

UNA Segment

Message > UNA Segment (Service string advice)

This segment is used to inform the receiver of the interchange that a set of service string characters which are different to the default characters are being used. When using the default set of service characters, the UNA segment need not be sent.
Usage: UNA:+,?*‘

FieldNameDescriptionDefaultField LengthMandatory
UNA1Component data element separatorUsed as a separator between component data elements
contained within a composite data element
UNA2Data element separatorUsed to separate two simple or composite data elements+1M
UNA3Decimal notationUsed to indicate the character used for decimal notation.1M
UNA4Release indicatorUsed to restore any service character to its original specification?1M
UNA5Reserved for future usen/a' ' (space)1M
UNA6Segment terminatorUsed to indicate the end of segment data' (Apostrophe)1M

UNB Segment

Message > UNB Segment (Interchange header)

This segment is used to envelope the interchange, as well as to identify both, the party to whom the interchange is sent and the party who has sent the interchange. The principle of the UNB segment is the same as a physical envelope which covers one or more letters or documents, and which details, both the address where delivery is to take place and the address from where the envelope has come.
Usage: UNB+0001:0002+0004:0007+0010:0007+0017:0019+0020

FieldDescriptionValueField LengthMandatory
0001Syntax identifier'UNOC' (UN/ECE level C / ISO/IEC 8859-1)4M
0002Syntax version number'4' (Version 4, ISO 9735:1998)1M
0004Interchange sender identificationConfiguration.iftminD01bSenderGln35M
0007Identification code qualifier'14' (EAN International)4C
0010Interchange recipient identificationConfiguration.iftminD01bReceiverGln35M
0017DateCurrent Date YYYYMMDD8M
0019TimeCurrent Time HHMM4M
0020Interchange control referenceRandom generated number.
Needs to be equal to Interchange control reference
in UNZ segment.

UNH Segment

Message > UNH Segment (Message header)

To head, identify and specify a message.
Usage: UNH+0062+0065:0052:0054:0051:0057

FieldDescriptionValueField LengthMandatory
0062Message reference numbershipment.reference14M
0065Message type'IFTMIN' (Instruction message)6M
0052Message version number'D' (Draft version/UN/EDIFACT Directory)3M
0054Message release number'01B' (Release 2001 - B)3M
0051Controlling agency, coded'UN' (UN/CEFACT)3M
0057Association assigned code'EAN004'6C

BGM Segment

Message > BGM Segment

To indicate the type and function of a message and to transmit the identifying number.
Usage: BGM+1001+1004+1225

FieldDescriptionValueField LengthMandatory
1001Document name code'610' (Forwarding instructions)3C
1004Document identifiershipment.reference35C
1225Message function code'9' (Original)3C

DTM Segment

Message > DTM Segment (Date/Time/Period)

A segment to indicate a date and time applying to the whole message, e.g., date and time of document issue.
Usage: DTM+2005:2380:2379

FieldDescriptionValueField LengthMandatory
2005Date or time or period function code qualifierDate Function Codes3M
2380Date or time or period valueSee Date format Codes35C
2379Date or time or period format codeDate Format Codes3C

TSR Segment

Message > TRS Segment (Transport Service Requirements)

A segment to identify the contract, conditions of carriage, services, and priority requirements for the transport.
Usage: TSR+4065+7273

FieldDescriptionValueField LengthMandatory
4065Contract and carriage condition codeContract Condition Codes3M
7273Service requirement codeService Requirement Codes3M

MOA Segment

Message > MOA Segment (Monetary Amount)

A segment to indicate a monetary value for entire consignment, e.g. insured value, invoice amount, disbursements, etc.
Usage: MOA+5025:5004:6345

FieldDescriptionValueField LengthMandatory
5025Monetary amount type code qualifierMonetary Type Codes3M
5004Monetary amountSee Monetary Type Codes3C
6345Currency type code qualifierSee Monetary Type Codes3C

FTX Segment

Message > FTX Segment (Free Text)

A segment to specify free form or processable supplementary information, such as status of transport, remarks to be printed on the transport documents (where required), consignment remarks, insurance instructions, etc., or any other additional information.
Usage: FTX+4451+++4440

FieldDescriptionValueField LengthMandatory
4451Text Subject code qualifierText Subject Codes (0090, shipment level)
Text Subject Codes (0990, goods item level)
Text Subject Codes (1530, dangerous goods level)
4440Free text valueSee Text Subject Codes512C

CNT Segment

Message > CNT Segment (Control Total)

A segment to specify totals for a consignment.
Usage: CNT+6069:6066:6411

FieldDescriptionValueField LengthMandatory
6069Control total type code qualifierControl Type Codes3M
6066Control total valueSee Control Type Codes18M
6411Measurement unit codeSee Control Type Codes3C

TOD Segment

Message > TOD Segment (Terms of delivery or transport)

A group of segments to specify terms of delivery and related locations.
Usage: TOD+4055++4052

FieldDescriptionValueField LengthMandatory
4055Delivery or Transport terms function codeDelivery function Codes1M
4052Delivery or transport terms descriptionshipment.incoterms.incoterm70C

RFF Segment

Message > RFF Segment (Reference)

A segment to express a reference which applies to the entire message such as: the document/message number that is to be updated by this very message (according to data element 1225 Message function code in segment BGM), booking reference, order number, insurance contract, etc.
Usage: RFF+1153:1154

FieldDescriptionValueField LengthMandatory
1153Reference code qualifierReference Codes (0200, shipment level)
Reference Codes (0760, address level)
1154Reference identifierSee Reference Codes70C

NAD Segment

Message > NAD Segment (Name and address)

A segment to identify the party’s name, address, and function.
Usage: NAD+3035+3039++3036:3036+3042+3164++3251+3207

FieldDescriptionValueField LengthMandatory
3035Party function code qualifierParty Function Codes3M
3039Party identifieraddress.eori
If empty, '0000'
3036Party nameaddress.companyName
if available we add
3042Street and number or post office box identifieraddress.addressLine1 + address.streetNumber35M
3164Name of a cityaddress.city35C
3251Postal identification codeaddress.postCode17C
3207Country name codeaddress.countryCode3C

CTA Segment

Message > CTA Segment (Contact information)

A segment to identify a person or department within a party.
Usage: CTA+3139+:3412

FieldDescriptionValueField LengthMandatory
3139Contact function code'IC'3C
3039Department or employee nameaddress.contactName35C

COM Segment

Message > COM Segment (Communication contact)

A segment to identify a communication number of a person or department to whom communication should be directed.
Usage: COM+3148+:3155

FieldDescriptionValueField LengthMandatory
3148Communication address identifieraddress.contactPhone for phone
address.contactEmail for email
3039Communication address code qualifier'TE' for phone
'EM' for email

GID Segment

Message > GID Segment (Goods item details)

To indicate totals of a goods item.
Usage: GID+1496+7224:7065:::7064

FieldDescriptionValueField LengthMandatory
1496Goods item numberCounter, for each Goods Item +15C
7224Package quantity1, we do not group packages8C
7065Package type description codeshipment.handlingUnits.packageTypeCode17C
7064Type of packagesshipment.handlingUnits.description35C

MEA Segment

Message > MEA Segment (Measurements)

To specify physical measurements, including dimension tolerances, weights and counts.
Usage: MEA+6311+6313+6411:6314

FieldDescriptionValueField LengthMandatory
6311Measurement purpose code qualifierWT for weight
VOL for volume
6313Measured attribute codeGW for weight
Empty for volume
6411Measurement unit codeshipment.weightUnit for weight
shipment.dimensionUnit for volume
6314Measurement valueshipment.handlingUnits.weight for weight

shipment.handlingUnits.length * shipment.handlingUnits.width * shipment.handlingUnits.height for volume

DIM Segment

Message > DIM Segment (Dimensions)

To specify dimensions.
Usage: DIM+6145+6411:6168:6140:6008

FieldDescriptionValueField LengthMandatory
6145Dimension type code qualifier2 (Package dimensions (including goods))3M
6411Measurement unit codeshipment.dimensionUnit3M
6168Length dimension valueshipment.handlingUnits.length15C
6140Width dimension valueshipment.handlingUnits.width15C
6008Height dimension valueshipment.handlingUnits.height15C

PCI Segment

Message > PCI Segment

To specify markings and labels on individual packages or physical units.
Usage: PCI++7102

FieldDescriptionValueField LengthMandatory
7102Shipping marks descriptionshipment.handlingUnits.references.reference35M

GIN Segment

Message > GIN Segment (Goods identify number)

To give specific identification numbers, either as single numbers or ranges.
Usage: GIN+7405+7402 (Only when not empty)

FieldDescriptionValueField LengthMandatory
7405Object Identification code qualifierAW (Serial shipping container code)3M
7102Object identifiershipment.handlingUnits.trackingReference35M

DGS Segment

Message > DGS Segment

To identify dangerous goods.
Usage: DGS+8273+8351+7124++8339+++++8246+8255+8325

FieldDescriptionValueField LengthMandatory
8273Dangerous goods regulation codeADR (Currently only ADR supported)3C
8351Hazard identification codegoodsItem.dangerousGoods.class7M
7124United Nations Dangerous Goods (UNDG) identifiergoodsItem.dangerousGoods.unNumber4C
8339Packaging danger level codegoodsItem.dangerousGoods.packingGroup3C
8246Dangerous goods marking identifiergoodsItem.dangerousGoods.type4C
8255Packing instruction type codegoodsItem.dangerousGoods.packingCode3C
8325Hazardous means of transport category codegoodsItem.dangerousGoods.transportCategory3C

UNT Segment

Message > UNT Segment

To end and check the completeness of a message.
Usage: UNT+0074+0062

FieldDescriptionValueField LengthMandatory
0074Number of segments in a messageCount number of segments in message.
Exclude UNZ segment.
0062Message reference numbershipment.reference14M

UNZ Segment

Message > UNZ Segment (Interchange trailer)

To end and check the completeness of an interchange.
Usage: UNZ+0036+0020

FieldDescriptionValueField LengthMandatory
0036Interchange control countCount number of shipments in message.6M
0020Interchange control referenceRandom generated number.
Needs to be equal to Interchange control reference
in UNB segment.

Code Tables

Date Function Codes

Message > DTM > EdiFactory Date Function Codes

CodeDescriptionViya MappingTrigger
2Delivery date/time, requestedtimeWindows.delivery.startshipment.timeWindows.delivery.start provided, shipment.timeWindows.delivery.end not provided
63Delivery date/time, latesttimeWindows.delivery.endshipment.timeWindows.delivery.start and shipment.timeWindows.delivery.end both provided
64Delivery date/time, earliesttimeWindows.delivery.startshipment.timeWindows.delivery.start and shipment.timeWindows.delivery.end both provided
137Document/message date/timecurrent date/time in CCYYMMDDHHMM formatAlways (mandatory)
179Booking date/timecurrent date/time in CCYYMMDDHHMM formatAlways
200Pick-up/collection date/time of cargoshipment.timeWindows.pickup.startshipment.timeWindows.pickup.start provided, shipment.timeWindows.pickup.end not provided
234Collection date/time, earliestshipment.timeWindows.pickup.startshipment.timeWindows.pickup.start and shipment.timeWindows.pickup.end both provided
235Collection date/time, latestshipment.timeWindows.pickup.endshipment.timeWindows.pickup.start and shipment.timeWindows.pickup.end both provided

Date Format Codes

Message > DTM > EdiFactory Date Format Codes

102Calendar dateCCYYMMDDC = Century, Y = Year, M = Month, D = Day
203Calendar date including time with minutesCCYYMMDDHHMMC=Century, Y=Year, M=Month, D=Day, H=Hour, M=Minutes

Contract Condition Codes

Message > TSR > EdiFactory Contract Condition Codes

CodeDescriptionViya MappingTrigger
10Port to Portshipment.incoterms.scopescope=portToPort
27Door to Doorshipment.incoterms.scopescope=doorToDoor
28Door to Portshipment.incoterms.scopescope=doorToPort
29Port to Doorshipment.incoterms.scopescope=portToDoor

Service Requirements Codes

Message > TSR > EdiFactory Service Requiments Codes

CodeDescriptionViya MappingTrigger
47Consignment held for pick-upshipment.serviceOptions.holdForPickupholdForPickup = true

Delivery Function Codes

Message > TOD > EdiFactory Delivery Function Codes

CodeDescriptionViya MappingTrigger
6Delivery conditionshipment.incoterms.incotermHas value
Enum: exw,fca,cpt,cip,dat,dap,ddp,ddu,cif,fob,dpu,fas,cfr

Monetary Type Codes

Message > MOA > EdiFactory Monetary Type Codes

CodeDescriptionViya MappingTrigger
22Cash on Delivery Amount5004 : shipment.serviceOptions.cashOnDelivery.value
6345 : shipment.serviceOptions.cashOnDelivery.currencyCode
cashOnDelivery.value has value
40Customs value5004 : Sum of all shipment.ShipmentPackages.CommercialInvoice.
6345 : shipment.CodeCurrencyValue
Sum of all CommercialInvoiceRows.InternalPrice > 0
44Declared value for carriage5004 : shipment.declaredValue.value
6345 : shipment.declaredValue.currencyCode
declaredValue.value has value
52Discount charge5004 : shipment.commercialInvoice.charges.discount.value
6345 : shipment.commercialInvoice.charges.discount.currencyCode
discount.value has value
64Freight charge5004 : shipment.commercialInvoice.charges.freight.value
6345 : shipment.commercialInvoice.charges.freight.currency
freight.value has value
157Insurance value5004 : shipment.commercialInvoice.charges.insurance.value
6345 : shipment.commercialInvoice.charges.insurance.currencyCode
insurance.value has value

Text Subject Codes Shipment Level 0090

Message > FTX > Text Subject Codes 0090

CodeDescriptionViya MappingTrigger
AAAGoods descriptionshipment.descriptionHas value
DINDelivery instructionsshipment.instructions.carrierInstructions.deliveryHas value
LOILoading instructionsshipment.instructions.carrierInstructions.collectionHas value
AAIGeneral instructionsshipment.instructions.carrierInstructions.transportHas value
AINConsignment Routingshipment.instructions.carrierRouteCodeHas value
TCATariff appliedshipment.serviceLevelReferenceHas value
Note we standard add ‘:SERVICELEVEL’
AFHCustomer complaintshipment.references.complaintNumberHas value
RETReturn to origin informationshipment.references.rmaNumberHas value

Text Subject Codes Goods Item Level 0990

Message > FTX > Text Subject Codes 0990

CodeDescriptionViya MappingTrigger
AAAGoods descriptionshipment.handlingUnits.descriptionHas value

Text Subject Codes Dangerous Goods Level 1530

Message > FTX > Text Subject Codes 1530

CodeDescriptionViya MappingTrigger
ADWCharacteristics of goodsshipment.handlingUnits.goodsItems.dangerousGoods.typeIf value = exceptedQuantity, EQ
If value = limitedQuantity, LQ
else ignored.
AADDangerous goods, technical nameshipment.handlingUnits.goodsItems.dangerousGoods.technicalNameHas value
SRNSubsidiary risk numbershipment.handlingUnits.goodsItems.dangerousGoods.subriskHas value
AACDangerous goods additional informationshipment.handlingUnits.goodsItems.dangerousGoods.properShippingNameHas value
AACDangerous goods additional informationshipment.handlingUnits.goodsItems.dangerousGoods.packingInstructionsHas value

Control Type Codes

Message > CNT > Control Type Codes

CodeDescriptionViya MappingTrigger
7Total gross weight6066 : sum shipment.handlingUnits.weight
6411 : shipment.weightUnit
11Total number of packages6066 : count shipment.handlingUnitsAlways
15Total consignment, cube6066 : sum (shipment.handlingUnits.length *
shipment.handlingUnits.width *
6411 : shipment.dimensionUnit

Reference Codes Shipment Level 0200

Message > RFF > Reference Codes 0200

CodeDescriptionViya MappingTrigger
CUConsignor’s reference numbershipment.shipmentCodeHas value
SRNShipment reference numbershipment.referenceHas value
AAOConsignee’s shipment reference numbershipment.references.shipmentNumberHas value
IVInvoice Numbershipment.commercialInvoice.invoiceNumberHas value
BMBill of lading numbershipment.references.billOfLadingNumberHas value
BNBooking reference numbershipment.references.bookingConfirmationNumberHas value
AAQUnit load device (e.g. container) identification numbershipment.references.containerNumberHas value
AWECost centreshipment.references.costCenterHas value
ABRExport clearance instruction reference numbershipment.references.customsClearanceNumberHas value
ONOrder number (purchase)shipment.references.customerPurchaseOrderHas value
AGQDomestic flight numbershipment.references.flightNumberHas value and shipment is Domestic
AGRInternational flight numbershipment.references.flightNumberHas value and shipment is International
LOLoad planning numbershipment.references.loadNumberHas value
AAJDelivery order numbershipment.references.sapDeliveryHas value
VONVoyage numbershipment.references.voyageHas value

Reference Codes Address Level 0760

Message > RFF > Reference Codes 0760

CodeDescriptionViya MappingTrigger
ADEAccount numbershipment.addresses.[addresstype].carrierAccountReferenceHas value
VAVAT registration numbershipment.addresses.[addresstype].vatHas value

Party Function Codes

Message > NAD > EdiFactory Party Function Codes

CodeDescriptionViya MappingTrigger
CZConsignorshipment.addresses.senderHas value
CNConsigneeshipment.addresses.receiverHas value
PWDespatch partyshipment.addresses.collectionHas value
OJThird partyshipment.addresses.thirdPartyHas value
BYBuyershipment.addresses.buyerHas value
SESellershipment.addresses.sellerHas value
UCUltimate consigneeshipment.addresses.ultimateHas value
IBIntermediary/brokershipment.addresses.brokerHas value
IMImportershipment.addresses.importerOfRecordHas value
DPDelivery partyshipment.addresses.dropOffHas value
CUContainer return companyshipment.addresses.returnHas value
CGCarrier’s agentshipment.addresses.carrierAgentHas value
NINotify partyshipment.addresses.notifyHas value
OYOrdering customershipment.addresses.shippingLocationHas value
HMAlternative manufacturershipment.addresses.neutralSenderHas value