Release Notes
Changelog

What's shipping.

Platform updates, API changes, and feature releases across Broad Reach services.

API Support for Shipment Tracking Events
-----------------------------------------------------

Release Date: September 24, 2026

  • * *

What's New

A new API endpoint is now available in the Legacy project to allow system users and applications to create tracking events for shipments programmatically.
The API accepts a shipment tracking number and tracking code, identifies the corresponding shipment and tracking code configuration, and creates a new record in the shipmenttrackingevent table.
The tracking event is automatically generated based on the configured tracking code, with the event timestamp set to the current EST date/time.

  • * *

Why?

Previously, creating a tracking event required the event to be generated through an existing application workflow.
The new API provides a programmatic way to add tracking events directly to a shipment using its tracking number and tracking code.
This allows external systems and internal applications to create consistent tracking events while using the existing tracking code configuration.

  • * *

How It Works

The API accepts the following information:
  • tracknbr
  • trackingcode
  • location
  • eventsource
The system then:
  • Uses tracknbr to locate the corresponding shipment.
  • Uses trackingcode to locate the corresponding tracking code configuration.
  • Retrieves the required shipment.id and trackingcodevalue.id.
  • Determines the tracking event from the tracking code configuration.
  • Creates a new record in the shipmenttrackingevent table.
  • Sets the event date/time to the current EST date/time.
  • Stores the provided location.
  • Stores the provided event source.
  • * *

Request Payload

{
"tracknbr": "123",
"trackingcode": "610",
"location": "Buffalo, NY",
"eventsource": "Portal"
}

  • * *

Tracking Code Mapping

The tracking event is derived from the existing tracking code configuration. For example:
Tracking CodeEvent
610Returned / ParcelReturned
For the following request:

tracknbr: 123
trackingcode: 610

the API identifies tracking code 610 and creates the corresponding ParcelReturned tracking event for shipment 123.
The API does not require the caller to provide the event name separately.

  • * *

Event Date and Time

The tracking event timestamp is automatically generated when the API request is processed.
The event date/time is always set using the current EST date/time.
The caller does not need to provide an event timestamp in the request payload.

  • * *

Shipment Identification

The shipment is identified using the provided tracking number.
For example:

tracknbr = 123

The API searches for the corresponding shipment and retrieves its shipment.id.
The identified shipment ID is then used when creating the tracking event.

  • * *

Tracking Code Identification

The tracking code is identified using the provided tracking code value.
For example:

trackingcode = 610

The API retrieves the corresponding trackingcodevalue.id and event configuration.
The configured event is then used to create the shipment tracking event.

  • * *

Tracking Event Creation

Once the shipment and tracking code are successfully identified, the API creates a new record in the shipmenttrackingevent table. The created event contains:
FieldDetails
ShipmentIdentified using tracknbr
Tracking CodeIdentified using trackingcode
EventDerived from tracking code configuration
Event Date/TimeCurrent EST date/time
LocationProvided in the API request
Event SourceProvided in the API request
  • * *

Example Flow

API Request
│
├── tracknbr = 123
├── trackingcode = 610
├── location = Buffalo, NY
└── eventsource = Portal
│
▼
Find Shipment
│
└── shipment.id
│
▼
Find Tracking Code
│
└── trackingcodevalue.id
│
▼
Read Tracking Code Configuration
│
└── 610 → ParcelReturned
│
▼
Create shipmenttrackingevent
│
├── Event = ParcelReturned
├── Date/Time = Current EST
├── Location = Buffalo, NY
└── Event Source = Portal

  • * *

Success Response

When the tracking event is successfully created, the API returns an appropriate success response confirming that the tracking event was created for the shipment.
The response should provide sufficient information to identify the created event and associated shipment.

  • * *

Validation and Error Handling

The API validates the supplied shipment tracking number and tracking code before creating the event. An appropriate error response is returned when:
  • The provided tracking number does not exist.
  • The provided tracking code does not exist.
  • The shipment cannot be identified.
  • The tracking code configuration cannot be identified.
  • The tracking event cannot be created.
No tracking event should be created when the required shipment or tracking code information cannot be resolved.
  • * *

Benefits

  • Allows tracking events to be created programmatically.
  • Uses the existing tracking code configuration.
  • Automatically generates the appropriate tracking event.
  • Ensures consistent event mapping across applications.
  • Automatically records the current EST date/time.
  • Supports location and event source information.
  • Provides validation for invalid shipment tracking numbers and tracking codes.
  • Can be consumed by Legacy or Portal 2.0 workflows.
  • * *

Applicable Projects

The API endpoint can be implemented in:
  • Legacy
  • Portal 2.0
The endpoint should follow the existing API conventions of the selected project.
  • * *
_For questions or support, contact the appropriate technical or operations team._

Cross-Dock Support for International Terminal Scans
---------------------------------------------------

Release Date: September 21, 2026

  • * *

What's New

The Legacy terminal scanning process now supports scanning the same shipment at a facility in a different country without overwriting the shipment's original scan information.
When a shipment is scanned at a facility in another country, the original Bag, Pallet, Trip, Container, and Scan User information remains available, while the new scan information is stored separately as Cross-Dock information.
This allows both the original shipment relationship and the cross-dock relationship to remain available for operational processing, tracking, and reporting.

  • * *

Why?

Previously, scanning a shipment at a different country or facility could overwrite the shipment's existing scan information.
For cross-border movements, this could result in the loss of the original shipment's Bag, Pallet, Trip, Container, or Scan User relationship.
The new cross-dock functionality preserves the original scan information while maintaining the details of the subsequent scan.

  • * *

How It Works

When a shipment is scanned, the system evaluates the shipment's destination country and the country of the selected terminal/facility.
  • If the shipment does not have existing scan information, the scan is stored in the existing/original shipment fields.
  • If the shipment already has scan information and the new scan occurs in the same country, the existing scan behavior continues and the latest scan may overwrite the existing information.
  • If the shipment already has scan information and the new scan occurs in a different country, the original information is preserved and the new scan is stored in the Cross-Dock fields.
  • A tracking event/milestone is created for the cross-dock scan so the shipment movement remains visible in tracking.
  • The cross-dock scan creates a new Bag/Pallet/Trip/Container relationship without removing the original relationship.
  • * *

Cross-Dock Fields

The Shipment table now retains the additional information required for cross-dock processing:
FieldDetails
Cross-Dock Scan User IDUser who performed the cross-dock scan
Cross-Dock Bag IDBag associated with the cross-dock scan
Cross-Dock Pallet IDPallet associated with the cross-dock scan
Cross-Dock Trip IDTrip associated with the cross-dock scan
Cross-Dock Container IDContainer associated with the cross-dock scan, when applicable
These fields allow the original and cross-dock shipment relationships to be retained simultaneously.
  • * *

Cross-Dock Country Support

Cross-dock scanning initially supports shipments moving between:
  • Canada
  • United States
The cross-dock determination is based on:
  • The shipment's destination country.
  • The country of the selected terminal/facility where the shipment is being scanned.
Cross-dock scanning is not restricted to specific US terminals. A shipment can be scanned at any applicable facility based on operational routing.
  • * *

Same-Country Scanning

Scanning a shipment multiple times within the same country continues to follow the existing behavior. For example:
  • Shipment scanned in Toronto, Canada → Original scan information is stored.
  • Shipment scanned again in Vancouver, Canada → Existing scan information can be updated/overwritten according to the existing process.
  • No cross-dock relationship is created because both scans occurred within the same country.
This ensures existing terminal scanning behavior is not changed for same-country scans.
  • * *

Different-Country Scanning

When a shipment is scanned at a facility in a different country, the original scan information is preserved. Example:
  • Shipment scanned in Toronto, Canada → Original Bag/Trip information is stored.
  • Same shipment scanned in Buffalo, USA → Original Toronto information remains unchanged.
  • Buffalo scan information is stored in the Cross-Dock fields.
  • A new tracking event/milestone is created for the Buffalo scan.
  • The new Buffalo Bag/Pallet/Trip/Container relationship is retained separately from the original relationship.
This allows both shipment relationships to remain available for operational and reporting purposes.
  • * *

Tracking

Each cross-dock scan creates a corresponding tracking event/milestone.
This ensures that the shipment's movement between countries and facilities remains visible throughout the tracking lifecycle.
The tracking history can therefore reflect both the original scan and subsequent cross-dock scans.

  • * *

Container / Bag / Pallet / Trip Relationships

Cross-dock processing creates a new relationship for the subsequent scan rather than performing a container switch that removes the original relationship. The original shipment relationships remain available after the cross-dock scan. This includes the original:
  • Bag
  • Pallet
  • Trip
  • Container, when applicable
along with the corresponding Cross-Dock relationships.
  • * *

Legacy Terminal Support

The functionality is initially implemented for the Legacy terminal scanning process.
The same cross-dock behavior is expected to be supported in the new scanning application in the future.

  • * *

Example Flow

Toronto, Canada
│
│ Original Scan
▼
Original Bag / Pallet / Trip
│
│ Shipment moves to USA
▼
Buffalo, USA
│
│ Cross-Dock Scan
▼
Cross-Dock Bag / Pallet / Trip
│
└── New Tracking Event

After the Buffalo scan, both the original Toronto relationship and the Buffalo cross-dock relationship remain available.

  • * *

Benefits

  • Preserves the original shipment scan information.
  • Supports cross-border operational routing.
  • Maintains both original and cross-dock Bag/Pallet/Trip/Container relationships.
  • Prevents accidental loss of original shipment relationships.
  • Provides tracking visibility for every cross-dock scan.
  • Maintains existing same-country scanning behavior.
  • Supports operational and reporting requirements.
  • Provides a foundation for the same functionality in the new scanning application.
  • * *

Applicable Shipment Movement

Initially supported:
  • Canada → United States
  • United States → Canada
Scan locations: Any applicable terminal/facility based on operational routing.
  • * *
_For questions or support, contact the appropriate technical or operations team._

USPS Scan Form

Overview
--------

Release Date: Aug 19, 2026

This release introduces USPS Scan Form functionality to the Trip Close screen in the .NET Legacy Portal.
A new Scan Form button allows users to generate and download a USPS Scan Form for all eligible USPS shipments associated with a trip. The system retrieves the required BukuShip shipment identifiers, generates the manifest through the BukuShip Manifest API, and stores the resulting PDF against the trip for future download.

Release

FeatureComponentDescription
USPS Scan FormLegacy Portal – Trip CloseGenerate and download a USPS Scan Form for eligible USPS shipments
BukuShip Manifest IntegrationBukuShip APIGenerate a USPS Scan Form using BukuShip shipment identifiers
Scan Form StorageTripStore the generated Scan Form PDF against the trip
  • * *
USPS Scan Form --------------

Screen: Trip Close
Button: Download Scan Form
Carrier: USPS
The Scan Form functionality allows users to generate a single USPS Scan Form containing all eligible USPS shipments associated with the selected trip.
Eligible shipments are identified through the following relationship:

Trip → Pallet → Bag → Shipment → BukushipShipmentRate

The BukuShip shipment details are retrieved using:

Shipment.Id = BukushipShipmentRate.ShipmentId

The system retrieves the required BukuShip identifier, such as label_id or shipment_id, and uses it to generate the manifest.

Supported USPS Services

The release supports:
  • USPS Ground Advantage
  • USPS Priority Mail
All USPS shipments are currently processed through BukuShip.
  • * *
Generate Scan Form ------------------ When the user selects Scan Form for a trip:
  • The system identifies all eligible USPS shipments associated with the trip.
  • The system retrieves the related BukushipShipmentRate records.
  • The required BukuShip label_id and/or shipment_id is retrieved.
  • The BukuShip Create Manifest API is called with the applicable shipment identifiers.
  • The USPS Scan Form is generated.
  • The returned PDF is processed and stored against the selected trip.
  • The generated Scan Form becomes available for download from the Trip Close screen.
  • * *
Download Existing Scan Form ---------------------------

If a Scan Form has already been generated for the selected trip, users can download the existing PDF directly from the Trip Close screen.
The system does not need to regenerate the Scan Form when an existing Scan Form is available.
This ensures that the previously generated Scan Form remains available for future use and avoids unnecessary BukuShip API calls.

  • * *
Scan Form Storage ----------------- The generated USPS Scan Form is stored against the corresponding Trip record. The stored Scan Form:
  • Is associated with the selected trip.
  • Is stored as a PDF.
  • Remains available after the trip is closed.
  • Can be downloaded from the Trip Close screen.
  • * *
Release Impact --------------

This release provides Legacy Portal users with a trip-level USPS Scan Form workflow, allowing eligible USPS shipments to be manifested together through BukuShip.
No changes are required to existing non-USPS shipment processing.

download_form.png
  • * *
_For questions or support, contact the development team or your account manager._

Return Carrier in Tracking Responses

Overview
--------

Release Date: Aug 13, 2026

This enhancement updates the Legacy Tracking API to always return the carrier value in tracking responses when carrier information is available.

Enhancement

FeatureAPIField
Return Carrier in Tracking ResponseLegacy Tracking APIcarrier
  • * *
Return Carrier in Tracking Responses ------------------------------------

API: Legacy Tracking API
Field: carrier
Description:
The tracking response has been updated to include the carrier field. This allows tracking consumers to identify the carrier associated with a shipment and provide more accurate tracking information.
The carrier value will be returned whenever it is available from the tracking data source. Existing response fields and behavior remain unchanged.

Acceptance Criteria

  • Tracking responses include the carrier field.
  • Existing tracking response fields and behavior remain unchanged.
  • Automated tests validate the presence and accuracy of the carrier value.

Example Response

{
"trackingNumber": "123456789",
"status": "In Transit",
"carrier": "USPS"
}

  • * *
_For questions or support, contact the development team or your account manager._

Trip Close Excel Export – Format Columns as Text

Overview
--------

Release Date: Aug 13, 2026

This enhancement updates the Trip Close Excel Export functionality in the Legacy Portal to export specific shipment-related columns using Text formatting. This prevents Excel from automatically converting, truncating, or reformatting values when the exported file is opened.

Enhancement

FeatureModuleChange
Trip Close Excel ExportLegacy PortalExport selected columns as Text format
  • * *
Trip Close Excel Export – Text Formatting -----------------------------------------

Module: Trip Close
Application: Legacy Portal
Description:
The Trip Close Excel export has been updated to explicitly export shipment and customs-related fields as Text instead of using Excel's default General format.
The implementation changes the export generation from createCSVField() to createCSVFieldText() for applicable columns, ensuring values are preserved exactly as stored and displayed.

Updated Text-Formatted Columns

The following fields are now exported as Text:
  • Shipper
  • Address
  • City
  • State / Province
  • Postal / Zip Code
  • Consignee Name
  • Consignee Address
  • Consignee City
  • Consignee State / Province
  • Consignee Zip / Postal Code
  • Shipment Type
  • SCN
  • Merchandise Description
  • Quantity
  • UMQty
  • Weight
  • UMWGT
  • Value
  • Final Consignee Name
  • Final Consignee Address
  • Final Consignee City
  • Final Consignee State / Province
  • Final Consignee Zip / Postal Code
  • Final Consignee Country
  • FDA
  • Commodity Country of Origin

Benefits

  • Prevents value truncation in Excel.
  • Preserves leading zeros in postal codes and other identifiers.
  • Prevents automatic conversion of numeric or alphanumeric values.
  • Ensures exported data matches the source data.
***

_For questions or support, contact the development team or your account manager._

Unmapped SKU Alert Feature

This wiki documents the background, architecture, and implementation details of the Unmapped SKU Alert automated background process.

Release Date: Aug 01, 2026

📋 Overview & Business Value
----------------------------

For US Cross-Border shipments, it is critical that all SKUs in incoming shipment requests are mapped correctly in the database. If there are unmapped or missing SKUs, shipments cannot be successfully processed.
The Unmapped SKU Alert is a scheduled Azure Function that periodically scans for unmapped or empty SKU records, compiles them into reports, and alerts the accounts/operations team via email so that the necessary SKU mapping configuration can be corrected promptly.

⚙️ System Architecture & Workflow
---------------------------------

The following sequence details how the alert function operates:

sequenceDiagram

autonumber

participant Azure Timer as Azure Timer Trigger

participant Function as UnmappedSkuAlert Function

participant DB as SQL Database

participant ClosedXML as Excel Engine (ClosedXML)

participant Razor as Razor Engine

participant Email as Email/Notification Service

Azure Timer->>Function: Timer fires (Cron scheduled)

Function->>DB: Execute [dbo].[sp_GetUnmappedSkus]

DB-->>Function: Return List<UnmappedSkuInfo>

alt List is empty

Function->>Function: Log: "No unmapped SKU records found" and exit

else List has records

Function->>Function: Group records by Customer Name

Function->>Razor: Generate HTML body from UnmappedSkuAlert.razor

Razor-->>Function: Return HTML email content

Function->>ClosedXML: Generate Excel reports

Note over ClosedXML: 1. Unmapped SKU.xlsx<br/>2. Empty SKU Shipment No.xlsx

ClosedXML-->>Function: Return Excel files as byte array attachments

Function->>Email: Send email with attachments to target address

end

🛠️ Detailed Implementation Details

1. Database Query

The function triggers database calls using Dapper on top of the EF Core connection:

  • Stored Procedure: [dbo].[sp_GetUnmappedSkus]
  • Return Columns Mapping:
  * Name (Customer Name)

* TrackNbr (Shipment Tracking Number)

* Sku (SKU Code)

2. Email Body Rendering

  • The email body is defined in [UnmappedSkuAlert.razor].
  • It is dynamically rendered with a table listing the Customer Name and their respective count of Missing SKUs.

3. Attachment Generation (Excel Reports)

Two separate Excel files are compiled using ClosedXML:

Unmapped SKU.xlsx - Unique unmapped SKU names that require mapping. SKU Name !string.IsNullOrWhiteSpace(Sku)

Empty SKU Shipment No.xlsx - Tracking numbers of shipments with entirely empty/blank SKUs. Tracking Number string.IsNullOrWhiteSpace(Sku)


⚙️ Configuration & Environment Variables

The function uses the following configuration values:

  • Cron Timer Expression: Defined by Timer-UnmappedSkuAlert in application settings.
  • Notification Email: Loaded from the UnmappedSkuAlert-Email environment variable (defaults to Accountmanagers@brdrch.com if not set).

New Service - Asendia Canada DDP (Northbound)

Release Date: Aug 12, 2026

Overview

This page documents the Asendia shipping service configuration used for DDP (Delivered Duty Paid) shipments to Canada.

New Service

ServiceBilling NameService Code
Asendia NorthboundBroad Reach US to CAasendia_canada_ddp

1. Asendia Canada DDP

Billing Name: Broad Reach US to CA
Internal Code: asendia_canada_ddp
Carrier: Asendia
Origin: US

Description:
Asendia Canada DDP is a Delivered Duty Paid shipping service for shipments from the US to Canada, using the Asendia Northbound service. Duties and applicable taxes are handled as part of the DDP shipping arrangement.

Below is an example of a successful label test:


asendia_canada_ddp.png
Asendia Canada DDP Label

*For questions or support, contact customer services or your account manager.*

New Services - Asendia EU e-PAQ Services

Overview
--------

This page documents the new Asendia EU e-PAQ shipping service configurations. There are currently two Asendia EU e-PAQ service configurations:
  • Asendia EU e-PAQ Standard
  • Asendia EU e-PAQ Plus
Release Date: Aug 10, 2026
  • * *
New Services ------------
ServiceService CodeService AliasCarrierCategory
Asendia EU e-PAQ Standardaseu_epaq_standardASEUEPAQSTDAsendia EUUS Domestic
Asendia EU e-PAQ Plusaseu_epaq_plusASEUEPAQPLSAsendia EUUS Domestic
  • * *
  • Asendia EU e-PAQ Standard
----------------------------

Service Name: Asendia EU e-PAQ Standard
Service Code: aseu_epaq_standard
Service Alias: ASEUEPAQSTD
Carrier: Asendia EU
Category: US Domestic
Description:
Asendia EU e-PAQ Standard is a standard shipping service provided by Asendia EU for US Domestic shipments. This service is intended for standard e-PAQ shipments through the Asendia EU carrier network.

Below is an example of the configured service:

--------

aseu_epaq_standard.png

--------

  • * *
  • Asendia EU e-PAQ Plus
------------------------

Service Name: Asendia EU e-PAQ Plus
Service Code: aseu_epaq_plus
Service Alias: ASEUEPAQPLS
Carrier: Asendia EU
Category: US Domestic
Description:
Asendia EU e-PAQ Plus is a premium e-PAQ shipping service provided by Asendia EU for US Domestic shipments. This service is intended for shipments requiring the e-PAQ Plus service offering through the Asendia EU carrier network.

Below is an example of the configured service:

--------

aseu_epaq_plus.png

--------

  • * *
_For questions or support, contact customer services or your account manager._

New Services - Asendia ROW

Overview
--------

This page documents the Asendia shipping service configurations used for DDP (Delivered Duty Paid) shipments. There are currently two Asendia ROW DDP service configurations:
  • e-PAQ Elite DPD DDP
  • e-PAQ Elite DDP
Release Date: Aug 07, 2026

New Services

| Service | Billing Name | Asendia Code | Service Code |
| --- | --- | --- | --- |
| Asendia ROW DPD DDP | e-PAQ Elite DPD DDP | A1105 | asendia_row_dpd_ddp |
| Asendia ROW DDP | e-PAQ Elite DDP | A128 | asendia_row_ddp |


1. Asendia ROW DPD DDP

Billing Name: e-PAQ Elite DPD DDP
Service Code: A1105
Internal Code: asendia_row_dpd_ddp
Description:
Asendia ROW DPD DDP is a Delivered Duty Paid shipping service using the e-PAQ Elite DPD service. Duties and applicable taxes are handled as part of the DDP shipping arrangement.

Below is an example of a successful label test:


(asendia_row_dpd_ddp.png)


2. Asendia ROW DDP

Billing Name: e-PAQ Elite DDP
Service Code: A128
Internal Code: asendia_row_ddp
Description:
Asendia ROW DDP is a Delivered Duty Paid shipping service using the e-PAQ Elite service.

Below is an example of a successful label test:


asendia_row_ddp.png

*For questions or support, contact customer services or your account manager.*



SKU Management - Search Functionality

Release Date: July, 27 2026


Overview
--------

A search capability has been added to the SKU Management screen to help users quickly locate SKU records.
The implementation uses the existing data already loaded on the page and performs client-side filtering using the PrimeNG DataTable. No additional API or server-side search endpoint is required.
The same search functionality has also been implemented on the SKU Without Vendor screen for a consistent user experience.

Implementation Details
----------------------

Search Behavior

  • Added a search input above the SKU grid.
  • Search is performed on the client using the data already available in the grid.
  • Filtering is handled by the PrimeNG DataTable.
  • No backend/API calls are made when performing a search.
  • The search currently filters only the SKU column.

Search Flow

  • User enters a SKU (or partial SKU) in the search box.
  • PrimeNG applies a client-side filter to the loaded dataset.
  • Matching SKU records are displayed instantly.
  • If no records match, the grid displays the standard No records found message.
Notes -----
  • Only the SKU field is searchable.
  • Existing grid functionality remains unchanged.
  • Existing Edit functionality was already available and was not modified as part of this implementation.
  • No backend changes or database changes were required.

🆕 New Carrier - Intelcom


New Carrier - Intelcom

Release Date: July 17, 2026


What's New

Intelcom is now available as a supported carrier on the platform. Intelcom services CA to CA deliveries .


Service Code

To use Intelcom, pass the following API service code in the shipment request:

intelcom_ground

Coverage

  • Lane: CA to CA

Sample Label — Successful Test

Below is an example of a successful label test for Intelcom:

label.png

Note: Carrier activation is dependent on operational workflow consideration.


*For questions or support, contact customer services or your account manager.*


Shipment Return / Label Void Process
====================================

Release Date: July 08, 2026

Shipment Return / Label Void Process
====================================

Overview
--------

The Shipment Return screen is available in the Administration section and allows users to void shipment labels in bulk.
Users can upload a file containing tracking numbers that should be voided. The system validates and processes each tracking number, submits a void request to the carrier, and updates the shipment records based on invoicing status.

  • * *
User Workflow -------------
  • Navigate to Administration → Shipment Returns.
  • Upload a file containing tracking numbers to be voided.
  • Submit the request for processing.
  • The system validates the uploaded file and processes the tracking numbers.
  • Results are displayed to the user after processing completes.

Processing Limits

  • A maximum of 200 tracking numbers can be processed per upload.
  • The system processes tracking numbers in parallel with a maximum concurrency of 10 requests at a time.
  • * *
Carrier Void Request --------------------

For each tracking number, the system submits a request to the Shipment API:
Endpoint
https://portal.shipwizmo.com/api
Request Payload

{
"cancelshipment": {
"tracknbr": "1234567890",
"account": "ABC"
}
}

The system waits for the carrier response before updating shipment records.

  • * *
Closed Invoice Shipments ------------------------

Business Requirement

When a shipment is associated with a closed invoice, voiding the label should:
  • Submit a void request to the carrier so the carrier can process any eligible refund.
  • Update the carriervoiddt column instead of the voiddt column.
  • Retain the shipment and tracking number on the existing invoice.
  • Preserve invoice history for audit, reconciliation, and reporting purposes.
  • Record that the label was voided without removing it from the carrier invoice.

Processing Logic

If the shipment is linked to a closed invoice:
  • Submit a void request to the carrier.
  • Verify that the carrier accepts and processes the void request.
  • Update the carriervoiddt field with the current date and time.
  • Leave the shipment associated with the existing invoice.
  • Do not update the voiddt field.
  • Do not remove the shipment or tracking number from the invoice.

Example

A shipment has a tracking number that is still in Label Created status and is already included on a closed invoice. When the shipment is voided:
  • A void request is sent to the carrier.
  • The carrier processes the void and any applicable refund.
  • The carriervoiddt field is updated.
  • The shipment remains on the closed invoice.
  • The tracking number remains available for audit and reconciliation purposes.

Important Note

Updating the carriervoiddt column alone is not sufficient.
The system must successfully submit the void request to the carrier and receive a successful response so that the carrier can process the refund. The database update should only occur after a successful carrier void operation.

  • * *
Open Invoice or Uninvoiced Shipments ------------------------------------

Business Requirement

For shipments that have not yet been invoiced (i.e., the invid column in the shipment table is NULL), the existing behavior remains unchanged.

Processing Logic

If the shipment is not associated with an invoice:
  • Submit the void request to the carrier.
  • Upon successful carrier response, update the voiddt field.
  • Exclude the shipment from future invoicing.

Expected Result

  • The shipment is marked as voided.
  • The shipment will not be included on future invoices.
  • Existing invoicing behavior remains unchanged for uninvoiced shipments.
  • * *

Shipment Return Screen:

image.png

✅ CPSC Registered Goods Support


CPSC Registered Goods Support

Release Date: July 8, 2026


Objective

The ability to upload a SKU list for a customer that has registered CPSC goods.


Where to Find It

This lives under SKU Management, using the new CPSC Registered Goods Import upload type:

  • Go to SKU Management
  • Set Upload Type to CPSC Registered Goods Import
  • Select the Account
  • Choose a Processing Type (e.g. Replace)
  • Click + Add, then Choose a file and Upload
SKU Management — CPSC Registered Goods Import

File Template

The import supports a CSV file with the following columns:

ColumnDescription
SKUUnique SKU identifier
ItemNameProduct name
DescriptionProduct description
CategoryProduct category
UOMUnit of measure
UnitCostCost per unit
UnitPricePrice per unit
CurrencyCurrency code
VendorVendor name
Length / Width / Height / DimensionsProduct dimensions
WeightProduct weight
OriginCountry of origin
HS CodeHarmonized System code
CPSCDisclaimCPSC disclaim flag (Y/N)
CPSCDisclaimReasonReason code for disclaim
CPSCAgencyProcessingCodeCPSC agency processing code
CPSCProductCodeCPSC product code
CPSCIntendedUseCodeCPSC intended use code
CPSCProductIDCPSC product ID
CPSCCertifierIDCPSC certifier ID
Download a sample template here:

📎 SKU Master Sample - Registered Goods.csv


*For questions or support, contact customer services or your account manager.*


✅ CPSC Validation — Account Toggle


CPSC Validation Toggle for Account Management

Status: Completed
Release Date: 2026-07-06
Related User Story: #3246 — Account toggle for CPSC Validation


Overview

Account Management now includes a CPSC Validation checkbox toggle, following the same pattern as the existing HS Code validation toggle. This feature validates HS codes submitted on shipment requests against a restricted HS code reference list, with an additional SKU Master check before blocking a label request.


How It Works

Toggle OFF (default):
No HS code validation is performed against the restricted list. Shipment and label creation proceeds as normal, with no additional checks.

Toggle ON:
  • The system checks if any HS code(s) submitted in the shipment request match an entry in the restricted HS code list.
  • No match found → Shipment creation is accepted as-is, no further action needed.
  • Match found → The system then checks whether the requesting account has at least 1 row in the SKU Master detail table.
- Row exists → Label creation is accepted as-is. - No row exists → The label request is declined with a friendly, clear error message explaining that CPSC documentation/certification is required for the account before a label can be issued.

Restricted HS Code List

The CPSC restricted HS code reference list used for validation is available for download here:

📎 CPSC VS Restricted List.xlsx

The list contains 588 HS/HTS code entries used as the matching reference for the toggle.


Where to Find It

Navigate to Account Management for the account in question — the CPSC Validation checkbox sits alongside the existing HS Code validation toggle.

image.png

*For questions or support, contact customer services or your account manager.*


🆕 New Carrier - GoFo Express


New Carrier - GoFo Express

Release Date: June 23, 2026


What's New

GoFo Express is now available as a supported carrier on the platform. GoFo Express services US to US deliveries up to 20 lb.


Service Code

To use GoFo Express, pass the following API service code in the shipment request:

gofo_ground_us

Coverage

  • Lane: US to US
  • Max Weight: 20 lb

Sample Label — Successful Test

Below is an example of a successful label test for GoFo Express:

GoFo Express — Sample Label

Note: Carrier activation is dependent on operational workflow consideration.


*For questions or support, contact customer services or your account manager.*


Release Date: July 06, 2026

Application: Legacy

What's New
The Legacy portal generates Livingston Type 11 Intake file. New fields have been added according to the provided structure document. If the file has multiple commodities in a single parcel, each commodity needs to be declared to CBP separately. As having a unique number generated for each parcel in the column “Master Bill/AWB Number”

How It Works

Users can access it from tab “Scan Pallet To Trip” after selecting the required terminal. Please check the below screenshot.
livingstondownload.jpg

Addition of SKU Column to LIVINGSTON Export Report
==================================================

Requestor: Chris B
Release Date: June 12, 2026

Overview
--------

A new SKU column has been added to the LIVINGSTON Export Report in the legacy system to provide additional product identification details in the report output.
The impacted report is shown below:

  • * *
Database Changes ----------------

The LIVINGSTON Export Report retrieves data using the stored procedure:
wizmo_getLivingstoneCloseoutDetails

Changes Made

  • Added a new column: PartNumber
  • This column is now included in the stored procedure result set and is used as the source for the SKU value displayed in the report.
  • * *
Application Changes -------------------

The report generation code was updated to include the new SKU column and map it to the PartNumber field returned by the stored procedure.

Changes Made

  • Added a new SKU column to the export report.
  • Mapped the report's SKU field to the PartNumber value returned by wizmo_getLivingstoneCloseoutDetails.
image.png
  • * *
Impact ------
  • The LIVINGSTON Export Report now includes SKU information for each exported record.
  • Existing report functionality remains unchanged.
  • No impact to other reports or export processes.

🆕 Hot Fixes - September 23, 2026

Cerberus Collective will use 'API Label From Address' as sender for CP labels.

Requestor: Matt P.

Release Date: September 23, 2026

  • Added a condition in _canadapost.cs_ to use the 'API Label From Address' for Cerberus Collective when generating CP labels.
  • This will reduce the cost to ship returns to the client facility from our YYC warehouse.

🆕 Hot Fixes - August 19, 2026

Dbrand was unable to generate bulk labels using Labelary

Requestor: Matt A.

Release Date: August 19, 2026

  • Updated the Labelary API URL from the basic version to the stable version.
  • Added the required Labelary API key to ensure the correct service is being used.
  • Resolved the label generation limit caused by the free Labelary API.
  • Successfully tested bulk generation of 100 labels.

🆕 Hot Fixes - August 5, 2026

BEIS CA and BEIS OH Accounts (Legacy) - Use Fedex Smartpost service for Military/P.O Box

Requestor: Matt A.

Release Date: August 5, 2026

  • Switched from USPS Ground Advantage to FedEx Smartpost as the service for Military and P.O Box destinations

🆕 Hot Fixes - July 24, 2026

UniUni Us credentials for Uni Uni West/East accounts

Requestor: Rozano C.

Release Date: July 24, 2026

  • Added new records in the webcredential table that will be used for creating and voiding shipments using uniuni_ground_us service under the Uni Uni West and East accounts.

🆕 Hot Fixes - July 15, 2026

CP Zone Skip Rate (Legacy) - fixed issue that returned all service rates as the lowest amount.

Requestor: Rozano C.

Release Date: July 15, 2026

  • Added a Boolean bExplicitUniUniRequested to track scenario where Uni Uni services in CP Zone Skip are called directly.
  • Returned carrier and service for NLS accounts
  • Each Uni Uni service will now return correct rates when called directly.

🆕 Hot Fixes - June 25, 2026

White label Fix (Legacy) - retry returning final mile incorrectly

Requestor: Rozano C.

Release Date: June 25, 2026

  • Updated the reprint function in common.cs to include the missing allowwhitelabel condition.
  • White label values now return correctly on retry for enabled accounts.

Rate request to v2 missing account details

Release Date: June 25, 2026

  • Updated the rateShipmentV2 function in apiservices.cs to include the missing account attribute.

🆕 Hot Fixes - June 12, 2026


Metro Beis California Shipper Address Update

Requestor: Matt A

Release Date: June 12, 2026

Revert customer shipper address to api driven address.


247 Fulfilment - Canada Post Label Update

Requestor: Mark N

Release Date: June 12, 2026

  • Push customer shipper address for all label types including zoneskip labels
  • Remove 19+ Adult signature requirement

🆕 USPS Adjustment Billing


USPS Adjustment Billing

Release Date: June 10, 2026


What's New

Added support to import Bukuship’s USPS invoice breakdown and create billing adjustments.

Why?

All Underpaid items are converted into adjustments so customers can be billed correctly.


How It Works

CSV file are uploaded here: Portal: Invoice Upload

usps_csv_upload_20260611.png
  • UspsBukushipDetailFileImport creates a record in invoice.import and inserts the CSV rows into invoice.usps_bukuship_detail.
  • sp_ProcessUspsBukushipDetails creates the related charges in dbo.charge.

🆕 CUSMA White label workflow


CUSMA White label workflow

Release Date: June 10, 2026


What's New

Added Non-CUSMA white label support in the legacy portal. Admins can enable the functionality on the accounts page.

image.png


Why?

This feature determines whether a white label or final mile label should be created for US and international shipments based on item origin.
  • A white label is created when the shipment contains any item with an origin outside of CA, US, or MX.
  • A final mile label is created when all items have a CUSMA origin: CA, US, or MX.

How It Works

When enabled, this setting overrides all existing white label generation rules.

For white labels generated under these rules:
  • Canadian terminal scan: Allows the scan, records the scan date, and creates milestones. The label is not printed.
  • US terminal scan: Allows the scan, records the scan date, creates milestones, and prints the label.

🆕 CPSC eFiling and Compliance Support for SKU Management

Release Date: June 5, 2026


What's New

The Legacy SKU Management portal now supports a scalable CPSC (Consumer Product Safety Commission) compliance and certificate tracking architecture. By linking CPSC certificates and citations directly to SKU product entities, the platform is prepared to automatically generate PGA (Partner Government Agency) message set data elements for T01/T11 consumption entry clearances.


Why?

CPSC eFiling becomes mandatory July 8, 2026 for all CPSC-regulated imports on consumption entries. Custom brokers filing T01/T11 clearances via ACE will require PGA Message Set elements at the time of entry.

By shifting compliance data to the SKU and Certificate layer, the data is reusable across all shipments using the same SKU. The PGA payload can be assembled entirely from the SKU layer without modifying transactional shipment data.


How It Works

All CPSC compliance data lives at the SKU and Certificate level. As long as a shipment line item links to a SKU, and that SKU links to a valid certificate, the full CPSC PGA payload is successfully assembled.

The backend database models this using three core entities:
  • SKUProduct — Holds basic item identifiers (unchanged).
  • SKUProductCertificate — Stores GCC (General Conformity Certificate) or CPC (Children's Product Certificate) fields.
  • SKUProductCertificateCitation — Stores regulatory citations (e.g. 16 CFR 1303) per certificate.
During bulk CSV imports, C#-side generated GUID values for certificate primary keys are preserved using SQL Server's KeepIdentity configuration. This resolves relational mismatches between parent certificates and child citations.

In-App Compliance Management

Compliance details can be managed directly on the SKU Management page. Clicking the edit button on any SKU opens the Change Sku dialog.

1. SKU Info Tab

Displays vendor references, cost, currency, and origin attributes. media__1780637382018.png

2. Certificate Info Tab

Stores certificate registration identifiers, processing codes, certifier details, and production dates. media__1780637365266.png

3. CPSC & Citations Tab

Manages inspection details, disclaimers, and associated compliance checklist rows. media__1780637371923.png4225-b1b4-23f4f54d4afc/media__1780637371923.png)
[!TIP]
Active Citation Radio Selection: The Citations Checklist contains a single-select radio button column. Selecting a radio button activates that compliance citation and automatically deactivates all other citation records in the database.

Ingesting Data via CSV Imports

To support batch updates, the upload panel offers options to import compliance details.

media__1780637393930.png
  • Selecting SKU Certificate Import locks the Processing Type dropdown to Replace and disables it, enforcing the strict 1-to-1 SKU-to-Certificate mapping on the backend.

What the Compliance Schema Contains

FieldTableValidations & Requirements
SKUSKUProductRequired. Parent SKU code
AgencyProcessingCodeSKUProductCertificateRequired (e.g. REF, FGC, FCP). Max length 3
CertificateTypeSKUProductCertificateRequired (GCC or CPC). Max length 10
ProductIdSKUProductCertificateRequired. Product ID or Globally Unique ID. Max length 100
CertifierIdSKUProductCertificateRequired if AgencyProcessingCode is REF. Max length 100
CPSCDisclaimSKUProductCertificateOptional (Y or blank). Max length 1
CPSCDisclaimReasonSKUProductCertificateConditional (required if Disclaim is Y). Max length 1
CitationCodeSKUProductCertificateCitationRequired (e.g. 16 CFR 1303). Max length 100
ActiveSKUProductCertificateCitationRequired (bit flag). Indicates primary citation

CSV File Import Schemas

1. SKU CPSC Fields (sku-cpsc.csv)

Upserts CPSC compliance fields based on SKU:
SKU,CPSCDisclaim,CPSCDisclaimReason,CPSCIntendedUseCode,CPSCIntendedUseDescription,CPSCCommercialDescription,CPSCCommodityCharacteristicQualifier,CPSCCommodityCharacteristicDescription

2. SKU Certificate Import (sku-certificates.csv)

Links certificates, entities, and citations to SKUs:
SKU,AgencyProcessingCode,CertificateName,CertificateType,ProductIdQualifier,ProductId,CertifierId,BrandName,Model,ManufactureMonth,ManufactureYear,IdNumberType,IdNumber,DeclarationCode,ProductionStartDate,ProductionEndDate,LotNumberQualifier,InspectionStatus,InspectionDate,EffectiveDate,ExpiryDate,CitationCodes,CitationDescriptions,ManufacturerVendor,ManufacturerIdTypeCode,ManufacturerIdNumber,TestingLabVendor,TestingLabIdTypeCode,TestingLabIdNumber,CertifierVendor,CertifierIdTypeCode,CertifierIdNumber,Active,Notes

Supported Clearance Types

  • T01 Entry (Consumption Entry)
  • T11 Entry (Consumption Entry / Informal Entry)

Mandatory Deadline

  • Compliance is mandatory beginning July 8, 2026 for all CPSC-regulated import entries.

*For technical questions or integration support, contact the Platform Engineering team.*

What’s New

  • Implementation for a new Client facility in Montreal, CA.
  • Address is “2555 Dollard Ave, LaSalle, QC, H8N 3A9, CA”.
  • Services using this facility include: Canada Post and UniUni.

How it works

- Accounts can use the Montreal facility if they have the Montreal terminal assigned which can be done through the account maintenance screen in the legacy portal as shown below:

acc_terminal.jpg

- Users can have a "create shipment" request using service code “CPYUL” for Canada post service and then a label with the Montreal client facility address as shipper will be created like this label:

cplabel.jpg

- Users can have a "create shipment" request using service code “uniuniyul” for UniUni service and then a label with the Montreal client facility address as shipper will be created like this label:

uniunilabel.jpg
  • Both service codes "CPYUL" and "uniuniyul" can be used in a "rateshipment" request.

🆕 Release Notes — June 2026


CN22 Customs Declaration Form Support for Military Shipments

Release Date: May 25, 2026


What's New

The Legacy shipping API now supports automatic CN22 Customs Declaration Form generation for military shipments routed through supported carriers (FedEx, UPS). The CN22 form is required for shipments destined to APO/FPO/DPO military addresses and is now generated and returned alongside the shipping label in a single API response — no secondary request needed.


Why?

We've seen customer shipping rejects when a CN22 is not provided with the shipping label. USPS services automatically return a CN22 formatted label, whereas Fedex and UPS do not.


How It Works

The CN22 form format automatically matches the label format requested by the client. If a PDF shipping label was requested, the CN22 is returned as a PDF. If a ZPL label was requested, the CN22 is returned in ZPL format. No additional configuration is required.

The form is returned as a new field cn22_form in the existing shipment response:

<shipmentresponse tracknbr="61290397795820250031"
                  labelformat="ZPL"
                  label="..."
                  cn22_form="..."
                  carrier="FEDEX"
                  service="wizmofedexsmartpost"
                  url="https://www.fedex.com/fedextrack/?trknbr=61290397795820250031"/>

Clients who do not require CN22 forms will see no change to their existing API response.


Downloading the Form

The CN22 form is available directly from the shipment tracking page via the "Download CN22 Form" button, alongside the existing Get Label, Get Return Label, and Void Shipment actions.

Tracking Page — Download CN22 Form

CN22 Form — Sample Output

The generated form includes all mandatory customs declaration fields: shipper and recipient details, itemised contents with quantity, weight, declared value, HS code and country of origin per line item, package totals, the bilingual certification declaration, shipment date, and a barcode tied to the tracking number.

CN22 Form — Sample

What the CN22 Form Contains

FieldDetails
Shipper detailsName, address, country
Recipient detailsName, address, country
Contents descriptionPer line item
QuantityPer line item
Weight (kg)Per line item + total
Declared value (USD)Per line item + total
HS CodePer line item
Country of originPer line item
Certification declarationEnglish and French
Shipment dateAuto-populated
BarcodeTied to tracking number

Supported Carriers

  • FedEx
  • UPS

Applicable Shipment Types

  • Military addresses (APO / FPO / DPO)

*For questions or support, contact customer services or your account manager.*


CPSC eFiling and Compliance Support for SKU Management

Release Date: June 5, 2026


What's New

The Legacy SKU Management portal now supports a scalable CPSC (Consumer Product Safety Commission) compliance and certificate tracking architecture. By linking CPSC certificates and citations directly to SKU product entities, the platform is prepared to automatically generate PGA (Partner Government Agency) message set data elements for T01/T11 consumption entry clearances.


Why?

CPSC eFiling becomes mandatory July 8, 2026 for all CPSC-regulated imports on consumption entries. Custom brokers filing T01/T11 clearances via ACE will require PGA Message Set elements at the time of entry.

By shifting compliance data to the SKU and Certificate layer, the data is reusable across all shipments using the same SKU. The PGA payload can be assembled entirely from the SKU layer without modifying transactional shipment data.


How It Works

All CPSC compliance data lives at the SKU and Certificate level. As long as a shipment line item links to a SKU, and that SKU links to a valid certificate, the full CPSC PGA payload is successfully assembled.

The backend database models this using three core entities:
  • SKUProduct — Holds basic item identifiers (unchanged).
  • SKUProductCertificate — Stores GCC (General Conformity Certificate) or CPC (Children's Product Certificate) fields.
  • SKUProductCertificateCitation — Stores regulatory citations (e.g. 16 CFR 1303) per certificate.
During bulk CSV imports, C#-side generated GUID values for certificate primary keys are preserved using SQL Server's KeepIdentity configuration. This resolves relational mismatches between parent certificates and child citations.

In-App Compliance Management

Compliance details can be managed directly on the SKU Management page. Clicking the edit button on any SKU opens the Change Sku dialog.

1. SKU Info Tab

Displays vendor references, cost, currency, and origin attributes. media__1780637382018.png

2. Certificate Info Tab

Stores certificate registration identifiers, processing codes, certifier details, and production dates. media__1780637365266.png

3. CPSC & Citations Tab

Manages inspection details, disclaimers, and associated compliance checklist rows. media__1780637371923.png4225-b1b4-23f4f54d4afc/media__1780637371923.png)
[!TIP]
Active Citation Radio Selection: The Citations Checklist contains a single-select radio button column. Selecting a radio button activates that compliance citation and automatically deactivates all other citation records in the database.

Ingesting Data via CSV Imports

To support batch updates, the upload panel offers options to import compliance details.

media__1780637393930.png
  • Selecting SKU Certificate Import locks the Processing Type dropdown to Replace and disables it, enforcing the strict 1-to-1 SKU-to-Certificate mapping on the backend.

What the Compliance Schema Contains

FieldTableValidations & Requirements
SKUSKUProductRequired. Parent SKU code
AgencyProcessingCodeSKUProductCertificateRequired (e.g. REF, FGC, FCP). Max length 3
CertificateTypeSKUProductCertificateRequired (GCC or CPC). Max length 10
ProductIdSKUProductCertificateRequired. Product ID or Globally Unique ID. Max length 100
CertifierIdSKUProductCertificateRequired if AgencyProcessingCode is REF. Max length 100
CPSCDisclaimSKUProductCertificateOptional (Y or blank). Max length 1
CPSCDisclaimReasonSKUProductCertificateConditional (required if Disclaim is Y). Max length 1
CitationCodeSKUProductCertificateCitationRequired (e.g. 16 CFR 1303). Max length 100
ActiveSKUProductCertificateCitationRequired (bit flag). Indicates primary citation

CSV File Import Schemas

1. SKU CPSC Fields (sku-cpsc.csv)

Upserts CPSC compliance fields based on SKU:
SKU,CPSCDisclaim,CPSCDisclaimReason,CPSCIntendedUseCode,CPSCIntendedUseDescription,CPSCCommercialDescription,CPSCCommodityCharacteristicQualifier,CPSCCommodityCharacteristicDescription

2. SKU Certificate Import (sku-certificates.csv)

Links certificates, entities, and citations to SKUs:
SKU,AgencyProcessingCode,CertificateName,CertificateType,ProductIdQualifier,ProductId,CertifierId,BrandName,Model,ManufactureMonth,ManufactureYear,IdNumberType,IdNumber,DeclarationCode,ProductionStartDate,ProductionEndDate,LotNumberQualifier,InspectionStatus,InspectionDate,EffectiveDate,ExpiryDate,CitationCodes,CitationDescriptions,ManufacturerVendor,ManufacturerIdTypeCode,ManufacturerIdNumber,TestingLabVendor,TestingLabIdTypeCode,TestingLabIdNumber,CertifierVendor,CertifierIdTypeCode,CertifierIdNumber,Active,Notes

Supported Clearance Types

  • T01 Entry (Consumption Entry)
  • T11 Entry (Consumption Entry / Informal Entry)

Mandatory Deadline

  • Compliance is mandatory beginning July 8, 2026 for all CPSC-regulated import entries.

*For technical questions or integration support, contact the Platform Engineering team.*