API - Transport Units


Overview

The endpoint is a non-editable list of Transport Units.

Endpoint name

transportUnits

Source table

WiFi Transport Units

Fixed view

Filter on Open .. ReadyForTransport

Requests allowed

GET, POST, PATCH

Primary key

ID

Record ID

id

Child Objects

Available with $expand

pallets

Procedures

loadPallet, unloadPallet, updateShippingInfo


Record relations for Transport Units

Data relation

API properties to use

A Scheduled Trip can have multiple transport units

Get scheduledTrips(id).transportUnits to get the array of all the transport units of the trip.

Get transportUnits(id).tripNo to see see which trip a transport unit is assigned to.

Each sales agreement is assigned to only one scheduled trip

Get salesAgreements(id).scheduledTripNo to see see which trip the sales agreement is assigned to.

Get scheduledTrips(id).salesAgreements to get the array of all the sales agreements in a particular trip.

A sales agreement can be assigned to only one of the transport units of that particular trip.

In this case, a field for the transport unit is populated on the header of the sales agreement:

Get salesAgreements(id).transportUnitId to see see which transport unit the sales agreement is assigned to.

If multiple transport units are used for the sales agreement, the transport unit can be assigned on line level.

The following property on the line will always return a transport unit, either the one from the line (if populated), else it will return the one on the header.

Get salesAgreementLines(id).transportUnitId

Each transport unit can therefore contain items for multiple sales agreements.

Get transportUnits(id).salesAgreements to get the array of all the sales agreement headers assigned to that particular transport unit.

Get transportUnits(id).salesAgreementLines to get the array of all the sales agreement lines assigned to that particular transport unit.


Data

Field List

Property

Type

Format

Description


1

systemId

string

uuid

SystemId

NON-EDITABLE

2

id

number


The primary key of the entry is an integer.

PRIMARY KEY Record ID

3

containerNo

string

max 20


optional

4

tripNo

string

max 20

This is the Scheduled Trip which the transport unit belongs to.


5

description

string

max 71

It is a string combined of different information, depending on For Vehicle Type. Can show vehicle name and registration number, or vehicle code + either reference number or container number.

NON-EDITABLE

6

shipperDescription

string

max

String combined of "Vehicle Type" + "Shipping Agent Code" + "Vehicle Code"

NON-EDITABLE

7

vehicleName

string

max 50


optional

8

vehicleType



Options: " ",Truck,Trailer,Airline,Railway,Ship,Unknown

optional

9

status

string

enum

Options: Open,Released,InLoading,ReadyForTransport,InTransport,TransportCompleted,Cancelled


10

containerType

string

enum

OptionMembers = " ","40_Reefer","40_Dry","20_Reefer","20_Dry","45_Reefer","45_Dry";

optional

11

sealNo

string

max 20

Seal number

optional

12

locationCode

string

max 10

Location

optional

13

placeOfLoading

string

max 10

Place of Loading

optional

14

departureDateScheduled

string

date

Departure Date (Scheduled)

optional

15

departureTimeScheduled

string

time

Departure Time (Scheduled)

optional

16

arrivalDateScheduled

string

date

Arrival date

optional

17

arrivalTimeScheduled

string

time

Arrival time

optional

18

arrivalDateTimeScheduled

string

date-time

Arrival date and time

optional

19

temperatureDescription

string


Temperature Description

optional

20

reservedPallets

number


The number of pallets that have this transport unit id in field “Transport Unit ID”

NON-EDITABLE

21

reservedWeight

number


The total weight of the trade items on the reserved pallets.

NON-EDITABLE

22

reservedTradeItems

string


The total number of trade items on the reserved pallets.

NON-EDITABLE

23

deliveryAgreementNo

string


If there is just one allocated delivery agreement no. This is the table field "Allocated to Delivery Agr. No.".

Note: This is not used, if the transport unit contains items for multiple delivery agreements.

NON-EDITABLE

24

tareWeight

number


Tare Weight

NON-EDITABLE

25

lastModified

string

date-time


NON-EDITABLE

26

pallets

array


List of the pallets, only visible by using $expand


27

salesAgreements

array


List of the sales agreements (delivery agreements), only visible by using $expand



Object Example

JSON
{
    "id": 1,
    "systemId": "fcab40a6-410b-f111-b02e-cfedda509304",
    "containerNo": "CONT-001",
    "tripNo": "TRIP-01",
    "referenceNo": "",
    "description": "DHL TR111 CONT-001",
    "shipperDescription": "  DHL ",
    "vehicleName": "",
    "vehicleType": " ",
    "status": "Released",
    "containerType": " ",
    "sealNo": "",
    "locationCode": "",
    "placeOfLoading": "",
    "placeOfDelivery": "",
    "departureDateScheduled": "2026-05-01",
    "departureTimeScheduled": "14:00:00",
    "arrivalDateScheduled": "0001-01-01",
    "arrivalTimeScheduled": "00:00:00",
    "arrivalDateTimeScheduled": "0001-01-01T00:00:00Z",
    "temperatureDescription": "",
    "reservedPallets": 0,
    "reservedWeight": 145,
    "reservedTradeItems": 29,
    "deliveryAgreementNo": "",
    "tareWeight": 0,
    "lastModified": "2026-05-01T15:07:03.213Z",
    "pallets": [],
    "salesAgreements": [ 
}

Usage

Reading Examples

Get a list of transport units

Get a list of all released transport units.

JSON
GET .../transportUnits?$filter=status eq 'Released'


Get all transport units in a specific trip:

JSON
GET .../transportUnits?$filter=tripNo eq 'TRIP-01'


Get a list of the transport units for a specific trip, but only show selected fields:

JSON
GET .../transportUnits?$select=id,description,containerNo,vehicleType,status & $filter=tripNo eq 'TRIP-01'

Reponse:

JSON
{
    "@odata.context": "https://containers.wisefish.com/BC/api/wisefish/base/v1.0/$metadata#companies(0c28f579-28b9-f011-af5f-6045bdacc160)/transportUnits",
    "value": [
        {
            "@odata.etag": "W/\"JzIwOzE2ODE4ODEwMzg2NjAwMzkzODA0MTswMDsn\"",
            "id": 1,
            "containerNo": "CONT-001",
            "description": "DHL TR111 CONT-001",
            "vehicleType": "Truck",
            "status": "Released"
        },
        {
            "@odata.etag": "W/\"JzE5OzQxMTQ3NzA3ODIyNTU1OTY1NDkxOzAwOyc=\"",
            "id": 3,
            "containerNo": "",
            "description": "DHL ABA23",
            "vehicleType": "Truck",
            "status": "Released"
        }
    ]
}


Details of a transport unit, showing sales info

Get the details of a selected transport unit number 1, also with the pallets and sales agreements which have been assigned to it:

JSON
GET .../transportUnits(1)?$expand=pallets,salesAgreements


Loading Pallets

Load a Pallet

To load a specific pallet into the transport unit, a container for example. The pallet needs to be reserved to an agreement.

JSON
POST
.../transportUnits([record-id])/Microsoft.NAV.loadPallet

Body:
{
    "palletBarcode": "00200100000000148347"
}

Parameters


palletBarcode

The pallet barcode, as it is in BC.

The database modifications when this is run successfully:

  • On the Pallet

    • Loaded = true

    • Loaded Date-Time

    • “Scheduled Trip No.” field is populated

    • “Transport Unit ID” field is populated

  • All the trade items on the pallet will get the same fields changed.


Unload a Pallet

To unload a pallet from the transport unit.

JSON
POST
.../transportUnits([record-id])/Microsoft.NAV.unloadPallet

Body:
{
    "palletBarcode": "00200100000000148347"
}

Parameters


palletBarcode

The pallet barcode, as it is in BC.

The database modifications when this is run successfully:

  • On the Pallet

    • Loaded = false

    • “Loaded Date-Time” is cleared

    • “Scheduled Trip No.” is cleared

    • “Transport Unit ID” is cleared

  • All the trade items on the pallet will get the same fields changed.


Update shipping information

The method updateShippingInfo is used to make a transport unit ready for shipping, i.e. at least when it is a container that needs a Container No. and a Seal No..

JSON
POST
.../transportUnits([record-id])/Microsoft.NAV.updateShippingInfo  

Body - example:
{
    "setContainerNo": "CONT-NO-123",
    "setSealNo": "332222",
    "setTareWeight": 25
}

Parameters


setContainerNo

The value to put in field Container No.

setSealNo

The value to put in field Seal No.

tareWeight

The value to put in field Tare Weight. If not needed, it can be set as zero.


The database modifications when this is run successfully:

  • The transport unit gets the 3 fields updated, as given by the parameters.

  • It also gets Status changed to Ready for Transport