Summary:
New Feature: User unit preferences across authentication, user, driver, and company endpoints (206 changes)
New Feature: Product category rates in contract rate bands (12 changes)
New Feature: Carrier assignment self-removal endpoint
Improvement: Enhanced stop consolidation plan with flexible address handling and geographic coordinates
New Features
User Unit Preferences
Added support for user unit preferences (metric vs. imperial) across authentication, user management, driver, company, and shipment-related endpoints. This enables personalized unit display preferences for individual users throughout the system.
What's New:
units- User preference for measurement units (e.g., metric vs. imperial)Available on user profiles, driver profiles, company preferences, and throughout shipment workflows
Enhanced Endpoints (206 changes):
Authentication:
GET /auth/me/(response)POST /auth/token/(response)
Users:
GET /companies/{companyId}/users/(response)POST /companies/{companyId}/users/(response)GET /companies/{companyId}/users/{userId}/(response)PUT /companies/{companyId}/users/{userId}/(response)
Drivers:
GET /companies/{companyId}/drivers/(response)POST /companies/{companyId}/drivers/(request & response)GET /companies/{companyId}/drivers/{driverId}/(response)PUT /companies/{companyId}/drivers/{driverId}/(request & response)
Company Preferences:
GET /companies/{companyId}/preferences/(response)PUT /companies/{companyId}/preferences/(request & response)
Carrier Relationships:
GET /carrier-relationships/(response)POST /carrier-relationships/(request & response)GET /carrier-relationships/{carrierRelationshipId}/(response)PUT /carrier-relationships/{carrierRelationshipId}/(request & response)
Shipper Relationships:
GET /brokerages/{brokerageId}/shipper-relationships/(response)POST /brokerages/{brokerageId}/shipper-relationships/(request & response)GET /brokerages/{brokerageId}/shipper-relationships/{shipperRelationshipId}/(response)PUT /brokerages/{brokerageId}/shipper-relationships/{shipperRelationshipId}/(request & response)
Shipments (throughout reps, RFQs, timeline events, equipment config):
All shipment GET/POST/PUT endpoints now include
unitsin user-related nested objectsShipment pickups
External shipments
Automation events
Equipment configuration
Quoting (RFQs and Spot Negotiations):
All RFQ and spot negotiation endpoints now include
unitsfor:RFQ creators
Involved customer users
Involved vendor users
Message senders
Quote document users
Benefits:
Personalized measurement unit display per user
Consistent unit preferences across the entire system
Better user experience for international teams
Flexible support for metric and imperial measurements
Reduced conversion errors and confusion
Product Category Rates in Contracts
Added support for product category-specific rates within contract rate bands, enabling more granular pricing based on product categories.
What's New:
product_category_rates- Rate structure specific to product categories within rate bandsAvailable in contract rate tables and contract lane rate information
Enhanced Endpoints (12 changes):
Contracts:
GET /contracts/(response)GET /contracts/{contractId}/(response)POST /contracts/applicable-contracts/(response)
Contract Lanes:
GET /contracts/{contractId}/contract-lanes/(response)GET /contracts/{contractId}/contract-lanes/{contractLaneId}/(response)
Carrier Relationship Contracts:
GET /carrier-relationships/{carrierRelationshipId}/contracts/(response)POST /carrier-relationships/{carrierRelationshipId}/contracts/(request & response)GET /carrier-relationships/{carrierRelationshipId}/contracts/{contractId}/(response)PUT /carrier-relationships/{carrierRelationshipId}/contracts/{contractId}/(request & response)
Benefits:
Category-specific pricing for different product types
More accurate rate calculations based on product characteristics
Flexible contract structures for diverse product catalogs
Better support for specialized freight pricing
Carrier Assignment Self-Removal
Added a new endpoint allowing carriers to remove themselves from shipment assignments, enabling better carrier autonomy and workflow management.
What's New:
POST /shipments/{shipmentId}/carrier-assignments/self-remove/- New endpoint for carriers to self-remove from assignments
Benefits:
Carrier autonomy in managing their commitments
Streamlined workflow for carriers declining assignments
Reduced manual intervention required
Better real-time carrier capacity management
Improvements
Enhanced Stop Consolidation Planning
Enhanced the stop consolidation plan endpoint with flexible address handling and geographic coordinates, providing better support for location data with varying levels of detail.
What's Enhanced:
Flexible address properties: Address components (address_1, city, postal_code, state_province) now support null values for incomplete addresses
Geographic coordinates: Added latitude and longitude properties for precise location data
Timezone information: Added timezone property for location-aware scheduling
Enhanced Endpoint:
POST /shipments/stop-consolidation-plan/(response)
New Optional Properties:
stop_data/location/address/latitudestop_data/location/address/longitudestop_data/location/address/timezone
Benefits:
Handle incomplete address information gracefully
Support locations with coordinates but limited address details
Better timezone-aware planning and scheduling
More flexible data handling for diverse location scenarios
Migration Guide
All changes in this release are backward compatible and optional to adopt.
Optional Enhancements
Adopt Product Weight Unit Standards (Optional)
Use standard weight unit enum values (KG, LB, TON) when creating or updating products
Update product data to use standardized units
Benefit from improved validation and consistency
Enhance Stop Consolidation Plan Handling (Optional)
Update response parsing to gracefully handle null address values
Use new latitude, longitude, and timezone properties for enhanced location data
Implement more flexible address handling for incomplete location information
Adopt User Unit Preferences (Optional)
Set
unitspreference when creating or updating users and driversInclude
unitsin company preferences for organization-wide defaultsRead
unitsfrom user profiles to display measurements in preferred formatIntegrate unit preferences into your UI for personalized displays
Use Product Category Rates in Contracts (Optional)
Define product category-specific rates within rate bands
Leverage category rates for more accurate pricing
Create contracts with granular pricing by product type
Update rate calculation logic to use category-specific rates
Use Carrier Assignment Self-Removal (Optional)
Enable carriers to self-remove from assignments using the new endpoint
Update carrier workflows to support self-removal actions
Implement UI for carriers to decline assignments
Track self-removal reasons for capacity planning
Backward Compatibility
β Fully Backward Compatible: This release contains no breaking changes. All existing integrations will continue to work without modification.
New Optional Features:
New
unitsproperty for user preferences is optional (206 changes)New
product_category_ratesin contract rate bands is optional (12 changes)New carrier assignment self-removal endpoint is additive
Stop consolidation plan address properties now support null values for flexibility
New geographic coordinates (latitude, longitude, timezone) in stop consolidation plan are optional
Potential Client Impact:
Stop consolidation plan: Clients should handle nullable address properties for better flexibility
Testing Recommendations:
Test product creation with standard weight unit enum values (KG, LB, TON)
Test stop consolidation plan response parsing with nullable address properties
Test user unit preferences if you plan to adopt them
Test product category rates in contracts if applicable
Test carrier assignment self-removal if enabling this workflow
Consider adopting optional enhancements based on your business needs
Analytics Model Updates
Data Share:
dim_order_lineitems
Now also includes orders that are not assigned to shipments. This table previously only included orders assigned to shipments.
New fields added for easier order-based cost allocation using order to shipment weight ratio to calculate
order_total_weight - Total weight of the order calculated from order line items (gross_weight_value * quantity).
shipment_weight - Total weight of the shipment calculated from shipment line items (package_weight * quantity).
shipment_cost - Total cost of the shipment from charge line items assessed by customer on vendor assignment.
order_allocated_cost - Allocated cost for this order based on weight proportion. Calculated as (order_total_weight / shipment_weight) * shipment_cost.
allocated_cost_per_weight - Cost per unit of weight for this order. Calculated as order_allocated_cost / order_total_weight.
is_weight_reconciled - Boolean flag indicating whether the sum of all order weights on the shipment matches the shipment weight within 2% tolerance.
Other Minor Enhancements and Bug Fixes
Description |
LTL loads marked as Delivered when still in transit |
Carrier Interface issue - Kirsch - Automatic Tender Accaptance? |
Carrier exclusion rule flips from Canada to US |
Dexter- Southeastern Rates Not Listed in UI |
XPO Direct Integration not updating shipment status |
R+L returned Pickup numbers do not match shipment locations |
R+L Need to ignore DEFICIT charge code and not assign to shipment financials |
Primo - Capacity Accounts - Not functioning for production account |
Add 10 Specialized Equipment Types |
Add Volume (GAL), Volume (L), and Barrel as Selectable Packaging and Piece Type Options |
Consolidation Cost Defaulting to $0 |
WFM- Zone Origin Update |
Dat Posting Error in Shipwell Production |
Consolidation Cost Not Populating |
Shipment is showing all phone #'s on each stop |