Mainfreight onboarding process
Start using Mainfreight by following the steps below.
- Send email to your Mainfreight account manager (with servicedesk@shipitsmarter.com on cc) with following text:
- Mainfreight will provide you with the requested information. You can enter that in the
onboarding
page of the Mainfreight carrier profile page in the Viya.me portal.
Initially Mainfreight will provide a Principal Relation Number
for playground only. Once you have send a few test messages and Mainfreight has confirmed that everything is working as expected, they will provide you with a Principal Relation Number
for production.
Enjoy shipping!
Mapping specifics
The integration with Mainfreight is based on the Mainfreight XML format. Below you will find the specifics of the Mainfreight integration.
Incoterms
Mainfreight uses specific codes for incoterms / Terms of delivery TOD
.
Mainfreight TOD Code | Description | Trigger |
---|---|---|
102 | Delivered Duty Unpaid - not customs cleared | Incoterm = DDU |
111 | Delivered Duty Paid - customs cleared, duty paid, tax paid | Incoterm = DDP |
121 | Delivered Duty Paid - customs cleared, duty paid, tax unpaid | Incoterm = DDP and splitDutiesFromVat = true |
200 | Carriage Paid To RP - not customs cleared | Incoterm = CPT and dutiable* = false |
221 | Carriage Paid To RP - customs cleared, duty paid, tax unpaid | Incoterm = CPT and dutiable* = true and splitDutiesFromVat = true |
222 | Carriage Paid To RP - customs cleared, duty unpaid, tax unpaid | Incoterm = CPT and dutiable* = true |
300 | Ex Works | Incoterm = EXW |
800 | Free Carrier | Incoterm = FCA |
F00 | Delivered At Place | Incoterm = DAP |
H00 | Delivered At Place - unloaded | Incoterm = DPU |
Note:
dutiable
=true
means the shipment crosses a customs border. Eg:
- Dutiable: Shipment from NL to CH
- Not dutiable: Shipment from NL to DE
Other incoterms
These are not implemented specifically but Mainfreight offers them via their integration. You can configure these based on the incoterms in the onboarding page of the Mainfreight integration. If a desired combination is not possible, please contact us.Mainfreight TOD Code | Description | Trigger |
---|---|---|
122 | Delivered Duty Paid - customs cleared, duty unpaid, tax unpaid | Not implemented |
211 | Carriage Paid To RP - customs cleared, duty paid, tax paid | Not implemented, is basically DDP |
D00 | Delivered At Frontier (export border) | Not implemented |
E00 | Delivered At Frontier (import border) - not customs cleared | Not implemented |
E11 | Delivered At Frontier (import border) - customs cleared, duty paid, tax paid | Not implemented |
E21 | Delivered At Frontier (import border) - customs cleared, duty paid, tax unpaid | Not implemented |
E22 | Delivered At Frontier (import border) - customs cleared, duty unpaid, tax unpaid | Not implemented |
G00 | Delivered At Terminal | Not implemented |
Service options Supported
Overview of implemented (special) services for Mainfreight
Mainfreight Service Code | Description | Trigger |
---|---|---|
F06 | Consignment for attention of: … (additional text) | receiver.contactName populated |
F51 | Tail lift for delivery required | serviceOptions.liftGate.delivery = true |
F60 | Direct Delivery by RP | Not implemented. MFR internal code |
F61 | Fragile goods - handle with care | serviceOptions.fragile = true |
F27 | Nothing to be loaded on top of pallet/package | if any handlingUnit.isStackable = false |
F22 | Temperature sensitive – keep specified temperature | serviceOptions.equipmentTemperature populated |
124 | MRN (additional text) | references.customsClearanceNumber populated |
134 | B2C | serviceOptions.residentialDelivery = true |
F70 | Delivery Note Number (additional text) | if configuration for deliveryNoteNumber is made in manifesting |
F71 | Customer reference number (additional text) | if configuration for customerReferenceNumber is made in manifesting |
F72 | Consignor’s reference (additional text) | if configuration for consignorReference is made in manifesting |
601 | Star Collect Avis (additional text) | serviceOptions.returns.IsReturn = true (*) and serviceOptions.appointmentForDelivery = true |
607 | Tail lift required for pick-up | serviceOptions.liftGate.collection = true |
800 | Star Priority | serviceLevelReference = STARPRIO |
803 | Star Priority 8 | serviceLevelReference = STARPRIO08 |
805 | Star Priority 10 | serviceLevelReference = STARPRIO10 |
807 | Star Priority 12 | serviceLevelReference = STARPRIO12 |
810 | Star Date (Date “yyyy-MM-dd”) | serviceLevelReference = STARDATE and timeWindows.delivery is populated |
813 | Star Date 8 (Date “yyyy-MM-dd”) | serviceLevelReference = STARDATE08 and timeWindows.delivery is populated |
815 | Star Date 10 (Date “yyyy-MM-dd”) | serviceLevelReference = STARDATE10 and timeWindows.delivery is populated |
817 | Star Date 12 (Date “yyyy-MM-dd”) | serviceLevelReference = STARDATE12 and timeWindows.delivery is populated |
819 | Star Window (Date+TimeFrom+TimeTill “yyyy-MM-dd hh24:mi:ss hh24:mi:ss”) | timeWindows.delivery.start & end are populated with date and time and timeWindows.delivery.fixed = false |
830 | Star Cash - Cash on Delivery | serviceOptions.cashOnDelivery.value = populated and above 0 |
833 | Star Avis (additional text) | serviceOptions.appointmentForDelivery = true |
834 | Star Avis - Call during delivery tour, phone no. (additional text) | serviceOptions.preAdviceDelivery.useDriverPhone = true and receiver.contactPhone is populated |
843 | Consignee Reference No. or Order No. | if configuration for consigneeReference is made in manifesting |
846 | Fixed Delivery Date and Time (Date+TimeFrom “yyyy-MM-dd hh24:mi:ss”) | timeWindows.delivery.start + end populated with date and time and timeWindows.delivery.fixed = true |
MDS | Delivery with small delivery van | serviceOptions.smallVehicle = true |
Other services
These are not implemented but Mainfreight offers them via their integration. If you need any of these service options, please contact us.Mainfreight Service Code | Description | Trigger |
---|---|---|
F03 | Attention! Customs bonded goods, t-form attached (T1/T2/T2F): … (additional text) | Not implemented |
F04 | Advice/notification already made: … (addidtional text) (name of the person the delivery has been arranged with) | Not implemented |
F05 | Deadline for presentation to customs: … (additional text “DDMMYYYY”) | Not implemented |
F60 | Direct Delivery by RP | Not implemented. MFR internal code |
F21 | Consignment must be transported lying down | Not implemented |
F26 | Consignment must be transported upright | Not implemented |
F28 | Delivery note / packing list attached to package | Not implemented |
F37 | Goods have been customs cleared | Not implemented |
F75 | Direct Pick-up by SP | Not implemented. MFR internal code |
F76 | Direct Delivery by SP | Not implemented. MFR internal code |
123 | Goods shipped under HACCP conditions | Not implemented |
131 | Delivery of complete consignment only | Not implemented |
133 | Long goods - Group 1 | Not implemented. MFR internal code |
138 | Long goods - Group 2 | Not implemented. MFR internal code |
139 | Long goods - Group 3 | Not implemented. MFR internal code |
F08 | Part of the consignment already loaded in excess on previous vehicle … (additional text) | Not implemented |
F09 | Already shipped by our departure of … (additional text) | Not implemented |
F10 | Subsequent delivery cargo manifest: >consignment number SP< and >cargo manifest number< | Not implemented |
F11 | Consignment refused, returned as per your instruction of … (additional text “DDMMYYYY”), consignment no of SP and RP has to be transmitted | Not implemented |
F12 | Consignment is in excess, returned as per your instruction of … (additional text), consignment no of SP and RP have to be transmitted | Not implemented |
F24 | Consignment already at your premises as per your unloading report of … (additional text) | Not implemented |
F30 | Consignment returned because no other instruction received | Not implemented |
F74 | Return consignment >consignment no. SP< | Not implemented |
395 | Subsequent delivery Gateway >consignment no. SP< | Not implemented |
F78 | Loading aid / load securing device | Not implemented |
503 | Pick-up order number (additional text) | Not implemented |
504 | Hazardous goods information (additional text) | Not implemented. MFR internal code |
508 | Consignor pick-up order reference number (additional text) | Not implemented |
560 | Customer tariff | Not implemented. MFR internal code |
615 | Star Collect Priority | Not implemented. MFR internal code |
616 | Star Collect Date | Not implemented. We use code 507 |
617 | Routing specification pick-up order (additional text) | Not implemented |
618 | Star Collect Document - Delivery Note Transfer | Not implemented. MFR internal code |
831 | Star Cash - Irrevocable Bank Confirmation | Not implemented |
835 | Star Document - Delivery Note Transfer | Not implemented |
836 | Star Document - Delivery Note Signature | Not implemented |
840 | EKAER no. Hungary (additional text) | Not implemented |
841 | Poland SENT Reference (additional text) | Not implemented |
842 | Poland SENT Authorization Code (additional text) | Not implemented |
844 | Forwarding Gateway (only set by central system of System Alliance Europe, branches are not allowed to send it) | Not implemented |
845 | Goods Receiving Hours (additional text) | Not implemented |
847 | ERN UK (additional text) | Not implemented |
848 | MRN EU (additional text) | Not implemented, see code 124. |
Service levels
By default no specific servicelevels are communicated to Mainfreight.
In some instances Mainfreight will want to receive servicelevel codes. Your Mainfreight contact person will indicate if that is desired. If needed: in Manifesting
: enable the “Include service level on shipmentDetails level - Only on request of Mainfreight”.
By setting this to “Yes - …” the following service levels are communicated to Mainfreight:
ID | Desc | trigger |
---|---|---|
819 | Star Window | if timeWindows.delivery.start and timeWIndows.delivery.end populated and not timeWindows.delivery.fixed |
846 | Fixed Delivery Date and Time | if timeWindows.delivery.start and timeWIndows.delivery.end populated and timeWindows.delivery.fixed |
800 | Star Priority | serviceLevelReference = STARPRIO |
803 | Star Priority 8 | serviceLevelReference = STARPRIO08 |
805 | Star Priority 10 | serviceLevelReference = STARPRIO10 |
807 | Star Priority 12 | serviceLevelReference = STARPRIO12 |
810 | Star Date | serviceLevelReference = STARDATE |
813 | Star Date 8 | serviceLevelReference = STARDATE08 |
815 | Star Date 10 | serviceLevelReference = STARDATE10 |
817 | Star Date 12 | serviceLevelReference = STARDATE12 |
Package Types
Below Mainfreight package types are supported, they combine the packageTypeCode
, isStackable
and handlingUnit ground dimensions (length
and width
) to determine the mainfreight code. The handlingUnit length
and width
are interchangeable, meaning a pallet of 80x120 (lxw) or 120x80 (lxw) are handled identically.
Mainfreight Package Type | Description | packageTypeCode | isStackable | ground dimensions |
---|---|---|---|---|
B0 | Block pallet non stackable with deviating dimensions | pallet-100x120-euro | false | not 100x120 |
B1 | Block pallet non stackable with standard dimensions ( 1,20 x 1,00) | pallet-100x120-euro | false | 100x120 |
B2 | Block pallet stackable with standard dimensions ( 1,20 x 1,00) | pallet-100x120-euro | true | 100x120 |
BS | Block pallet stackable with deviating dimensions | pallet-100x120-euro | true | not 100x120 |
E0 | Euro pallet non stackable with deviating dimensions | pallet-80x120-euro , pallet-80x60-euro , pallet-60x40-euro , pallet-40x30-euro | false | not 80x120 |
E1 | Euro pallet non stackable with standard dimensions ( 1,20 x 0,80) | pallet-80x120-euro | false | 80x120 |
E2 | Euro pallet stackable with standard dimensions ( 1,20 x 0,80) | pallet-80x120-euro | true | 80x120 |
ES | Euro pallet stackable with deviating dimensions | pallet-80x120-euro , pallet-80x60-euro , pallet-60x40-euro , pallet-40x30-euro | true | not 80x120 |
H0 | Half pallet non stackable with deviating dimensions | pallet-80x60 | false | not 80x60 |
H1 | Half pallet non stackable with standard dimensions ( 0,80 x 0,60) | pallet-80x60 | false | 80x60 |
H2 | Half pallet stackable with standard dimensions ( 0,80 x 0,60) | pallet-80x60 | true | 80x60 |
HS | Half pallet stackable with deviating dimensions | pallet-80x60 | true | not 80x60 |
IB | IBC | starts with ibc | - | - |
O0 | One way pallet non stackable with deviating dimensions | pallet-100x120-oneway , pallet-80x60-oneway , pallet-oneway , pallet-80x120-oneway | false | not 80x120 |
O5 | One way pallet non stackable with standard dimensions ( 1,20 x 0,80) | pallet-80x120-oneway | false | 80x120 |
O6 | One way pallet stackable with standard dimensions ( 1,20 x 0,80) | pallet-80x120-oneway | true | 80x120 |
OS | One way pallet stackable with deviating dimensions | pallet-100x120-oneway , pallet-80x60-oneway , pallet-oneway , pallet-80x120-oneway | true | not 80x120 |
Q0 | Quarter pallet non stackable with deviating dimensions | pallet-40x60-chep | false | not 40x60 |
Q1 | Quarter pallet non stackable with standard dimensions ( 0,60 x 0,40) | pallet-40x60-chep | false | 40x60 |
Q2 | Quarter pallet stackable with standard dimensions ( 0,60 x 0,40) | pallet-40x60-chep | true | 40x60 |
QS | Quarter pallet stackable with deviating dimensions | pallet-40x60-chep | true | not 40x60 |
CR | Crate | starts with crate | - | - |
CT | Carton | starts with box | - | - |
DR | Drum | starts with drum | - | - |
PX | Undefined Pallet | starts with pallet | - | - |
BL | Bale | starts with bale | - | - |
In case the package type is not found in the table above, an error is provided upon ordering.
You can add your own “custom package type mapping” in the onboarding page of the Mainfreight integration:
DG Package Types
Below Mainfreight Dangerous Goods package types are implemented and can be provided on goodsItem.dangerousGoods level.
Mainfreight package type | Description | packageTypeCode |
---|---|---|
BG | Bag | Contains BAG |
CN | Jerri cans CAN | Contains CAN |
CT | CARTON | Contains CARTON or contains BOX |
DR | Drum | Contains DRUM |
You can add your own “custom dangerous goods package type mapping” in the onboarding page of the Mainfreight integration.