TruckMate 2025.4 New Features: Web/APIs

Released: January 16, 2026

Last updated: January 16, 2026

Required upgrade (TM-173710)

TruckMate 2024.1 and later require 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)

Freight Bill Import and Profile Import were deprecated in March 2024. These APIs have been removed as of 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 Transportation Knowledge Base:

These tables list issues in numerical order by case number.

Orders API

Case Issue Case Name Description

TM-184647

PUT orders/orderId - Add audits to request body

Orders API - Added ability to add 'audits' when modifying an order’s specified pickup and delivery fields.

TM-184722

Create centralized function to get currency code based on bill to client profile in OrderCommonDM.pas

Internal - Orders API - Create centralized function to get currency code based on bill to client profile in OrderCommonDM.pas

TM-185682

Duplicate Barcode ID with PUT in REST API

Orders API - Resolved an issue where the bardodes submitted through the API could get duplicate underlying barcodeId values when there was a mix of modifications and new barcodes at the same time.

TM-186005

PUT orders/orderId - 'InstructionId already exists for orderId' error when attempting to update order and replace shipping instruction records

TM Orders API - Shipping Instructions - Corrected an error that was occurring when attempting to modify an order with an update that included shipping instructions.

Trips API

Case Issue Case Name Description

TM-184785

Create Stored procedure to calculate total trip carrier cost and distance

Trips API infrastructure - Added stored procedure GET_VENDOR_LOAD_TOTALS for gathering trip totals for carrier costs and distance.

TM-185398

Trips API - Web Users / Multi company - Vendor Profile record visibility is not being considered

Fixed an issue where if a web user related to a vendor only visible to a specific company could incorrectly retrieve trips for other non-related vendors when the web user JWT was being used on an ART instance running on the company that is not visible to the related vendor.

TM-185728

Access violation at address 014F6344 in module 'art.exe'. Read of address 0000005C" when trying to apply DISP status

Fixed an access violation that would occur when dispatching a trip with a driver and HOS related appconfigs under Dispatch section were enabled.

TM-185944

GET tm/trips - Vendor Web User - Duplicate records returned when using vendor web user auth and trip contains multiple legs assigned to the same vendor

Resolved issue with GET tm/trips - Vendor Web User - where duplicate records could be returned when using vendor web user authorization and the trip contained multiple legs assigned to the same vendor.

TM-186768

tm/trips/tripNumber - Rename doorNo field to doorNumber

Renamed doors-related field in the trips API to doorNumber.

Finance API

Case Issue Case Name Description

TM-184419

Finance endpoints are performing DB lookup before openAPI validation (returning 404 instead of 400)

Fixed an issue in the Finance API where the openAPI validation was not being performed before doing a database lookup on the path parameter value.

TM-186090

Finance - Update PUT interlinerPayables/interlinerPayableId to use centralized logic

The PUT interlinerPayables/{interlinerPayableId} endpoint is enhanced to use centralized logic, improving the consistency and maintainability across the system.

The schema is also modified: The probillNumber field has been added to the request schema to support complete payable record updates

TM-186257

Finance - APIs should not be responding with a 404 if the request itself is not valid

Fixed an issue where finance API endpoints were responded with a 404 incorrectly when the request body itself was invalid

TM-186775

Finance - POST /apInvoices/{{AP_INVOICE_ID}}/expenses and PUT /apInvoices/{{temp_apInvoiceId}}/expenses/{{temp_expenseId}} -FB#s longer than 10 chars cannot be saved to "resourceId1" or "resourceId2"

Fixed API issue rejecting 20-character Freight Bill numbers in Expenses. Long FB Numbers now submit successfully and display correctly in Resource ID fields.

TM-186795

Finance - POST /apInvoices/temp_apInvoiceId/apDriverDeductions - Admin Fee Deduction and Tax Deduction are not returned

Fixed an issue in the Finance API regarding Driver Deductions. When a driver has a deduction code with both Admin Fee Deduction and Tax Deduction enabled, these fields were not automatically included in the response. This fix ensures both fields are returned in the response body.

TM-186920

Finance - POST /apInvoices/:apInvoiceId/apDriverDeductions - fields on Driver Deductions tab are not filled in per the Deduction code’s setup in PayCon.exe

Update POST /apInvoices/:apInvoiceId/apDriverDeductions API so after adding a new driver deduction record to an AP Invoice, the deductionQuantity, deductionRate, deductionAmount, deductionFunctionalTotal, deductionReference fields will be populated accordingly in the same way as ApNe.exe.

TM-186924

Finance - PUT /apInvoices/temp_apInvoiceId/apDriverDeductions - data in fields on Driver Deductions tab is not changed per new Deduction code’s setup in PayCon.exe

Update PUT /apInvoices/:apInvoiceId/apDriverDeductions/apDriverDeductionId API so after changing the deductionCode specified in the PUT request body, the deductionRate, deductionAmount, deductionFunctionalTotal, deductionReference fields will be re-calculated accordingly in the same way as ApNe.exe.

TM-186954

Merge ART finance phase 2 into main

Added more endpoints to the finance API https://developer.trimble.com/docs/truckmate/reference/openapi/finance/ - These are the endpoints we had before the merge Added more endpoints to the finance API

  • POST and PUT method for glAccounts

  • apInvoices (GET/POST/PUT)

TM-186996

When AP Bill’s Currency ("currencyCode") is changed by PUT /apInvoices - 'A/P Control Acct' is not changed automatically, 'GL Rate', 'GL Amt' and 'Func.Amt' of Expense records are not changed accordingly

Update the PUT /apInvoices/:apInvoice so that when changing the 'currencyCode' and/or 'glAccount', the following fields will be updated correctly and reflected in the response:

  • currencyCode

  • glAccount

  • expenses.expenseRate

  • expenses.expenseAmount

  • expenses.expenseFunctionalTotal

TM-187030

Finance - PUT /apInvoices - change "autoForeignExchange": "True" on a foreign currency AP Bill, 'Auto F/X' is checked, but 'Type' is set to null, F/E account cannot show up on Expenses tab

Finance - PUT /apInvoices - "autoForeignExchange": "True" on a foreign currency AP Bill is working as expected.

TM-187034

Finance - PUT /apInvoices - change "vendorBillDate" that is 'GL Date' on a foreign currency AP Bill when 'Auto F/X' is checked, exchange Rate is not changed per the new GL Date

Updated the PUT /apInvoice endpoint to ensure that modifying the vendorBillDate correctly triggers the recalculation of the GL Rate, GL Amount, and Functional Amount.

TM-187047

Finance - POST /apInvoices - 'Invoice Date for Aging' does not work

payableAgingDate is now checked based on the selected vendor for ap invoices.

TM-187101

Finance - PUT /apInvoices to change Vendor on AP Bill, 'Terms', 'Due Date', 'Discount Date', 'Discount %', 'Inter-Company' are NOT changed per the setup in vendor profile -Accounts Payable tab

Finance API - Updated the PUT to /apInvoices to match with the Invoice Entry application when changing the vendor on an existing invoice.  A PUT will now update the following invoice settings based on the vendor’s profile (Accounts Payable tab): 'Terms', 'Due Date', 'Discount Date', 'Discount %', and 'Inter-Company'

TM-187148

interlinerPayables - adjustedSubTotal is incorrectly set when adjustedExtras and adjustedSubTotal are not passed in PUT request

Finance API - interlinerPayables - corrected an issue where a PUT request that did not include adjustments to sub-total or extra charges would still trigger the adjustedSubTotal to calculate (incorrectly). The adjusted fields will now remain as their correct amounts.

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-184898

POST clients/clientId/contacts has Incorrect request body schema

Fixed an issue where the openAPI document for the masterData clients endpoint had the incorrect schema for the request body.

TM-185108

MasterData - Vendors API - Need to add missing fields that were supported in the profiles API

MasterData API - Added 4 properties to the Vendors API to support the following fields:

  • status

  • currencyCode

  • openTime

  • closeTime

TM-186583

MasterData - POST clients - clientID is being created with leading zeros when appconfig Auto Gen Client key is on

Fixed an issue where the ClientId width generated by ART did not respect the "Auto Key Pad Width" configuration.

ConnectedDock API (ART)

Case Issue Case Name Description

TM-181672

DEV-02: ConnectedDock - Record All Supervisor Overrides For Historical Review - TB_WCD_SUP_APPROVAL

As part of a new Supervisor Override History project for ConnectedDock, the WCD_SUP_APPROVAL table was modified to be updated for ConnectedDock use. This table previously existed as part of the old Windows CrossDock application and has now been updated for use with the modern ConnectedDock application.

TM-181673

DEV-03: ConnectedDock - Record All Supervisor Overrides For Historical Review - VW_WCD_SUP_APPROVAL

As part of a new Supervisor Override History project for ConnectedDock, the VW_WCD_SUP_APPROVAL view was added into the system for use with ConnectedDock Admin. The idea is that this view will be integrated into the ConnectedDock Admin application to allow Supervisors the ability to review all Supervisor Overrides within a given time period.

TM-181674

DEV-04: ConnectedDock - Record All Supervisor Overrides For Historical Review - ART Server

As part of a new Supervisor Override History project for ConnectedDock, the VW_WCD_SUP_APPROVAL view was added into the system for use with ConnectedDock Admin. The idea is that this view will be integrated into the ConnectedDock Admin application to allow Supervisors the ability to review all Supervisor Overrides within a given time period.

TM-181675

DEV-05: ConnectedDock - Record All Supervisor Overrides For Historical Review - ConnectedDock Admin

Added new functionality into the ConnectedDock workflow to ensure that any process within ConnectedDock that requires a Supervisor Override PIN will now be logged to the WCD_SUP_APPROVAL table (if the associated App Config to do this is set to True).This will mean that all supervisor overrides that occur within your ConnectedDock project will be stored and available for auditing at a later time.

TM-183066

DEV-08: Allow Ability To Assign Manifests To Specific Dock Workers - ConnectedDock API - User Groups

Added two new API endpoints to the ConnectedDock API library:

  • GET /userGroups

  • GET /userGroups/{groupId} The purpose of these new API’s will be to allow ConnectedDock to allow the view of User Groups configured within the system as a whole.

TM-183067

DEV-09: Allow Ability To Assign Manifests To Specific Dock Workers - ConnectedDock API - GET/ Dock Trips

Added two new API endpoints to the ConnectedDock API library:

  • GET/trips/tripNumber/dockUsers

  • GET/trips/tripNumber/dockUsers/dockId

The purpose of these new API’s will be to allow ConnectedDock to allow the view of users assigned to specific Trips.

TM-183068

DEV-10: Allow Ability To Assign Manifests To Specific Dock Workers - ConnectedDock API - POST/ Dock Trips

Added a new API endpoint to the ConnectedDock API library. The new endpoint is:

  • POST trips/{tripNumber}/dockUsers

The ConnectedDock workflow will utilize this endpoint to assign Dock Workers to Trips when requested through the ConnectedDock application directly.

TM-183069

DEV-11: Allow Ability To Assign Manifests To Specific Dock Workers - ConnectedDock API - DELETE/ Dock Trips

Added a new API endpoint to the ConnectedDock API library. The new endpoint is:

  • DELETE trips/{tripNumber}/dockUsers

The ConnectedDock workflow will utilize this endpoint to deassign Dock Workers from Trips when requested through the ConnectedDock application directly.

TM-183070

DEV-12: Allow Ability To Assign Manifests To Specific Dock Workers - ConnectedDock - Terminal Screen UI

Added new functionality into the ConnectedDock application to correctly restrict Dock Workers from being able to access Doors they are not assigned to. If a Dock Worker is not directly assigned to a Door (that has at least one other Dock Worker assigned), the Door will be greyed out and they will be unable to open the Door via any circumstances. Trips that do not have any Dock Workers assigned can be accessed by everyone.

TM-183071

DEV-13: Allow Ability To Assign Manifests To Specific Dock Workers - ConnectedDock - Manifest Screens (Loading/Unloading)

Added new functionality into the ConnectedDock application to correctly restrict Dock Workers from being able to access Doors they are not assigned to. If a Dock Worker is not directly assigned to a Door (that has at least one other Dock Worker assigned), the Door will be greyed out and they will be unable to open the Door via any circumstances. Trips that do not have any Dock Workers assigned can be accessed by everyone.

TM-183072

DEV-14: Allow Ability To Assign Manifests To Specific Dock Workers - ConnectedDock - Dock Worker Assignment - Terminal Screen UI

Added a terminal screen to the Connected Dock application as a part of the workflow to allow the ability to assign manifests to specific dock workers.

TM-183073

DEV-15: Allow Ability To Assign Manifests To Specific Dock Workers - ConnectedDock - Dock Worker Assignment - User Assignment Popup

1.Trip Assignment Configuration

Controlled by the "Allow Trip Assignment" configuration setting in MMDisp When enabled, restricts trip access based on user assignments When disabled, all users have open access to all trips (existing behavior)

2.User Assignment Popup

  • Supervisors can assign trips to dock workers via a new User Assignment popup accessible from the Terminal screen by swiping on a door with an active trip.

  • Allows assignment of:

    • Individual dock workers

    • User groups (assigns all members of the group)

  • Shows currently assigned users/groups with checkboxes

  • Displays all available dock workers and user groups for selection

3.Access Control & Restrictions

  • Assigned Users: Can access and work with trips assigned to them

  • nassigned Users: Cannot access trips assigned to others

  • Doors with restricted trips are visually disabled/greyed out

  • Attempting to access restricted trips shows warning: "This trip is assigned to other user(s)."

  • Loading/unloading operations are blocked for restricted trips

  • Supervisors: Bypass all restrictions and can access any trip regardless of assignment

4.Visual Indicators

  • Doors with trips assigned to other users appear disabled/greyed out on the Terminal screen

  • Clear visual feedback when attempting to access restricted trips

  • Warning messages inform users when access is denied

5.Enhanced Security

  • Trip access validation enforced throughout the application

  • Prevents unauthorized users from loading/unloading items on restricted trips

  • Validation occurs at multiple points:

    • Door selection/scanning

    • Item loading operations

    • Item unloading operations

    • Freight receiving operations

TM-185007

DEV-13: Checklist Project - ConnectedDock Needs Adjustment To Respect Checklist SQL Filter

Added new functionality into the ConnectedDock application to correctly restrict Dock Workers from being able to access Doors they are not assigned to.If a Dock Worker is not directly assigned to a Door (that has at least one other Dock Worker assigned), the Door will be greyed out and they will be unable to open the Door via any circumstances. Trips that do not have any Dock Workers assigned can be accessed by everyone.

TM-185293

Refactored the CL_TRIP_FILTER_PASSES function to improve logic and performance in Connected Dock.

TM-185530

DEV-16: Enhance GET /users endpoint needed for User Assignment Popup

Made a modification to the ConnectedDock API to add additional fields to the response parameter for the GET /users call.The following fields have been added:

  • userGroup

  • userGroupName

  • activeEach field will reflect:

  • userGroup = the ID value of the group a Dock Worker is assigned to in WCD_MOBILE_USER.

  • userGroupName = the name associated with the User Group assigned to a Dock Worker.

  • active = whether a user is actively logged into ConnectedDock at the moment of the API call.

TM-185652

DEV-18: Allow Ability To Assign Manifests To Specific Dock Workers - ConnectedDock - Dock Worker Assignment - User Assignment Popup pt 2

ConnectedDock now supports assigning trips (manifests) to specific dock workers or user groups. When enabled, only assigned users can access and work with those trips, improving workflow control and security.

Key Features

1.Trip Assignment Configuration

  • Controlled by the "Allow Trip Assignment" configuration setting in MMDisp

  • When enabled, restricts trip access based on user assignments

  • When disabled, all users have open access to all trips (existing behavior)

2.User Assignment Popup

  • Supervisors can assign trips to dock workers via a new User Assignment popup

  • Accessible from the Terminal screen by swiping on a door with an active trip

  • Allows assignment of:

    • Individual dock workers

    • User groups (assigns all members of the group)

  • Shows currently assigned users/groups with checkboxes

  • Displays all available dock workers and user groups for selection

3.Access Control & Restrictions

  • Assigned Users: Can access and work with trips assigned to them

  • Unassigned Users: Cannot access trips assigned to others

  • Doors with restricted trips are visually disabled/greyed out

  • Attempting to access restricted trips shows warning: "This trip is assigned to other user(s)."

  • Loading/unloading operations are blocked for restricted trips

  • Supervisors: Bypass all restrictions and can access any trip regardless of assignment

4.Visual Indicators

  • Doors with trips assigned to other users appear disabled/greyed out on the Terminal screen

  • Clear visual feedback when attempting to access restricted trips

  • Warning messages inform users when access is denied5. Enhanced Security

  • Trip access validation enforced throughout the application

  • Prevents unauthorized users from loading/unloading items on restricted trips

  • Validation occurs at multiple points:

    • Door selection/scanning

    • Item loading operations

    • Item unloading operations

    • Freight receiving operations

TM-185973

Pallet Group Loading functionality not working when item loaded via Pallet Group screen (Future Terminal Mode)

Fixed an issue within ConnectedDock where attempting to load items to a Pallet Group located on a Trip when 'Future Terminal' was the chosen App Config option could result in the bills not being loaded properly to the Trip. This could lead to the scenario where the bill was still DOCKED even though the item was loaded to the Trip. This has been corrected to ensure that all loading elements will fire correctly when this action occurs.

TM-185996

Pallet Group Loading functionality not working when item loaded via Pallet Group screen (No Restriction, Delivery Terminal Mode)

Fixed an issue within ConnectedDock where attempting to load items to a Pallet Group located on a Trip when 'Future Terminal' was the chosen App Config option could result in the bills not being loaded properly to the Trip. This could lead to the scenario where the bill was still DOCKED even though the item was loaded to the Trip.This has been corrected to ensure that all loading elements will fire correctly when this action occurs.

TM-186010

Initial Scans to Unload/Load items is not being completed

Fixed an issue within ConnectedDock where attempting to unload or load items on a Zebra device would not always correctly update the screen accordingly. The item would remain on the screen as if it had not been loaded or unloaded, even though behind the scenes this action had occurred.This has been corrected - the UI will now correctly sync with the action in ART ensuring there is no discrepancy between the two.

TM-186395

Unable to access OSD event after creating in ConnectedDock

Fixed an issue where user was unable to access OSD event after creating an OSD record in ConnectedDock.

TM-186404

ConnectedDock - User Assignment Restriction Not Behaving as Expected on Terminal Location Screen

Fixed an issue where a user was able to load an item to a trip at a door they were not assigned to.

TM-186405

ConnectedDock - Receiving Freight Screen Greys Out Checkmark Button After Failed Load

Re-enable the unload button when ConnectedDock correctly prevents Dock Workers from accessing unassigned Doors, so users can re-select the location and unload the item.

TM-186406

ConnectedDock - Crossdocking Freight Not Obeying User Assignment Restriction Logic

Unloading items to unauthorized doors is now restricted. If a user attempts to unload to a door assigned to another dock worker, an error message will be displayed.

TM-187417

After parking a trip at the Door on CD the trip can not be accessed

Fixed issue where the Terminal screen could not interact with doors/trips after a swipe action (e.g., Park at Door), which required users to log out/in to regain access.

Other APIs

Case Issue Case Name Description

TM-177817

Reworks related to appointments functionality GET and POST /appointments

TM-178699

Removed the Freight Bill Import option in ARTAdmin so it can no longer be setup as a service. Existing instances of freight bill import will no longer work as of the TruckMate 25.4 release. The TruckMate REST API (/tm) should be used going forward to perform operational workflows such as creating orders through an API.

Removed the Freight Bill Import option in ARTAdmin so it can no longer be setup as a service. Existing instances of freight bill import will no longer work as of the TruckMate 25.4 release. The TruckMate REST API (/tm) should be used going forward to perform operational workflows such as creating orders through an API.

TM-184208

Visibility - Art - add shipment event payload to ART Visibility Service

Visibility - Art - add shipmentStatus event payload to ART Visibility Service.

TM-184313

Visibility - ART - add stopstatus event payload to ART Visibility Service

Visibility - Art - add stopStatus event payload to ART Visibility Service.

TM-184498

Updated the Trimble Visibility outbound shipment model to include the userDefinedValues section that contains the requested equipment value for a given order.

Updated the Trimble Visibility outbound shipment model to include the userDefinedValues section that contains the requested equipment value for a given order.

TM-184501

Trimble Visibility - Change IsHazardous field to return enum value (0,1) instead of True or False

For compatibility with Trimble Visibility standards, we changed the 'IsHazardous' field to return (0,1) instead of True or False.

TM-184894

Visibility - Add support for visibility listener service to authenticate with ART

Added support for the Visibility listener service in TTC to be able to authenticate with the TruckMate REST API service (ART).

TM-185218

Visibility - Add support for visibility listener service to authenticate with ART

Added support for the Visibility listener service in TTC to be able to authenticate with the TruckMate REST API service (ART).

TM-185454

ART - Implement client credentials authentication for TTC services

Added support for Trimble Transportation Cloud (TTC) client credential tokens to authenticate with TruckMate REST API services (ART).

TM-186109

PUT /appointment/:id returns a 404

Fixed an issue where the PUT /appointment/:id field was incorrectly returning a 404 for a valid record.

TM-186197

Adjust Client Error Responses (4xx) to match Trimble standards

Made adjustments to the client error responses to match trimble standards.

  • 401 - title is now Unauthorized instead of Invalid authentication credentials

  • 403 - title is now Forbidden instead of Insufficient authentication credentials

  • 404 - title is Not Found instead of Resource not found

  • 405 - title is Method Not Allowed instead of Method Not Allowed.

  • 409 - title is Conflict instead of Resource conflict

TM-187190

Status Changer triggers Access Violation Error on DOCKED status job

Modified 'Status Changer' service to handle applying 'DOCKED' to a freight bill that is not on a trip without giving an error.