These features are available on your Test site on the evening of September 16 and released to your Production site on the evening of September 23.
New Features in This Release
- Improvements to driver scanning automations and workflows
- User interface and navigation improvements
- Additional billing flexibility
- Credit card processing improvements
- New options for user defined field behaviors
- Route planning improvements
- Simplified setting of individual driver pay rates
- Enhanced options for commingling on demand with routed work
- Self serve customer portal enhancements
- Empty-miles “deadhead” improvements
- Other admin, script, and extensibility improvements
TABLE OF CONTENTS
- Driver App Version 1.72
- Driver App Version 1.73
- User Interface Modification
- Batch Tool
- Back Office
- Dispatch Board
- Self-Serve
- Administration
- Scripts and Script Rules
- Tenant API
- Integration-Tenants API
Definitions
The release notes refer to different sections of the application:
Back Office: Where Customer Service Representatives (CSR) create and edit orders, create accounts, review drivers, etc.
Dispatch Board: Where Dispatchers assign orders to drivers, get notifications for invalid orders, etc.
Auto-Dispatch: This section refers to the automated order assignment setup and its process.
Administration: This section is in the Back Office but refers to sections only an administrator will use like Settings and Pricing.
Customer Portal: Where account users log in to create orders, view their order history, enter a credit card, etc.
Tracking site: Where customers enter a tracking number like the order ID or a reference number to view the status of their order.
OData: Data fields and variables saved in OData
Account API: API provided to your accounts to create, update and get orders. For documentation, please follow this link: https://api.dispatchscience.com/
Tenant API: API provided to you to create orders for your accounts, retrieve invoices and change invoice status. For documentation, please follow this link: https://api.dispatchscience.com/
Scripting: Custom script building abilities and functions within Dispatch Science
Driver App Version 1.72
It is important to note that if you do not have access to the Route module, this feature will not be available.
Driver App Checkpoint Routes
A new feature is now available in Dispatch Science under Orders > Routes > Route Checkpoints. This enhancement allows for more flexible and automated handling of route-based workflows.
Key Highlights:
- Route Checkpoint Setup: Configure checkpoints directly under Orders > Routes > Route Checkpoints. For detailed setup instructions, refer to the Route Checkpoint section in this documentation.
- Driver Permissions: To enable this functionality, Drivers must be granted the Scan/Set At Route Checkpoint permission under their role settings (Orders category).
- Automation Capability: Depending on the checkpoint configuration, routes can be automatically dispatched to the Driver and items can be set as picked up once scanned.
For complete setup and usage guidelines, please refer to the Route Checkpoint documentation section below.
Scan a Route Checkpoint
1) In Driver App, navigate to Warehouse menu and tap +. A new menu is available called Load Route:
2) Tap on Load Route:
If multiple Route Checkpoints are available to the Driver, a list of Route Checkpoints will be displayed in the app. The Driver must tap on the appropriate Route Checkpoint to activate it and proceed to the Route selection.
If only one Route Checkpoint is available to the Driver, this step is skipped.3) Once the Route Checkpoint is selected, manually or by default if only one Route Checkpoint was available to the Driver, the list of Routes within that Route Checkpoint is displayed. The Driver must tap on the appropriate Route to activate it and proceed to with scanning.
The list of Routes will show with the Route name, date and start time.
If only one Route is available to the Driver, this step is skipped and Driver will be directed to the scanning process.4) Proceed to scan the items on the Route.
5) Once done, hit the Complete button.
Depending on the configuration, Route may be dispatched to you and orders set as picked up.
Depending on the configuration, there may not be any Routes available in a Route Checkpoint either because there are no Routes or there are no Routes assigned or dispatched to the Driver.
One of the following message will be displayed depending on the situation:
Driver App Version 1.73
This version will be available in the weeks following the release of Dispatch Science.
Using Barcode Regex Validation
When you add a Regex validation to the barcode scanning step of the Add Parcel workflow, the scanner will accept only barcodes that match the regular expression. Any barcode that does not match will be rejected and the driver will be prompted with an error. This reduces errors caused by scanning wrong or unsupported barcode formats and ensures only valid parcels are added.
Example:
Regex: ^(\d{12}|\d{13})$ — accepts 12- or 13-digit numeric barcodes.
The Add Parcel workflow is used when adding parcels from the Stop details, on Pickup, on Delivery, during Checkpoint scan.
In Stop details, pickup or delivery, when scanning an item that does not meet the verification, an error message is displayed and the item is not added:
On Checkpoint, the error will be displayed once you select the order in which to add the parcel.
User Interface Modification
Filter and Clear All Button
In most tables with column filters, a Clear All Filters button is now available. This button appears automatically when one or more filters are applied, allowing you to quickly reset all filters at once.
Notes
The Notes interface has been redesigned to provide a more intuitive and user-friendly experience. All notes will truncate to 3 lines and be clickable to show the popover.
To view the full note, click on its text. A popup will open displaying the complete content, including website links and email links. Clicking an email link will open your default email application with the address pre-filled in the “To” field.
- Order Details in Back Office and in Dispatch Board
- Hold Notes are now clickable instead of appearing on hover. Any links included in Hold Notes will display as active, clickable links.
- The following notes are scrollable with clickable links on the Order Details:
- Account notes
- Caller info notes
- Customer notes
- Internal notes
- Pickup and Delivery notes
- Item description
- Attachment notes
- Order history entries
- Driver dispatch notes on Dispatch Board:
- Hold Notes are now clickable instead of appearing on hover. Any links included in Hold Notes will display as active, clickable links.
- Account Details
- Account Note
- Account Note
- Driver Details
- The two driver notes have been changed to a scrollable popover with clickable links:
- Driver notes
- Dispatch notes
- The two driver notes have been changed to a scrollable popover with clickable links:
Batch Tool
Recalculate Order Charges and Extra Fees
A new menu item has been added to the Batch Tool in the Order list to enable recalculating the delivery and extra fee charges on Orders. For more information on this feature, please review the batch tool user guide.
Back Office
Orders
Explanation Added on Order’s Driver Tab
To make it clearer how driver fuel surcharge payout is recalculated when a payout is manually entered on the Order, the message on the Driver’s tab in the Order has been modified to:
Continuation-Return Order Popup Modification
The icon in the Order Details view has been updated to more clearly represent the sequence of related orders. When you click the icon, a popup displays all orders in the suite as clickable links. This allows you to:
- Quickly navigate between the main order and any continuation or return orders.
- See the full sequence of orders in the suite at a glance.
- Reduce errors by easily confirming which order you are viewing or editing.
This improvement makes managing continuation and return orders more intuitive and efficient.
: This is the first order in a continuation or return order series.
: This is the last order in a return or continuation order series.
: This order is part of a continuation order series and is somewhere in the middle of the series.
When clicking on the icon, you can see the list of orders. The other orders will show as links and when clicked will open in a new tab.
This is also available in the order sliding tab on the Dispatch Board.
Order List
Addition of a Select All in Selectable List Filter
Columns with selectable lists (such as Order Type, Service Level, Vehicle, etc.) now include a Select All option, making it easier to quickly select all items.
Click on Select All to have all items in the list selected.
You can uncheck one or more before clicking on Filter.
Clear the selection to go back to the list of available items.
Addition of Two New Date Operators
Two new operators have been added to the Date columns in order filters to make it easier to search for orders based on whether a date is set or missing.
- Is Empty: Select this operator to find orders where the date field has not been filled in. This is useful for identifying orders that are missing a scheduled or required date.
- Is Not Empty: Select this operator to find orders where a date has been entered. This allows you to quickly filter for orders that already have a scheduled or completed date.
Once selected, the second argument disappears:
These operators help streamline order management by quickly isolating orders based on the presence or absence of a date.
Accounts
Billing Options Invoice Separated by User
A new Invoice Separated By User option is now available in the Account’s Billing Options. This new feature is not available when selecting Billing Cycle After Delivery.
When enabled, invoices will be grouped by the Account User on the order. This allows all orders delivered during the same billing period to be grouped by Account User, making it easier to bill or apply user-specific credit cards for payment. Setting the Billing Cycle to Daily and the Invoice Separated by to User, will reduce the number of credit card transactions.
The new By User option is not available when using the Billing Cycle After Delivery setting. As a result, Pre-Authorization cannot be used when User is selected in the Invoice Separated By option.
Notifications
The invoice notification will be sent as follow when the following options are set in the Billing Options and the Account User Send Invoices Option is checked:
Billing Method | Credit Card Setup | Invoice Separated By | Account User Send Invoices Option Checked (Account User Details) |
By Account | By Account | By Order | All Self-Serve with Send Invoices checked |
By User | All Self-Serve with Send Invoices checked | ||
By User | By Order | Only Concerned Self-Serve | |
By User | Only Concerned Self-Serve | ||
By Credit Card | By Account | By Order | All Self-Serve with Send Invoices checked |
By User | All Self-Serve with Send Invoices checked | ||
By User | By Order | Only Concerned Self-Serve | |
By User | Only Concerned Self-Serve |
If Main Contact Will Receive Invoices is checked in the Account details, the main contact on the account will also receive all invoice emails. In addition, any email addresses added under the Billing Options’ Invoice Recipients in Email CCs field will always be copied on all invoice emails.
As a reminder, a new tooltip is available on the Credit Card Setup in Billing Options
Set Invoice Separated by User
1) Open Accounts.
2) In the list, click on the account to edit.
3) Click Edit on the Billing Options.
4) The following can be selected to get access to the Invoice Separated By User:
- Billing Method:
- By Account
- By Credit Card
- Credit Card Setup:
- By Account
- By User
- Billing Cyle:
- Automatic Daily
- Any of the custom billing cycle
- Invoice Generation Date: Delivery Date or Ready At Date
5) Click on Invoice Separated By and select User
6) Click on Save.
User is not available in the Invoice Separated By field when Billing Cycle After Delivery is selected
Order Profiles
Accounts>Profiles>Order Profiles
Enhanced User Fields Settings for Internal and Self-Serve Users
User fields of type Item and Order now support additional configuration options for both internal and self-serve users. The existing settings for the Self-Serve option have changed and are now identical as the Internal Users options: Hidden, Read-Only, and Updatable.
An additional option is available on Order User Field to have those set as Required.
This enhancement provides greater flexibility and control over user data input and validation.
The user interface has changed and the options are now called:
- Behavior for Internal Users
- Behavior for Self-Serve Users
If field is set to Read-Only or Hidden, the Field Type will be changed to Text upon saving.
Set User Field
1) Open Account>Profiles>Order Profiles.
2) In the list of profiles, click on the profile to update.
3) Click Edit button in the User Defined Fields section:
4) Click on the ID of the field you wish to edit:
5) Set the desired behavior of the field for internal and for self-serve users:
- Internal Users
- Optional: This replaces the previous Updatable value.
- Read Only: This remains the same.
- Hidden: This remains the same.
- Required: This is a new setting that will require this field to be filled in before the Order is saved. This option is only available on Order Fields.
An error message will display if the field is left blank:The same error will be displayed on edit order if the field is blanked out.
- Self-Serve Users
- Optional: This replaces the previous Visible value.
- Read Only: When this is selected, the field will be visible but locked.
- Hidden: This remains the same.
- Required: This is a new setting that will require this field to be filled in before the Order is saved. This option is only available on Order Fields.
An error message will display if the field is left blank:The same error will be displayed on edit order if the field is blanked out.
6) Click on Save.
Addition REGEX Formatting in Add Item Workflow’s Barcode Scanning Step
In the Add Item workflow, when adding a Barcode Scanning step, you can now apply REGEX validation to the barcode. This ensures that only barcodes matching the specified pattern can be scanned, improving data accuracy and reducing errors.
Setup REGEX Validation
1) Open Accounts, Profiles, Order Profiles then click on a profile to edit.
2) In the Workflows section, click on the Add Order Item workflow. For more information on the Add Item Workflow, please review this article.
3) If the barcode step is already available, click on the step to edit or if not available, click on Add Step and select Scan Barcode
4) If creating a new step, fill in the required fields first but if editing, go to step 5.
5) Enter the REGEX barcode format in the field and click on Save.
Routes
Orders>Routes
Specify Recurring Routes Creation Day Offset and Time
Previously, orders on a Recurring Route were always created based on the order creation cutoff day and time.
A new Creation Day Offset and Creation Time are now available on Recurring Routes, allowing you to define a different creation day and time than the cutoff. This makes it possible to generate orders after the cutoff but before the start time of the route.
- By default, both new fields are blank (for existing and new recurring route schedules) and are optional.
- If the fields are left blank, the order creation time will continue to follow the cutoff day and time.
- The fields are also included when downloading the recurring route schedule template and schedule.
Manual Entry of Creation Offset and Time
1) Go to Orders > Routes > Route Plans.
2) Click a Route Plan to edit. (Note: Only Zip-Based Route Plans support these fields.)
3) Click + beside a day in the schedule. If no schedule exists, you can add one.
4) Enter both the Creation Day Offset and the Creation Time.
- When only one of the two field is filled in, the other field will use the Order Creation cutoff offset or time. For instance, if Creation Offset is left blank and only Creation Time is filled in, the Creation Offset will use the Order Creation Cutoff Offset with the Creation Time.
- These values cannot be later than the start time of the route. If you do, an error message will be displayed:
- Make sure to click outside of the field to ensure it is saved.
Download Template or Schedule with New Creation Offset Day and Time
1) Go to Orders > Routes > Route Plans.
2) Click a Route Plan to edit. (Note: Only Zip-Based Route Plans support these fields.)
3) Click on Import Schedules
4) Click on Template file to download the template and fill in the schedule.
Click on Schedule file to download a pre-filled file with the existing schedule.
5) In the Excel file, you have two new columns:
- OrderCreationCutoffDayOverride: this column contains either 0 or a negative integer
- OrderCreationCutoffTimeOverride: this column contains the creation time.
Note: The combination of both columns cannot be after the start time. If an invalid entry is saved, an error message will be displayed when attempting to import the schedule file and the schedule will not be imported.
6) Save the file.
7) You can now import the file using the Import Schedules button.
Drivers
Payout Schedules
Update Description for Predefined Payout
In the Driver Payout schedule, the has changed to better explain what is meant by predefined payout and how fuel surcharge is calculated:
Driver Options
Drivers>Driver Details>Driver Options
Driver Pay Configuration
You can now configure a dedicated Driver Pay Rate Price List, Fuel Surcharge, and Extra Fees at the driver level to calculate driver commissions more precisely.
These new fields are available under Driver Options > Driver Details and will be used as the primary values for calculating the total price on which the driver commission is based (via the Payout Schedule).
If any of the driver-level fields are not configured or return an invalid value, the system will automatically cascade to the next available level:
- Driver-Level Settings
- If a Driver Pay Rate Price List is associated with the driver, it will be used to calculate the driver delivery price.
- If missing or invalid (e.g., service level, vehicle, zones, mileage radius not found), the system cascades to the Account level.
- Account Driver Pay Rate Price List
- If defined, this price list will be used to calculate the driver delivery price.
- If missing or invalid, the system cascades further to the Account price list.
- Account Price List
- Used to calculate the delivery price if driver-level and Account Driver Pay Rate price lists are unavailable or invalid.
- If this also fails or if a manual delivery price is entered, that value will be used.
- Commission Calculation
- Once the delivery price is determined, the driver’s commission is calculated according to the settings in the order’s Driver tab.
The same cascading logic applies to Fuel Surcharge and Extra Fees.
- Each extra fee is calculated individually and may cascade differently, meaning fees can come from different cascading levels.
Add Driver Options Pay Information
1) Go to Drivers and click on a Driver to open its details.
2) Click on Edit button in Driver Options.
3) Select a price list in the Pay Rate Price List drop-down field.
Select a fuel surcharge schedule in the Pay Rate Fuel Surcharge Schedule drop-down field.
Select an extra fee schedule in the Pay Rate Extra Fees.
4) Click on Save once done.
This will only be used on orders assigned to drivers after the change the is made. Any orders where the driver was already assigned will not be updated.
Dispatch Board
Routes
Moving Route Orders to Other Routes
You can now move orders to dispatched routes regardless if container is dispatched. When moving the orders, you will also see if the route is already dispatched to a Driver.
1) Open the Dispatch Board and click on Route .
2) Navigate to the Route Plan then Route Container containing the order-s to move.
3) Select from the route menu, Move to Route, to move all the route’s undelivered orders to a new route:
3) Select from the grouped stop menu, Move to Route, to move all orders from the group to a new route:
4) elect from single stop menu, Move to Route, to move the order to a new route:
5) In the Move to Route dialog box, select the Route Plans:
6) In the Route Containers, the Containers that are dispatched will show (Dispatched beside their name):
7) Select the Route, dispatched routes will show with a (Dispatche beside its name):
8) Click on Move, the order-s will be moved to the selected Route.
Closed Containers will not show in the list.
Driver Quick View
The Driver speed is available in the Driver quick view when hovering on the Driver on both the Dispatch Board Grid and Map:
Move to Next Route
Dispatch Board Map View
You can now easily move a Routed order to the next route from the Dispatch Board Map View.
Clicking on the ... menu, select Move to Next Route on a Routed order:
Order Sliding Panel
On the Order sliding panel on a Routed order, you can now move the order to the next route.
Clicking on the ... menu, select Move to Next Route on a Routed order:
Driver Sliding Panel Order and Stop List
On the Driver sliding panel, in the Order List and on the Stop List, you can now move a Routed order to the next route.
Clicking on the ... menu, select Move to Next Route on a Routed order:
Grid Board Order List
You can now move multiple Routed orders to the next Route.
On the Grid Board Order List, select one or more orders then click on the ... menu, select Move to Next Route(s):
You can also move one order at at time buy clicking on the order ... menu:
Addition of Dispatch Orders to the Mass Order Update Menu
In the Grid Board, when selecting multiple orders, you can now use the mass update menu to dispatch these orders instead of sliding them to the Driver.
1) In a grid board, select one or more unrouted orders.
2) Click on the ... menu and select Dispatch
3) In the Dispatch Order dialog box, select the driver or use Unassigned:
4) Click on Dispatch if there are no issues with the driver or orders to dispatch the orders.
Continuation and Return Order Icon
The icon in the Order Sliding tab has been updated to more clearly represent the sequence of related orders. When you click the icon, a popup displays all orders in the suite as clickable links. This allows you to:
- Quickly navigate between the main order and any continuation or return orders.
- See the full sequence of orders in the suite at a glance.
- Reduce errors by easily confirming which order you are viewing or editing.
This improvement makes managing continuation and return orders more intuitive and efficient.

: This is the first order in a continuation or return order series.
: This is the last order in a return or continuation order series.
: This order is part of a continuation order series and is somewhere in the middle of the series.
When clicking on the icon, you can see the list of orders. The other orders will show as links and when clicked will refresh the tab with the selected order.
Grid Board Filters
Addition of a Select All in Selectable List Filter
Columns with selectable lists (such as Service Level, Vehicle, etc.) now include a Select All option, making it easier to quickly select all items.
Click on Select All to have all items in the list selected.
You can uncheck one or more before clicking on Filter.
Clear the selection to go back to the list of available items.
Addition of Two New Date Operators
Two new operators have been added to the Date columns in order filters to make it easier to search for orders based on whether a date is set or missing.
- Is Empty: Select this operator to find orders where the date field has not been filled in. This is useful for identifying orders that are missing a scheduled or required date.
- Is Not Empty: Select this operator to find orders where a date has been entered. This allows you to quickly filter for orders that already have a scheduled or completed date.
Once selected, the second argument disappears:
These operators help streamline order management by quickly isolating orders based on the presence or absence of a date.
Option to Hide Quick View Popup
On the board settings, a new option has been added to hide the Order and Driver Quick view.
All existing boards will have this option checked to continue showing the quick views.
Hide the Quick View on Existing Boards
1) Open the board setting by clicking on its setting icons:
2) In the Board setting, uncheck the Display Order and Driver Quick View option:
Hide Quick Order and Driver View when Creating a Board
1) Click on + in the DIspatch Board or navigate to the Board Landing Page and click on Add board.
2) Enter the name of the board.
3) Select the Board type and fill in additional information needed.
4) Uncheck the Display Order and Driver Quick View option
5) Click Create.
Self-Serve
Order List
Search by Barcode
In the Order List’s search bar, you can now search by an Order by its barcode. Simply type in barcode, or part of the barcode starting at the first characters, to search for an order.
Clicking on the new (i) will also give you the list of searchable fields:
Create Orders
Changes to Enter Address from Zip/Postal Code
During order creation, when adding a new Global Address using the Enter Address from Zip/Postal Code dialog box, the fields Company, Suite/Apt, Stop Time, and Notes are now included. These fields are copied from the order’s address section into the dialog box and, upon saving, are stored with the global address and displayed in the order’s address section.
During order creation, when adding a new Contact address using the Enter Address from Zip/Postal Code dialog box, the fields Company, Suite/Apt, Stop Time, and Notes are now included.
These fields are copied from the order’s address section into the dialog box and, upon saving, are copied back into the order. Once the order is created, the contact (with all its fields) will be saved as either an Account or User contact, depending on the user’s role permissions.
If user has access to create Account contact permission, the contact will always be added to the Account.
Administration
Improved Empty Miles Distance Calculation in Price List
Pricing>Price List
The empty miles or "deadhead" travel distance calculation has been improved to offer greater flexibility. In addition to using the warehouse’s latitude and longitude, the system now offers the option to also calculate the order distance using the Account’s main address location. The change ensures greater flexibility in choosing either warehouse or account main address as the origin point for distance-based pricing.
This enhancement provides more accurate and context-specific distance data when calculating the order's mileage.
Set Distance Travelling Distance by Account Address
1) Click on Pricing.
2) In the Price List, either create a new price list or edit an existing price list.
There are now 2 options available:
- Include Warehouse Travelling Distance which will use the latitude and longitude entered in the price list.
- Include Account Travelling Distance which will use the main address's latitude and longitude associated to the Account which can be found when you open an Account from the Account list:
To modify or add an address to an account, open the Account: Accounts>click on Account name in the list>Account Details that is accessed from the upper right Edit button once an account is opened.
3) Select the option you wish to use. Unselect the option if it was selected by error and the radio button will uncheck.
or
4) Select the desired option:
- For the warehouse travelling distance, click in the Include warehouse travelling distance radio button then enter the latitude and longitude of your warehouse.
- For the account's main address, click in the Include Account Travelling Distance radio button.
You will notice the latitude and longitude boxes will be locked.
5) Check to Exclude distance on return orders and/or continuation orders if needed.
6) Enter the formula to use in the Distance Formula box.
Use LocationToPickup to add the distance between the Location (warehouse or account main address) to the order pickup address.
Use DeliveryToLocation to add the distance between the order delivery address to the Location (warehouse or account main address).
7) Click Save.
To support the new location-based distance calculation, the following changes have been made to the distance formula terminology:
WarehouseToPickup becomes LocationToPickup
DeliveryToWarehouse becomes DeliveryToLocation
What this means to you:
If you edit a price list that uses the old Warehouse terminlogy, you will need to update the formula to use the new Location wording.
If you don't make changes to your existing price lists, no action is required. The system will continue to support the old workding through backward compatibility until the price list is modified.
Order Rules Properties
In Order Rules, the list of available properties is now sorted alphabetically, making it easier to quickly find and select the property you need.
Roles
Scripts Permission Change
The Scripts permission was split into 2 permissions:
Scripts and Script Rules
This will allow a more granular security on the scripts vs the script rules definition. It also allows for the additional permission that can be set on the Script and Script Rule to allow modification of the files and parameters only. For more information about this feature, please review Scripts and Script Rules below.
The Scripts permission was modified to from having an access right to a View and Edit rights.
The Access right will be removed in the next version since it is no longer needed.
The new Settings - Script Rules permission was added as a View and Edit.
All users set with the Access Right to Settings - Scripts in version 1.72 will be updated to have Edit right to the new Settings - Script Rules permission.
Scripts and Script Rules
Settings>System/Scripts and Script Rules
Extra Fee Additional Description and Metadata
You can now add a title and description in both languages available on your site to better explain the purpose of an extra fee. In addition, you can include metadata, which will also be accessible in Order Update Scripts and in reports.
All new fields are nullable so make sure the information
As part of the ExtraFeeScriptResult, you now have:
public ExtraFeeScriptResultDetails? Details { get; set; }
public class ExtraFeeScriptResultDetails
{
public string? TitlePrimary { get; set; }
public string? TitleSecondary { get; set; }
public string? DescriptionPrimary { get; set; }
public string? DescriptionSecondary { get; set; }
public IDictionary<string, object?>? Metadata { get; set; }
}
Examples
This snippet adds a title and a description in both languages:
Details = new ExtraFeeScriptResultDetails
{
TitlePrimary = "Quantity and price",
TitleSecondary = "Quantité et Prix",
DescriptionPrimary ="Hard coded qty 2 and price 10$" ,
DescriptionSecondary = "Qté 2 et prix 10$ en dur" ,
Metadata = new Dictionary<string, object?>()
{
{"Description", "Stairs"},
{"qty", 2},
{"price", 10.50m}
}
}
To add Metadata, you create the dictionary and fill it in:
Details = new ExtraFeeScriptResultDetails
{
Metadata = new Dictionary<string, object?>()
{
{"Description", "Stairs"},
{"qty", 2},
{"price", 10.50m}
}
}
To get the information in the Order Update Script, first declare your extra fee then make sure it is available on the order then get the Script Metadata:
var Stairs_EF = order.ExtraFees.FirstOrDefault(x => string.Equals(x.ExtraFeeTypeId, "stairs", StringComparison.InvariantCultureIgnoreCase));
var Stairs_Metadata = Stairs_EF.ScriptMetadata;
You can then get the information for each key in your metadata dictionary.
Enhanced Script and Script Rules Security
An enhanced security was added to allow specific users to update the file and parameters associated to a script rule.
This will allow different users to update the script while other can get access to the script rule parameters and file as typically, scripts would be maintained by your IT department while parameters and files would be maintained by operations.
Order Update Scripts
Order Update Scripts now support configurable permissions. Users with any assigned permission set to Edit will be able to modify the script rules where the script is associated as long as they have view access to Settings - Script Rules.
Add a Permission to a Script
1) Open Settings, System, Scripts and click on the script to edit.
2) In the Supported Permissions field, all permissions with an edit access will be listed.
You can start typing to filter the permissions:
3) Select one or more permission in the list.
4) Click on Save
Any user with a View Access to Settings - Script Rules and edit access to one of the permission selected, will be able to open the Script Rule associated to this Order Update script and download and upload a file as well as modify the parameters. All other fields will be locked.
Tenant API
Recalculate Fuel Surcharge
A new endpoint has been added to recalculate the fuel surcharge on an order based on a specified date:
POST/api/v1/orders/{orderId}/fuel-surcharge/recalculate
Parameters
- Order id
- forDate: for date format is YYYY-MM-DD or as MM-DD-YYYY
Attach Document and Certification Files to a Driver
You can now upload and associate documents or certification files to a driver using the Tenant API.
Workflow
1) Create the employee document-certification access via the endpoint GET /api/v1/drivers/{driverId}/employee-documents/{documentTypeId}/attachments/getcreateaccess.
2) Upload the file using either the SDK or REST API method with the correct header information for the file type and filename.
3) Associate the uploaded file with the driver via the endpoint POST /api/v1/drivers/{driverId}/employee-documents/{documentTypeId}/attachments
Endpoint
GET /api/v1/drivers/{driverId}/employee-documents/{documentTypeId}/attachments/getcreateaccess
Parameters:
- driverId: provide the driver ID. This can be found in OData Drivers table or it is also available in Dispatch Science when opening a driver (last set of characters before the / at the end of the URL).
- documentTypeId: provide the document type ID. This can be found under Settings>Configurations>Driver>Documents and Settings>Configurations>Driver>Certifications
This endpoint provides the necessary access information to upload a file to Azure Storage. You can use one of the below method to upload the file to Azure:
- Azure Storage SDK → requires AttachmentURL and AttachmentSAS
- Microsoft Blob Service REST API → requires an HTTP PUT to the BlobServiceRestApiUrl. For more information, please review this Microsoft Documentation.
Headers required for correct file type and filename import to Azure:
- Content-Type → MIME type of the file (e.g., application/pdf for PDF files)
- x-ms-blob-content-disposition → recommended format: filename=yourfilename.extension
Endpoint
POST /api/v1/drivers/{driverId}/employee-documents/{documentTypeId}/attachments
Associate an Uploaded Document and Certification to a Driver.
Parameters
- driverId: provide the driver ID. This can be found in OData Drivers table or it is also available in Dispatch Science when opening a driver (last set of characters before the / at the end of the URL).
- documentTypeId: provide the document type ID. This can be found under Settings>Configurations>Driver>Documents and Settings>Configurations>Driver>Certifications
Body
{
"attachmentId": "string",
"fileName": "string"
}
Fields
- attachmentId: Attachment Id returned from the GET /api/v1/drivers/{driverId}/employee-documents/{documentTypeId}/attachments/getcreateaccess endpoint.
- documentTypeId: provide the document type ID. This can be found under Settings>Configurations>Driver>Documents and Settings>Configurations>Driver>Certifications
Delete Document and Certification Files from a Driver
You can now delete documents or certification files from a driver using the Tenant API.
Workflow
1) Get the list of the driver's documents and certifications information using the GET /api/v1/drivers/{id}/employee-documents endpoint.
2) Once you have the documentTypeId and its attachmentId, use DELETE /api/v1/drivers/{driverId}/employee-documents/{documentTypeId}/attachments/{attachmentId} endpoint to delete the attachments.
Endpoints
GET /api/v1/drivers/{id}/employee-documents
This endpoint will get the list of documents and certifications for a specific driver.
Parameters
- id: Driver Id. This can be found in OData Drivers table or it is also available in Dispatch Science when opening a driver (last set of characters before the / at the end of the URL).
The following is returned:
{
"items": [
{
"documentTypeId": "string",
"documentType": 0,
"namePrimary": "string",
"nameSecondary": "string",
"documentNumber": "string",
"issuedBy": "string",
"issuedDate": "2025-09-04T21:15:24.829Z",
"expiryDate": "2025-09-04T21:15:24.829Z",
"updatedDate": "2025-09-04T21:15:24.829Z",
"typeOrClass": "string",
"otherInfo1": "string",
"otherInfo2": "string",
"otherInfo3": "string",
"note": "string",
"dispatchValidation": 0,
"certificationResult": 0,
"attachments": [
{
"id": :string",
"fileName": "string",
"url": "string"
}
]
}
]
}
You will need the documentTypeId and the id in the attachments section.
Endpoint
DELETE /api/v1/drivers/{driverId}/employee-documents/{documentTypeId}/attachments/{attachmentId}
This endpoint will delete the attachment specified for the driver.
Parameters
- driverId: This can be found in OData Drivers table or it is also available in Dispatch Science when opening a driver (last set of characters before the / at the end of the URL).
- documentTypeId: Returned in the GET /api/v1/drivers/{id}/employee-documents endpoint in the attachments section.
- attachmentId: id returned from the GET /api/v1/drivers/{id}/employee-documents endpoint in the attachments section.
Download All Order Item Labels as JSON
A new API endpoint is now available to download all labels for an order’s items in JSON format. The ZPL output is base64 encoded.
Endpoint
GET /api/v1/orders/{orderId}/items/label/{templateId}/{format}
Parameters
- orderId (string, required) → The Order ID.
- templateId (string, required) → The Template ID, found under Settings > Configurations > System > Labels.
- format (integer, required) → Use 0 to return the label as ZPL or 1 to return the label as PDF.
- isPrimary (boolean, optional) → true returns the label in the primary language, false in the secondary language.
Default = true.
Response
{
"labels": [
{
"itemId": "0a19219c-2bbc-450c-b8d2-4e89cfab0093",
"itemBarcode": "ND-4693-0001",
"encodedLabel": "encoded label information will be here"
}
]
}
Allow Custom HTTP Headers for Subscription Callback Requests
Customers integration with Dispatch Science, can use the API to subscribe to changes in the system.
For more information about the types of changes please review:
- For integration: https://api.dispatchscience.com/reference/web-hooks
- For integration-tenants: https://api.dispatchscience.com/reference/subscriptions-1
An enhancement to the subscriptions allows to setup HTTP headers with keys and their values in the body of the subscription endpoint:
"CallbackHeaders": {
"key1": "value1",
"key2": "value2"
}
Here is an example with Authorization and a X-Custom-Header fields.
"CallbackHeaders": {
"Authorization": "Bearer token_123",
"X-Custom-Header": "CustomValue"
}
The fields will be returned as part of the headers section along with the content-length, event-type, etc..
Integration-Tenants API
Allow Custom HTTP Headers for Subscription Callback Requests
Customers integration with Dispatch Science, can use the API to subscribe to changes in the system.
For more information about the types of changes please review:
- For integration: https://api.dispatchscience.com/reference/web-hooks
- For integration-tenants: https://api.dispatchscience.com/reference/subscriptions-1
An enhancement to the subscriptions allows to setup HTTP headers with keys and their values in the body of the subscription endpoint:
"CallbackHeaders": {
"key1": "value1",
"key2": "value2"
}
Here is an example with Authorization and a X-Custom-Header fields.
"CallbackHeaders": {
"Authorization": "Bearer token_123",
"X-Custom-Header": "CustomValue"
}
The fields will be returned as part of the headers section along with the content-length, event-type, etc..
Download All Order Item Labels as JSON
A new API endpoint is now available to download all labels for an order’s items in JSON format. The ZPL output is base64 encoded.
Endpoint
GET /api/v1/orders/{orderId}/items/label/{templateId}/{format}
Parameters
- orderId (string, required) → The Order ID.
- templateId (string, required) → The Template ID, found under Settings > Configurations > System > Labels.
- format (integer, required) → Use 0 to return the label as ZPL or 1 to return the label as PDF.
- isPrimary (boolean, optional) → true returns the label in the primary language, false in the secondary language.
Default = true.
Response
{
"labels": [
{
"itemId": "0a19219c-2bbc-450c-b8d2-4e89cfab0093",
"itemBarcode": "ND-4693-0001",
"encodedLabel": "encoded label information will be here"
}
]
}
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article