TruckMate 2025.1 New Features: Web/APIs

Required upgrade (TM-173710)

TruckMate 2024.1 and later requires DB2 version 11.5.9.

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

The TruckMate ART Server is a high-performance, multi-threaded HTTP server running TruckMate API services designed using Representational State Transfer (RESTful) API principles.

The ART Server currently supports these public APIs:

  • TruckMate REST API Bundle

  • Master Data APIs

  • Imaging

  • Freight Bill Import (deprecated)

  • Profile Import (deprecated)

Freight Bill Import and Profile Import were deprecated in March 2024. These APIs will be removed in TruckMate 2025.2. Customers should convert to REST and MasterData APIs.

The API release notes cover all changes made to TruckMate public APIs.

TruckMate API

The TruckMate REST APIs are a comprehensive set of RESTful services, allowing developers to integrate TruckMate with custom or third-party applications, automate tasks, and much more.

Some ways you can use these APIs include:

  • Internal systems
    Share data and streamline internal business processes.

  • External data sharing and connection
    Share TruckMate data with third party systems.

  • Application integrations
    Access TruckMate data in real time.

  • Embedded content
    Request TruckMate data to include onto your site.

Available endpoints and methods differ depending on the license keys and authorization methods used.

To use the TruckMate REST APIs, we recommend upgrading directly to the latest version of TruckMate 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:

These tables list issues in numerical order by case number.

Orders API

Case Issue Case Name Description

TM-165613

PUT /orders/:orderId/aCharges/:aChargeId - required fields

Fixed an error where quantity, rate, and aChargeCode were incorrectly required in PUT /orders/:orderId/aCharges/:aChargeId, making them optional.

TM-172358

webUsers GET /orders?type=P

Added support for client web users to retrieve pickup requests through the Orders API.

TM-175993

Add $select parameter for PUT /orders/:orderId

Added support for the $select parameter when updating orders using the Orders API.

PUT orders/:orderId

TM-176007

Validation error when creating an order with interliner.chargesType = receivable

Fixed an validation issue during the assignment of a receivable interliner to an order in the Orders API.

TM-178127

Dev 7: TM API - Post additional validation for SI - Customer Specific SI

Updated validation rules when assigning shipping instructions (global or client-specific using the POST methods for the /orders/shipInstructs and /orders/{orderId}/shipInstructs endpoints.

TM-178869

Orders API - Contacts email field should be allowed to be posted or updated with an empty string value

Fixed an issue allowing the email field in Contacts to be posted or updated with an empty string value for TM-Orders.

TM-178911

TruckMate REST API copyOrderId does not properly support multi-point rating

Fixed an issue where the copyOrderId parameter did not properly support the multi point rating functionality in the Orders API.

TM-178935

DEV 3 - Add SLM Delivery Dates field to API Payload

Verified the following Order API endpoints and functionality to the SLM Delivery Dates field:

  • GET orders?expand=slmDates

  • GET orders/:orderId?expand=slmDates:

  • GET orders/{orderId}/slmDates:

  • GET orders/{orderId}/slmDates with type parameter(T&Q - 200, P -400)

  • Vendor Web User Access (403 error)

TM-179204

Orders API - Add xStops child resource that can be expanded

Add support to retrieve extra stops records created using the using extra popup method in the Orders API.

GET orders/:orderId/xStops

TM-180124

Orders API - Update the GET for returning shipping instructions on the order (T or P)

Updated the GET requests to reflect the introduction of client-specific shipping instructions.

TM-180135

PUT orders/:orderId - DB2 error encountered when supplying the quantity and rate for aCharges

Fixed an issue where an SQL error was encountered when updating an accessorial charge code quantity and rate using the Orders API in a multi company environment.

PUT /orders/:orderId

TM-180174

Add support for client web user - PUT orders/:orderId?type=P

Added support for client web user authorization to update pickup requests in the Orders API.

PUT orders/:orderId?type=P

TM-180293

Orders API - Fix TID web client privileges so 403 is returned for POST orders?type=T

Fixed an issue where web client user through TID could successfully POST /orders?type=T instead of getting a 403 forbidden response.

TM-180369

Orders API - Always return billingAuditNumber and webStatus when using TID for client web user

Updated orders API to always return billingAuditNumber and createdBy fields for tid web client authorization.

TM-180400

POST tm/orders - add saveAsDraft query parameter

Added support for saveAsDraft parameter in the orders API that allows saving a pickup request as an incomplete order or shipments as a non posted order.

POST tm/orders

TM-180682

Orders created via REST API with BILL_TO set to override 'R' is not populating TLORDER.BILL_TO_NAME

Fixed an issue in the Orders API where the bill to name was not getting populated correctly when using the override bill to option. Also fixed an issue where the billToName was not being populated for pickup request orders.

SCHEMA: 180682_ART_PUR_ADD_BILL_TO_NAME.SQL

TM-180721

ART - GET /orders - Web Client User - $orderBy is not working correctly

Fixed an issue where the $orderBy parameter was not functioning correctly for Web Client users in the GET /orders API in ART.

TM-181327

GET orders?type=Q no longer working for client web users

Fixed an issue in the orders API where web users were unable to retrieve rate quote records.

GET orders?type=Q

TM-181738

Excessive CPU on VW:TMS_ORDER_BARCODE

Fixed a performance and high CPU usage issue with the view used by the TruckMate REST API used for retrieving order barcode records.

Trips API

Case Issue Case Name Description

TM-172396

PUT /trips/:tripNumber - Add user fields

Added 10 user fields to the trips in TM - Trips.

PUT /trips/:tripNumber

TM-178403

ART - Add totalStops field to trip model

The totalStops field has been added to the tripSummary response in TM - TRIPS.

TM-179242

GET trips - Move totalCarrierCost and totalCarrierDistance into tripSummary child resource

Moved totalCarrierCost and totalCarrierDistance fields into the tripSummary child resource in the Trips API.

GET /trips/:tripNumber/tripSummary

TM-180542

PUT /trips/:tripNumber/status - Applying the same trip status update twice results in a wrong updatedBy value on the TRIPSTAT record

Fixed an issue in the trips API where if the same trip status update is applied more than once, the trip status history showed the wrong username for the 'updated by' value.

SCHEMA: 180542_TRIPSTAT_UPD_BI_SET_USER.SQL

TM-180603

POST /tm/trips - PickupDeliveryTrip validation incorrect.

Fixed an issue where fields not included in the request body were not being treated properly as undefined in the Orders and Trips API.

TM-180833

Add $select parameter for PUT /trips/tripNumber

Added support for the $select parameter when updating trips using the Trips API.

PUT /trips/tripNumber

TM-181427

GET tm/trips/tripNumber/stops - Returns duplicate stop IDs in response in scenarios where more than 1 freight bill is associated with the same stop

Fixed an issue where a duplicate stop record and resources were not being allocated correctly in the Trips API in scenarios where a pick and drop occur at the same zone.

Finance API

Case Issue Case Name Description

TM-178722

Add endpoint PUT /finance/currencyRates/:currencyRateId

Added support for the retrieval, creation, update, and deletion of currency rate records for driver pay and general ledger in the Finance REST API.

  • GET /finance/currencyRates

  • POST /finance/currencyRates

  • GET /finance/currencyRates:/currencyRateId

  • PUT /finance/currencyRates:/currencyRateId

  • DELETE /finance/currencyRates:/currencyRateId

TM-180796

ART - fix GET checks PR_BATCH not valid DB error

Fixed a SQL error encountered when retrieving checks and check bill records in the Finance API.

TM-180844

Unable to update any check string field to an empty string ("") using finance API check PUT end points

Fixed an error that prevented updating a string field to an empty string ("") using the check PUT endpoints in the finance API.

TM-181197

ART Finance - DriverPayments - POST - data in the four columns TARPED, PAY_OVERRIDDEN, MAN_OVERRIDE_USER, MAN_OVERRIDE_DATE is incorrect

Fixed a data consistency issue when creating a driver payments record using the Finance API. The tarped, pay overridden, manual override user, and manual override options are set correctly when creating the driver payment record through the Finance API.

TM-181268

ART Finance - DriverPayments - POST -Error description/title needs to include the Driver ID; transaction control needs to be added/modified

Revised error responses to return more detailed error message when creating driver payments using the Finance REST API for scenarios where the payment code is invalid and if the related driver ID does not have an associated contract.

TM-181401

ART Finance - DriverPayments - PUT - when 'Allow Override of Checklist Approval Restriction' is unchecked, it can still approve driver pay with uncompleted checklist items- that is incorrect; the warnings need to be logged to the ART console/log.

Fixed centralized validation used by the Finance REST API when setting a driver payment record to approved when checklist items on the related freight bill record are not completed. The validation properly considers the Allow Override of Checklist Approval Restriction option in Security Configuration. This centralized validation is also shared by the Driver Pay Audit, Customer Service, Driver Profiles and Trip Envelope applications.

Master Data API

The Master Data management API allows an external system to create, retrieve, update, or delete TruckMate configuration data. Some data types include client, vendor, and driver profiles, as well as sites, zones, commodity codes, and so on.

Case Issue Case Name Description

TM-166223

masterData - PUT /clients/:clientId - modify contacts

Added support for the modification of the contacts child resource from the following endpoint PUT /clients/:clientId in the masterData REST API.

TM-166226

masterData - DELETE /clients/:clientId/contacts/:contactId

Added support for deleting specific client contact records using the masterData REST API.

DELETE /clients/:clientId/contacts/:contactId

TM-166241

masterData - PUT /vendors/:vendorId/contacts/:contactId

Added the ability to update vendor contact records in the masterData REST API.

PUT /masterData/vendors/:vendorId/contacts/:contactId

TM-173630

ART - Add codesByTripNumber parameter to masterData statusCodes endpoint

Added a new query parameter, codesByTripNumber, to the GET /statusCodes endpoint in the masterData REST API which can be used to retrieve the list of all possible next status codes for a given trip number value.

Also, a new query parameter, tripNewStatus, has been added to the GET /zones endpoint in the masterData REST API which can be used together with the codesByTripNumber query parameter to retrieve a default zone for a trip given a new trip status value.

TM-175949

Data Governance mapping - Driver Availability

Added a new endpoint to the drivers API in the masterData REST API which provides the driver’s projected availability.

GET drivers/:driverId/availability

TM-178128

Dev 8: MasterData API - New Endpoint + GET - Client - Customer Specific SI

Added a new /shippingInstructions endpoint for getting client-specific shipping instructions.

TM-178131

Dev 10: MasterData API - POST - Customer Specific SI

Masterdata API - Added the ability to create new 'client-specific' shipping instructions.

TM-178132

Dev 11: MasterData API - PUT - Customer Specific SI

Verified that the MasterData API’s PUT endpoint (clients/{clientId}/shippingInstructions/{clientShippingInstructionId}) for Customer-Specific Shipping Instructions is functioning correctly.

TM-178134

Dev 12: MasterData API - DELETE - Customer Specific SI

Verified that the MasterData API’s DELETE endpoint (clients/clientId/shippingInstructions/shipInstructId) for Customer-Specific Shipping Instructions is functioning correctly.

TM-178295

Add client acesslevel validation to validateClientBeforeDelete function

Verified that Client Access Level Validation has been added to the validateClientBeforeDelete function.

TM-179283

Unable to link existing employee to an existing driver or vice versa

Fixed an issue where an existing employee could not be linked to an existing driver or vice versa.

TM-179424

ART - Update codesByTripNumber to return default next status code first

Added isDefaultNextStatusCode field to the GET /statusCodes endpoint to be used with the codesByTripNumber query parameter to determine what the next default status code is for the related trip.

TM-179590

ART - MasterData clients - incorrect count value

Fixed an issue where the count value being returned for GET /clients in the MasterData REST API was incorrect.

TM-180184

ART - GET traceTypes - add $filter

Added $filter parameter to masterData GET /traceTypes.

TM-180263

ART - GET driverAvailability DB2 error when path parameter exceeds max length

Fixed a DB2 error in the GET /driverAvailability endpoint that occurred when the path parameter exceeded the maximum length in TM - Masterdata.

TM-180565

Dev 14: masterData/clients - add New Field clientSpecificSI

Updated the masterData API '/clients' endpoint to display the new 'clientSpecificSI' property for GET commands and allow users to set this property for clients in the POST/PUT methods.

TM-180914

MasterData - Add GET /unNumbers endpoints

Added support for retrieving UN Number records through the masterData REST API.

SCHEMA: 180914_TMS_UNCODES.SQL

TM-181212

MasterData GET /drivers - Update view to return all drivers and not only records that are active in dispatch

Updated the drivers endpoint in the masterData API to not exclude driver records where the isActiveInDispatch flag is set to False.

SCHEMA: 181212_MASTERDATA DRIVER VIEW ACTIVEINDISP.SQL

TM-181310

MasterData Clients - POST /clients/clientId/customDefs returning Item not Found error

Fixed an issue where an "Item not Found" error was returned when creating client custom definitions using the Clients API of TM - MasterData.

POST /clients/:clientId/customDef

PUT /clients/:clientId/customDefs

Other APIs

Case Issue Case Name Description

TM-178254

ART - GET /documents return multiple records

The searchValue query parameter has been added to GET /documents which will return matching imaging documents from the Synergize repository for the record that matches the searchValue. This can be used to determine which documents can exist for a given TruckMate order record. It will return the related Synergize document ID value.

The documentId query parameter has been added to GET /documents/:documentType/searchValues/:documentIdentifier/:documentFormat endpoint. The documentId can be populated with the Synergize document ID value which can be retrieved using the GET /documents endpoint. This allows the Documents API to be able to retrieve specific documents in the scenario where more than one document exists for matching document type and document identifier in the Synergize Imaging repository.

TM-180100

MasterData API aChargeDetails - Validation/Handling regarding client Id and shipping instructions

MasterData API - Accessorial Code Details (/aChargeDetails) - Updated validation/handling regarding client Id and shipping instructions.

TM-180453

REST API - Error response - Add title and type to error response format

Updated the TruckMate REST API error format to more closely follow the Trimble API standards.

Code and description fields inside the array have also been marked as deprecated.

TM-181217

ART Finance - DriverPayments - POST - data in DRIVERPAY.TAXABLE is not set per the Pay Code’s DRV_PAYCODES.TAXABLE

Fixed an issue where the taxable value is not getting set based on the driver pay code’s related taxable setting when creating driver payments using the Finance REST API.

POST /driverPayments

TM4Web

Case Issue Case Name Description

TM-177984

Add TruckMate to the beginning of the TM4WEB Apache service when installed

Updated the TruckMate ISO installer to use the TruckMate prefix when installing the Apache Service for TM4Web.

TM-178530

TM4Web - Order Entry - Unable to save/hold/complete since the user is getting system error

Fixed an issue where a 500 error was being encountered when submitting a pickup request using the Order Entry page in TM4Web due to missing parameters.

TM-179353

Empty value for Possible Status Changes in WebAdmin prevents vendor web users from being able to login

Fixed an issue where status codes with an empty possible status changes grid in Web Administration would prevent vendor web users from being able to log into TM4Web.

TM-179615

TM4Web Excel button not exporting page vendor_combined.msw

Fixed an issue where the excel button was returning a 500 error on the Accepted and Assigned Orders vendors page in TM4Web.

TM-179858

TM4Web Vendor L-Haul Trip Status Zone Lookup error Failed to submit form

Fixed an issue where zone lookup form was returning an error on the vendor linehaul trip status updates page. This is an issue where SSL (https) is handled outside of the Apache instance (https request is forwarded to a http instance).

TM-180131

URL contains a reflected cross-site scripting vulnerability

Confirmed a cross-site scripting vulnerability on the export results page in TM4Web.