Mapping specifics

Address fields

The GLS ShipIT API validates the field length of the address fields (see tabel below). In case the field length of a field is exceeded, an error is returned by default. It is possible to change a setting in de carrier configuration that will cut the incomming address fields back to the maximum length supported by GLS

Address fieldField length

Incoterm mapping

GLS supports several delivery terms. Per default 4 of these terms are mapped using the incoterm property combined with the service option splitDutiesFromVat. When need, custom mappings can be configured in the carrier setup in the ordering module.

GLS codeGLS Incoterm referenceDescriptionTrigger
10DDPExporter pays duties, taxes, customs clearance feeShipment.incoterms.incoterm = ddp
11DDPindirect procedure 40 - Central clearance
12DDPindirect procedure 40 - Clearance final country
18VATIOSS Registration Scheme & VOEC
20DAPImporter pays duties, taxes, customs clearance feeShipment.incoterms.incoterm = dap
Shipment.serviceOptions.splitDutiesFromVat = false
21DAPdirect procedure 40 - Central clearance
30DDPExporter pays duties, customs clearance fee - the importer pays taxesShipment.incoterms.incoterm = ddp
Shipment.serviceOptions.splitDutiesFromVat = true
33DDPindirect procedure 42 - external fiskal representative
40DAPcleared, Exporter pays customs clearance fee, the importer pays taxes and dutiesShipment.incoterms.incoterm = dap
Shipment.serviceOptions.splitDutiesFromVat = true
41DAPdirect procedure 40 - Central clearance
50DDPExporter pays only customs clearance fee (only applicable for low value consignments)
91External Broker Clearance

Applied currencies for usage of incoterms 18 and 50 are the following: EUR, CHF, CNY, JPY, CAD, AUD, SEK, INR, GBP, PLN, NOK, USD for other currencies incoterms 18 and 50 can not be used.

Shipment Level Services

GLS support two type of core products:


Both products can be enhanced with additional service options as shown in the service mapping table below below. Unless otherwise indicated the default serviceLevelReference must be set to PARCEL

service_pickandshipShipmentParcelShipper orders a pickup at consignee and delivery at a third party address repair centre or different warehouseserviceLevelReference = PICKSHIP
For this service the collection address must be populated
service_pickandreturnShipmentParcelShipper orders a pickup at consignee and return to shippers addressserviceLevelReference = PICKRETURN
For this service the collection address must be populated
service_completedeliveryconsignmentShipmentParcelAdding the consignment service to a shipment will trigger processes in Unique to wait for all the parcels of a consignment that reach GLS within the current or next working day.Not available
service_flexdeliveryShipmentParcelEmail notification with option to provide delivery instruction (e.g. re-route to parcel shop, deliver one day later )serviceOptions.residentialDelivery = true
serviceOptions.preAdviceDelivery.useEmail == true
service_guaranteed24ShipmentParcelNext day DeliveryserviceLevelReference = GUARANTEED
service_0800ShipmentExpressService level for Express ProductserviceLevelReference = EXPRESS08
service_0900ShipmentExpressService level for Express ProductserviceLevelReference = EXPRESS09
service_1000ShipmentExpressService level for Express ProductserviceLevelReference = EXPRESS10
service_1200ShipmentExpressService level for Express ProductserviceLevelReference = EXPRESS12
service_saturday_1000ShipmentExpressService level for Express ProductserviceLevelReference = EXPRESS10 == true
service_saturday_1200ShipmentExpressService level for Express ProductserviceLevelReference = EXPRESS12 == true
service_SaturdayShipmentExpressService level for Express == true
service_documentreturnShipmentParcelNot available
service_exchangeShipmentParcelWhen booking the ExchangeService you will receive 3 output data files: the parcel’s label sent to the consignee, the label for the parcel returned to the shipper (or a third party) with the exchanged content and an acceptance receiptserviceOptions.returns.isReturn == true
serviceOptions.returns.pickupPolicy == exchange
service_deliveryatworkShipmentParcelFor sending parcels directly to the work location of the consignee the needed information must be specified in the service section.Not available
service_depositShipmentParcelIf you are allowing GLS to drop off the parcel at a given place of deposit, request the DepositService. This service is not combinable with other services that require consignee interaction.serviceOptions.signatureForDelivery == noSignatureRequired
PlaceOfDeposit is taken from
service_deposit (Letterbox)ShipmentParcelThe letterbox service is a special kind of DepositService (see above) just specifying the PlaceOfDeposit as being the letterbox (in delivery country’s language).serviceOptions.signatureForDelivery == noSignatureRequired
PlaceOfDeposit is taken from
service_inboundShipmentParcelIn case of inbound logistics a manufacturer is paying the bills for a parcel send between other parties.Not available
service_tyreShipmentParcel/Expresstransport of tyresNot available
service_identpinShipmentParcelIf you want the consignee to authorize themselves by a given PIN in combination with their birthday.Not available
service_identShipmentParcelAnother way of identifying the actual consignee of being the correct recipient, it can be done by their ID containing the information from the service section.Not available
service_shopdeliveryShipmentParcelParcels with ShopDeliveryServices will be delivered to the given parcelshop (identified by ParcelShopID) instead of the consignee’s original addressaddress.dropOff.carrierAssignedAddressId
service_shopreturnShipmentParcelParcels with ShopReturnService are sent back from the original consignee to the shipper. They must be dropped off at a GLS parcelshopserviceOption.returns.pickupPolicy == servicepoint
NumberOfLabels is based in number of handling units
service_intercompanyShipmentParcelParcels with IntercompanyService are sent from one company location (consignee) to another (intercompany address).Not available

Shipment Unit Level Services

service_addonliabilityShipmentUnitParcelWhen sending parcel contents having a higher value, you can define the liability level. The levels depend on each country.shipment.handelingUnit.serviceOptions.insuredValue.value > 0
service_cashShipmentUnitParcelAdding the cash service requires the drivers to collect the requested amount at point of deliveryNot available
service_hazardousgoodsShipmentUnitParcelService specifying the hazourdous goods on shipment unit levelNot available

Also worth mentioning


All shipments for which data is transferred to GLS will be invoiced. Shipments that are created but are not actually shipped, should therefore be cancelled to avoid unnecessary cost.

Pick&Return / Pick&Ship

  • When using the Pick&Return service, the shipment will always be returned to the address that is linked to the GLS account.
  • When using the Pick&Ship service, the shipment will be delivered at the address provided in the delivery address.

GLS Belgium specific requirements

When using the GLS ShipIt API for shipments that are send via GLS Belgium there are a few special requirements.

  1. The shipment reference can not exceed 15 characters, otherwise an error is returned.
  2. The GLS backoffice system is strictly validating the correct writing of streetnames (for Belgium domestic shipments)
  3. Initially all dutiable shipments are created with incoterm code 20 (DAP). A seperate call to a customs API is needed to update the shipment with all the necessary customs information / documents

GLS Services not supported by GLS-BE

  1. service_cash
  2. service_addonliability
  3. service_exworks
  4. service_hazardousgoods
  5. service_exchange
  6. service_ident
  7. service_inbound
  8. service_tyre
  9. service_completedeliveryconsignment
  10. service_intercompany
  11. service_deliveryatwork