Skip to main content

API Release Notes 02-23-2026 - 26.02

This release introduces enhancements to user unit preferences, contract rate structures, carrier assignment management, stop consolidation planning, and custom field capabilities. The update is fully backward compatible.

S
Written by Shipwell TMS Support
Updated over a week ago

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 units in user-related nested objects

  • Shipment pickups

  • External shipments

  • Automation events

  • Equipment configuration

Quoting (RFQs and Spot Negotiations):

  • All RFQ and spot negotiation endpoints now include units for:

    • 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 bands

  • Available 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/latitude

  • stop_data/location/address/longitude

  • stop_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

  1. 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

  1. 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

  1. Adopt User Unit Preferences (Optional)

  • Set units preference when creating or updating users and drivers

  • Include units in company preferences for organization-wide defaults

  • Read units from user profiles to display measurements in preferred format

  • Integrate unit preferences into your UI for personalized displays

  1. 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

  1. 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 units property for user preferences is optional (206 changes)

  • New product_category_rates in 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:

  1. Test product creation with standard weight unit enum values (KG, LB, TON)

  2. Test stop consolidation plan response parsing with nullable address properties

  3. Test user unit preferences if you plan to adopt them

  4. Test product category rates in contracts if applicable

  5. Test carrier assignment self-removal if enabling this workflow

  6. 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

Did this answer your question?