TruckMate 2022.2 New Features: Web / APIs

Required upgrade (TM-162557)

TruckMate 2022.x and later requires DB2 version 11.5.6.

You must upgrade your instance of DB2 to this version before upgrading TruckMate.

Support for DB2 version 11.1.3 ended as of TruckMate 2021.4.

TruckMate versions 2022.1 and 2022.2 have been released as a single upgrade package available for download on the Trimble Transportation Client Center.

TruckMate version 2022.1 is not available as a stand-alone download.

If you are upgrading to TruckMate 2022.2 from an earlier version, review the Release Notes and New Features Guides for this version, along with those for all the versions in between.

For example, if you are currently using TruckMate 2020.3 and you want to upgrade to 2022.2, review the materials available for versions 2020.4 through 2022.2.

TruckMate online help F1 integration (TM-163894)

TruckMate’s online help is now exclusively web-based. As of version 2022.2, the Microsoft Compiled HTML Help (.CHM) file is no longer packaged with the installer.

When you press F1 or go to Help > TruckMate Help, your default browser displays the overview page for the application you are working in. An Internet connection is required.

TM 163894 222b

New online support interface (TM-160957)

In December 2021, Trimble Transportation Support switched from NetSuite to Salesforce for tracking customer support calls.

When you go to Help > Enter Support Case, your default browser displays the Trimble Transportation Dedicated Customer Support site.

This site provides access to the Learning Center and lets you view available materials before entering a support call.

TM 160957 222b

If you cannot find the information you need, click CONTACT US to send in a ticket or reach out to a support representative.

If you are interested in using the TruckMate REST APIs, we recommend that you upgrade directly to this version of TruckMate (2022.2) instead of an earlier release. This gives you access to the most current, improved, and expanded set of API methods and endpoints.

The following additional information is available on the Trimble Transportation Learning Center:

+ This may be especially useful if you are in the early stages of implementing REST APIs and do not have an ART Server running yet.

TruckMate versions 2022.1 and 2022.2 have been released as a single upgrade package available for download on the Trimble Transportation Client Center.

TruckMate version 2022.1 is not available as a stand-alone download.

If you are upgrading to TruckMate 2022.2 from an earlier version, review the Release Notes and New Features Guides for this version, along with those for all the versions in between.

For example, if you are currently using TruckMate 2020.3 and you want to upgrade to 2022.2, review the materials available for versions 2020.4 through 2022.2.

TruckMate REST API feature changes

The following methods and endpoints were revised or added to the TruckMate REST API service since TruckMate release 2021.4.

Added

Added to tm/trips:

  • DELETE /trips/{tripNumber}/orders/{orderId}

  • DELETE /trips/{tripNumber}/orders

  • GET /trips/{tripNumber}/drivers

  • GET /trips/{tripNumber}/powerUnits

  • `POST /trips/{tripNumber}/chassis

  • `POST /trips/{tripNumber}/drivers

  • `POST /trips/{tripNumber}/equipment

  • `POST /trips/{tripNumber}/powerUnits

  • `POST /trips/{tripNumber}/trailers

  • `POST /trips/{tripNumber}/containers

Added to tm/orders:

  • GET /orders/{orderId}/aCharges/{aChargeId}/aChargeCurrencyRates

  • GET /orders/{orderId}/details/{orderDetailId}/ratesheetCurrencyRates

Removed

Removed from tm/orders:

GET /orders/{orderId}/contacts

Removed from tm/trips:

DELETE tm/trips/{tripNumber}/carriers/{loadSummaryId}/aCharges/\

Several API requests related to /orders were removed from tm/trips in the TruckMate REST API service. This was done to support accessing orders Fusing the existing endpoints in tm/orders instead of tm/trips.

In this table, all of the URL paths that were removed begin with:

tm/trips/{tripNumber}/orders/{orderId}

GET (removed)

  • /aCharges/{aChargeId}

  • /aCharges

  • /details/{orderDetailId}/barcodes/{barcodeId}

  • /details/{orderDetailId}/barcodes

  • /caller

  • /careOf

  • /checklist/{checklistId}

  • /checklist

  • /consignee

  • /contacts

  • /customDefs/{customDefId}

  • /customDefs

  • /dangerousGoods/{dgId}

  • /dangerousGoods

  • /details/{orderDetailId}

  • /details

  • /statusHistory

  • /interliners/{orderInterlinerId}

  • /interliners

  • /intermodal

  • /notes/{noteType}

  • /notes

  • /traceNumbers/{traceId}

  • /traceNumbers

  • /osds/{osdId}

  • /osds

  • /otherContact

  • /pickupAt

  • /pods/{podId}

  • /pods

  • /shipInstructs/{primId}

  • /shipInstructs

  • /shipper

  • /pods/{podId}/signature

  • /xrefCode

POST (removed)

PUT (removed)

DELETE (removed)

  • /aCharges

  • /details/{orderDetailId}/barcodes

  • /customDefs

  • /dangerousGoods

  • /details

  • /interliners

  • /intermodal

  • /notes

  • /traceNumbers

  • /osds

  • /shipInstructs

  • /aCharges/{aChargeId}

  • /details/{orderDetailId}/barcodes/{barcodeId}

  • /customDefs/{customDefId}

  • /dangerousGoods/{dgId}

  • /details/{orderDetailId}

  • /intermodal

  • /notes/{noteType}

  • /traceNumbers/{traceId}

  • /traceNumbers

  • /osds/{osdId}

  • /dangerousGoods

  • /shipInstructs

  • /customDefs/

  • /customDefs/{customDefId}

  • /dangerousGoods/{dgId}

  • /notes/{noteType}

  • /notes

  • /traceNumbers/{traceId}

  • /traceNumbers

  • /osds/{osdId}

  • /shipInstructs/{primId}

New Features

New ART Master Data service (TM-159551)

A new Master Data REST API service has been added to the ART Server Administrator.

This new API service allows an external system to create, retrieve, update or delete TruckMate configuration data such as client, vendor and driver profiles, sites, zones, commodity codes etc. It uses a base URL of masterData.

TM 159551 222a

The Master Data service requires TruckMate license key #69100. Contact Trimble Support to obtain a license. Refer to License Key Entry for details on how to install a license key.

Endpoints moved from /tm to /masterData (TM-159553)

Several endpoints have been removed from the TruckMate REST API (/tm) service to the new Master Data (/masterData) service. These endpoints are related to background TruckMate configuration and are better handled by the new service. These include:

  • aChargeCodes

  • clients

  • drivers

  • trailers

  • vendors

OData Filtering (TM-162007)

OData advanced filtering is supported in the masterData query endpoints for:

  • GET masterData/aChargeCodes

  • GET masterData/vendors

  • GET masterData/clients

  • GET masterData/trailers

OData (Open Data Protocol) is an OASIS (Organization for the Advancement of Structured Information Standards) standard that defines the best practice for building and consuming RESTful APIs.

TruckMate REST API service replaces TM4Web REST APIs

The TM4Web REST API service was sunset on March 31, 2022. ALthough it will remain available until March 31, 2023, Trimble will no longer make any revisions, enhancements, or functional fixes.

Since TruckMate version 2021.2, TM4Web REST API request calls have included a Sunset response header tag:

Sunset: "Thu, 31 Mar 2022 23:59:59 GMT"

We strongly recommend migrating to the new TruckMate REST API service on or before March 31, 2023.

The TruckMate REST API service provides the same set of API methods, endpoints, and authorization processes as the TM4Web REST API service. It also includes:

  • New endpoints

  • Other Web API services, including:

    • Freight Search API

    • TM4Web REST API

    • TM4Web SOAP API

TruckMate 2021.2 already included a complete alternative to the TM4Web SOAP and REST APIs in the TruckMate REST API service. You can now access all the TM4Web APIs by migrating to the newer TruckMate REST APIs.

New license key provides access to all endpoints (TM-157863)

The 69000 license key first introduced in TruckMate 2021.2 provides full access to all methods and endpoints available in the TruckMate REST API.

Existing TM4Web client customers with the TM4Web REST API (61140) can request the new TruckMate REST API license (69000) at no additional cost.

Frequently asked questions

How do I access the new API?

Set up and launch the TruckMate REST API Service via the ART Administrator.

All previously available TM4Web REST API endpoints are available through the TruckMate REST API service. The only change required to your integrations is to change the tm4web endpoint to tm. For example, change

DOMAIN/tm4web/orders

to

DOMAIN/tm/orders

For more information about the REST APIs, see the ART Server Administrator Guide.

Will this affect my license and billing?

TM4Web client customers licensed for TM4Web API web service can access the same functionality using their existing license (61140) with no additional cost.

Additional features are already available in the enhanced TruckMate REST API and more will be added in future releases. To access these features, contact TruckMate Support and ask for the 69000 TruckMate REST API license.

This update offer is only available to existing TM4Web client customers.

ART server logging (TM-162849)

A second separate log file was added to the ART Server API services. The Logging tab in the ART Service Properties window was split into two separate tabs so two sets of log files could be configured independently. This allows you to use one log file service for continuous monitoring and the second log file for debugging.

The configuration of the log files for setting, rotating and archiving the files was updated. The timestamps were changed to match the DB2 timezone standard of yyyymmdd hhmmssss (e.g., 20220614 01134140).

The new set of log level filters accessed via the Set button lets you set which events you want to include in the log files and how big the files will be.

TM 162849 222a

Improvements

General

Nullable integer fields in tm/order/orderId/status (TM-161630)

Deprecated fields in status/statushistory can now be set to NULL. This includes:

  • Integer fields

  • signatureId

  • opeartionId

  • locTermId

  • locDoorNo

TM 161630 222a

Email validation added to /tm requests (TM-163811)

When a /tm API query includes an email property in the request body, the entered value is now validated to confirm it has the specified email format.

Retrieve/Assign resources

The TruckMate REST API service now includes endpoints allowing you to retrieve resources assigned to a trip and to assign resources to a trip. This includes:

GET and POST tm/trips/{tripNumber}/

  • carriers

  • chassis

  • containers

  • drivers

  • equipment

  • power units

  • trailers

The error handling and responses has been improved. Validation was added to ensure:

  • orders can be assigned to an existing trip

  • the property entry cannot exceed the max field length

  • the power unit cannot be assigned to a trip if it is already assigned to that trip

  • power units cannot be assigned to a cancelled or completed trip

Error responses

Deprecated errorText and errorCode fields (TM-164261)

The errorText and errorCode fields in the ART error response schema have been deprecated and replaced with a new ARTError schema.

TM 164261 222a

4xx error response schema added (TM-161105)

A consistent formal schema was added to all the 4xx (Client error) response codes.

  • TruckMate

  • MasterData

  • Agent,

  • TM4Web

  • Freight Search

Domain removed from href URL (TM-162784)

The domain portion of the URL has been removed from the href value in the response body and error descriptions for 404 failure code responses. When a request is forwarded from a different server, the domain is different and not relevant.

For example:

"href": "https://artserver01.companyname.net:9999/tm/orders?expand=details"

vs

"href": "/orders?expand=details"

Proper error codes for tm/trips (TM-163483)

The error response format related for tm/trips and its endpoints have been updated for consistency. This includes pre-check validation against the openAPI document.

A proper 400 error code and description is returned if an invalid trip or order number is sent in the request.

Error response format in tm/orders (TM-163957)

Several updates to the error response format were made throughout the /tm/trips and tm/orders endpoints for consistency. This includes the error responses in the tm/Orders API for these endpoints:

  • /status updates

  • /customDefs

  • /osds

  • /intermodal

Also, the 4xx endpoints for orders/dangerousGoods now uses the correct error format, code and description.

Orders

Select query parameter for GET tm/orders (TM-155242)

The '$select` oData query parameter was added to the GET tm/orders endpoint. This allows you to limit the response body to the fields included in the select query parameter.

Faster GET tm/orders (TM-163511)

The GET /tm/orders endpoint provides faster responses.

New isApproved body parameter for Orders (TM-163799)

A new isApproved body parameter was added to the tm/orders and tm/orders/{orderId} endpoints for the POST, PUT and GET methods.

This parameter value must be True for a quote to generate freight bills. It is affected by the 'CSERVE.EXE > Approve Quotes’app config which can set this value to True automatically when quotes are created.

Rate Quotes

Cancel a quote (TM-163905)

Now you can cancel a rate quote using the PUT tm/orders/orderId/status?type=Q method.

Add and edit rate quotes (TM-163876)

These capabilities have also been added for adding, editing and deleting information in order rate quotes (type=Q):

  • assign an interliner

    • POST /orders/{orderId}/interliners?type=Q

    • PUT /orders/{orderId}/interliners/{orderInterlinerId}?type=Q

  • add and update accessorial charges

    • POST /orders/{orderId}/aCharges?type=Q

    • PUT /orders/{orderId}/aCharges/{aChargeId}?type=Q

  • add, update and delete tracenumbers

    • POST /orders/{orderId}/traceNumbers?type=Q

    • PUT /orders/{orderId}/traceNumbers?type=Q

    • DELETE /orders/{orderId}/traceNumbers?type=Q

    • PUT /orders/{orderId}/traceNumbers/{traceId}?type=Q

    • DELETE /orders/{orderId}/traceNumbers/{traceId}?type=Q

  • add and delete shipping instructions

    • POST /orders/{orderId}/shipInstructs?type=Q

    • DELETE /orders/{orderId}/shipInstructs?type=Q

    • DELETE /orders/{orderId}/shipInstructs/{primId}?type=Q

  • add and update order details

    • POST /orders/{orderId}/details?type=Q

    • PUT /orders/{orderId}/details/{orderDetailId}?type=Q

  • update barcode items

    • POST /orders/{orderId}/details/{orderDetailId}/barcodes?type=Q

    • PUT /orders/{orderId}/details/{orderDetailId}/barcodes/{barcodeId}?type=Q

  • add and update intermodal entries

    • POST /orders/{orderId}/intermodal?type=Q

    • PUT /orders/{orderId}/intermodal?type=Q

  • add, update and delete notes

    • POST /orders/{orderId}/notes?type=Q

    • DELETE /orders/{orderId}/notes?type=Q

    • PUT /orders/{orderId}/notes?type=Q

    • DELETE /orders/{orderId}/notes?type=Q

  • add, update and delete dangerous goods entries

    • POST /orders/{orderId}/dangerousGoods?type=Q

    • DELETE /orders/{orderId}/dangerousGoods?type=Q

    • PUT /orders/{orderId}/dangerousGoods/{dgId}?type=Q

    • DELETE /orders/{orderId}/dangerousGoods/{dgId}?type=Q

  • update orders and order sub-resources

    • PUT /orders/{orderId}?type=Q

  • add, update and delete custom defined fields

    • POST /orders/{orderId}/customDefs?type=Q

    • DELETE /orders/{orderId}/customDefs?type=Q

    • PUT /orders/{orderId}/customDefs/{customDefId}?type=Q

    • DELETE /orders/{orderId}/customDefs/{customDefId}?type=Q

Interliners

Filter orders by Interliner (TM-164385)

Now you can filter orders based on the orderInterlinerId using the standard OData (Open Data Protocol) query options. For example:

  • GET /orders?$filter=interliners/orderInterlinerId eq {{resourceId}}?expand=interliners

Added proBill and movementType fields (TM-164191)

The proBill field was added to the interliner responseBody for:

  • GET /orders/{orderId}/interliners/

The movementType field was added to the interliner properties included in the response returned by:

  • GET /orders/{orderId}/interliners/

  • GET /orders/{orderId}/interliners/{orderInterlinerId} queries.

The proBill and movementType fields were added to the interliners endpoint for:

  • POST /orders/{orderId}/interliners

Bug Fixes

General

DateTime format (TM-162479)

The dateTime values coming into and being returned by the APIS is now in the ISO 8601 format. For example:

YYYY-MM-DD

2021-01-17

YYYY-MM-DDThh:mm:ss

2022-01-17T14:28:00

Removed unused schema definitions (TM-161658)

Unused schema definitions were removed from the TruckMate REST API /tm service.

Limit and offset are now integers (TM-163625)

The limit and offset query parameters are now defined as integers. The default values are set to limit=20 and offset=0.

Corrected JSON for 5xx errors (TM-164045)

Proper JSON is now returned in the response body for the 5xx errors.

Reports with linked parameters

The APIs now allow you to retrieve reports with linked parameters.

Fixes for tm/trips

Cancel trip - status change rules (TM-160852)

New rules and error messages are used when a trip-based TL or a LTL status change is applied to a trip using a status code with a cancellation behavior.

  • TL (trip based) PUT /trips/{tripNumber}/status

    Trips must be cancelled through the DELETE /trips/{tripNumber} method on the specific trip endpoint.

  • LTL (less than load) PUT /trips/{tripNumber}/orders/{orderId}/status

    An order cannot be cancelled directly through a LTL status change. The order must first be deassigned from the trip before it can be cancelled.

Fixed the expand carriers section (TM-162535)

The correct string format is now used for the costAllocationRule field when the carriers section in 'GET tm/trips' is expanded.

Max length validations (TM-162273)

If the max length of 80 characters is exceeded when using 'POST trips/{tripNumber}/carriers', a 400 invalidstring error message is displayed instead of just cutting off the text.

If the max length of 10 characters is exceeded when using 'POST /trips/{tripNumber}/positions', a 400 invalidstring error message is displayed instead of a 500 Internal Server Error.

Updates to /acharges (TM-158506)

The description and request body schema has been updated to match the endpoint behavior for POST /trips/{tripNumber}/carriers/{loadSummaryId}/aCharges.

Currency code for load summary (TM-163189)

The currency code value is now reliably set to the correct value when assigning a carrier to a trip.

Limit and offset removed from stops (TM-160125)

The limit and offset query parameters were removed from the /stops endpoints.

Trip not cancelled when 4xx error occurs (TM-163302)

Trips are no longer cancelled when you are using the DELETE /trips/{tripNumber}/orders method and a 4xx (bad request) response code is received. The trip and orders will remain unchanged.

stopType defined as Enum field (TM-163219)

The 'stopType' property is now consistently defined in the schema as an Enum field.

TM 163219 222a

P&D trips creates drops correctly (TM-162386)

P&D trips with a pickup at the terminal and a drop at the consignee end zone correctly creates the drop as a drop. Previously, it was creating the drop as an intermediate stop.

Default When Planning Incomplete - status code default (TM-162368)

Only one status code defined in Codes Maintenance can have the 'Default When Planning Incomplete' additional rule option selected. This improves the underlying business logic when using the tm/trips API to create trips. Specifically, scenarios where incomplete or partially created (one or more resources could not be matched) trips are being created. One status code will be applied consistently in this case.

Correct status code returned (TM-163996)

The PUT tripNumber/status endpoint returns the correct status code now. Previously, there were situations where the response was not waiting for the request to finish processing and returned the wrong status code.

Correct carrier accessorial charge amount (TM-163728)

The PUT /trips/tripNumber/carriers/loadSummaryId/aCharges/carrierAChargeId uses the same logic as the POST method now. This ensures the accessorial charge amount is calculated correctly.

  • If quantity and rate are provided, then the amount returned will be quantity and rate multiplied together.

  • If the amount is provided, quantity and rate do not need to be included.

Fixes for tm/orders

Entering aChargeCode values (TM-161437)

Previously, POST /orders was incorrectly returning a 400 error code for valid aChargeCode entries. This has been fixed.

Actual pickup and delivery values (TM-162976)

The actualPickup and actualDelivery fields were removed from the request body schema for POST /orders. These values are not entered during order creation.

Validating barcode fields (TM-163037)

When using POST /orders/orderId/details/orderDetailId/barcodes, these two barcode properties are now validated to ensure they only contain True or False. * intact * pieceCubing

The isVerified property was removed from the endpoint request.

Zone field conditionally required (TM-163958)

The zone property for order status updates using PUT /orders/{orderId}/status was changed from a required property to a conditionally required property.

TM 163958 222a

Consistent responses for order types (TM-163826)

The response properties returned by GET /orders and GET /orders/orderId are now consistent for each of the T, P and Q order types.

  • Truckload

  • Pickup request

  • Quote

Custom defined fields updating property (TM-163952)

Previously, there were some cases where the PUT /orders/orderId was incorrectly deleting customDefs entries. This has been was fixed. Also, the customLabel property was removed from the PUT /orders/{orderId}/customDefs/{customDefId} request.

oData filter IN operator (TM-164266)

The oData IN operator can now be used for filtering orders.

Use traceType and traceNumbers to get orders (TM-164558)

Previously, a SQL error message was being returned when GET /orders included traceType or traceNumbers parameters. This has been fixed.