nShift logo

Integration between Ongoing WMS and nShift DeliveryHub

nShift DeliveryHub is a shipping platform. Their products were previously known as:

Ongoing WMS provides an integration with these products.


Make transport bookings directly from Ongoing WMS

The information about a shipment can be entered into Ongoing WMS, and then transferred to nShift DeliveryHub at the click of a button. Afterwards, a transport label can be printed automatically.

Make tracking information visible in Ongoing WMS

If the transport booking for an order was made using the nShift DeliveryHub integration, Ongoing WMS instantly receives and can make use of the following information:

  • Tracking link
  • Tracking number

Choose service point

There is a possibility for customers to decide at which service point they prefer to pick up their packages. nShift sometimes calls this drop point. The service point can be chosen in Ongoing WMS or transferred from another system via an integration.

Generate customs declaration

With an integration between nShift DeliveryHub and Ongoing WMS the customs information can be automatically transferred to DeliveryHub. This enables electronic customs declarations to be generated or a paper customs declaration to be printed automatically.


The following data is required to set up an integration with nShift DeliveryHub:

  1. API key
  2. A list of actor IDs
Please ask nShift to supply these to you.

After you have gathered this information, please see this guide on how to configure an integration between Ongoing WMS and nShift DeliveryHub.


nShift DeliveryHub Shipment - Ongoing WMS Order

Show field mapping

Consignor Ongoing WMS
ActorCSID if Financial⇒TransportPaymentType == TransportPaymentType⇒Collect,
then OrderInfo⇒GoodsOwnerEdiCode⇒Value,
else Financial⇒PriceListCode⇒Value
Addressesnew List<ModelClasses⇒Address>()
Amountsnew List<ModelClasses⇒Amount>()
DangerousGoodsnew List<ModelClasses⇒DangerousGoods>()
Lines new List<ModelClasses⇒Line>()
for each GoodsItem, add new ModelClasses⇒Line
Height(int)(GoodsItem⇒Height * 1000)
Length(int)(GoodsItem⇒Length * 1000)
LineVol(long)(GoodsItem⇒Volume * 1000000000)
LineWeight(int)(GoodsItem⇒Weight * 1000)
Pkgs new List<ModelClasses⇒Package>()
for int i = 1:GoodsItem⇒NumberOfPackages, Add(new ModelClasses⇒Package())
Referencesnew List<ModelClasses⇒Reference>()
Referencesnew List<ModelClasses⇒Reference>()⇒Add(new ModelClasses⇒Reference())
Width(int)(GoodsItem⇒Width * 1000)
Messagesnew List<ModelClasses⇒Message>()⇒Add(new ModelClasses⇒Message())
KindModelClasses⇒ShipmentMessageKind⇒eSmkDriver if not string⇒IsNullOrWhiteSpace(OrderInfo⇒DeliveryInstruction)
TextOrderInfo⇒DeliveryInstruction if not string⇒IsNullOrWhiteSpace(OrderInfo⇒DeliveryInstruction)
OrderNo $"{prefix}-{suffix}", where
prefix = if string⇒IsNullOrWhiteSpace(GoodsOwnerInfo⇒GoodsOwnerReference) then GoodsOwnerInfo⇒Name
else GoodsOwnerInfo⇒GoodsOwnerReference,
suffix = if string⇒IsNullOrWhiteSpace(OrderInfo⇒GoodsOwnerOrderNumber) then OrderInfo⇒OrderId⇒ToString()
else OrderInfo⇒GoodsOwnerOrderNumber
Referencesnew List<ModelClasses⇒Reference>()⇒Add(new ModelClasses⇒Reference())
Kind ModelClasses⇒ReferenceKind⇒eSrkAttention if not string⇒IsNullOrWhiteSpace(OrderInfo⇒SalesCode),
ModelClasses⇒ReferenceKind⇒eSrkDeliveryInstructions if not string⇒IsNullOrWhiteSpace(OrderInfo⇒DeliveryInstruction),
ModelClasses⇒ReferenceKind⇒eSrkSenderReference if not string⇒IsNullOrWhiteSpace(OrderInfo⇒ReferenceNumber),
Value (Consignee⇒Name if string⇒IsNullOrEmpty(OrderInfo⇒SalesCode) else OrderInfo⇒SalesCode)
if not string⇒IsNullOrWhiteSpace(OrderInfo⇒SalesCode),
OrderInfo⇒DeliveryInstruction if not string⇒IsNullOrWhiteSpace(OrderInfo⇒DeliveryInstruction),
OrderInfo⇒ReferenceNumber if not string⇒IsNullOrWhiteSpace(OrderInfo⇒ReferenceNumber),

None* = those fields are not in the default set up, but it is easy to set them to any field in Ongoing WMS.