TruckMate 2022.2 New Features: Web / APIs
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.
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.
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:
-
The OpenAPI JSON information can be viewed as a website.
+ 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.
-
The OpenAPI JSON file itself is available for downloading.
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) |
||
|
|
|
POST (removed) |
PUT (removed) |
DELETE (removed) |
|
|
|
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.
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.
-
The OpenAPI JSON information for this new masterData REST API service can be viewed as a website.
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 totm
. For example, changeDOMAIN/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.
Improvements
General
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.
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.
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 |
|
YYYY-MM-DDThh:mm:ss |
|
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
.
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.
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.
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