Skip to main content
Table of Contents

Version 2025.5

Global API. The long-awaited Global API v1 release is finally here! The Global API provides REST API access to your ShipStream WMS at the "global" (all merchants) level and over time will be brought…

Colin
Updated by Colin

Global API

The long-awaited Global API v1 release is finally here! The Global API provides REST API access to your ShipStream WMS at the "global" (all merchants) level and over time will be brought to feature parity with the Admin UI and Scanner UI. Our promise is to tear down barriers to accessing and manipulating your data, and the Global API is central to this promise.

We chose a REST API design so that it would be simple to use and highly performant, but this isn't the REST API of the 2000s; it has many advanced features:

  • Conforms to the OpenAPI 3.0 specification for compatibility with a broad selection of high quality API tools
  • Fine control over which fields are returned in the response, with sane defaults for ease of use
  • Advanced filtering capabilities including AND and OR logic, regular expressions and a total of 17 condition types
  • Sorting by multiple fields in either direction
  • Simple but consistent paging using has_more and next to avoid skipping or double-reading rows
  • Count the total result set without reading it
  • Metadata including processing time
  • Minor version pinning to allow easy upgrade paths for minor changes

Along with this new API comes the concept of adding Custom Global Integrations, to which actions taken by the API can be attributed as the requester. Acess Tokens can be issued with automatic expirations and revoked via the Admin UI.

Lastly, we didn't skimp on the documentation! We've launched a new and improved ShipStream Developer Center to replace the old Merchant API Docs site which combines the Global API and Merchant API docs into one site that is easier to navigate, is nicer on the eyes, and has a snazzy search feature.

Update Impact: The beta version of the Global API required incompatible changes to the core code which would have been very difficult to maintain so is no longer supported. If you are actively using this API (/api/global/beta/*) you will need to migrate to the v1 endpoints. Please get in touch with us so we can coordinate the update.

Merchant Status Lifecycle

Sometimes your business is not just on or off. There is onboarding, offboarding, delinquent accounts, slow periods, etc. We've updated the Status field in ShipStream to support a much more robust management of your clients.

🟢 Active Status Your merchants operate at full capacity with complete access to all ShipStream features.

🟡 Suspended Status - The Gentle Pause Perfect for temporary situations like payment issues or seasonal breaks.

🟠 Inactive Status - Professional Offboarding Designed for merchants who are no longer active but may return in the future.

🔴 Archived Status - Complete Closure The most comprehensive closure option, requiring special permissions and removing them entirely from operational views while maintaining historical data.

Update Impact: All existing Merchants will remain either Active or Inactive for minimal update impact, but you should audit your merchants after the update and possibly transition some of the Inactive ones to either Suspended or Archived.

Fix Scanner Navigation Bugs

There is a category of bugs with navigation in the Scanner UI that are related to corrupted state from various race conditions combining network request timing, page transition timing and using the browser back button instead of the Back button in the UI header. These have all been addressed and should result in far fewer unrepeatable "quirks".

One major component of this solution was to disable the browser's back button (including "back" gestures on touch screens and buttons on mice with "back" thumb buttons). As it turns out, making the two behave identically is not so trivial as it would seem. If your users really miss this functionality, let us know; but in the meantime you should at least no longer be experiencing odd UI bugs related to using it. 😎

Additionally, we fixed the following unrelated bugs in the Scanner UI:

  • Added support for choosing an existing lot when counting items during delivery processing and changed rendering of the available lots to prevent displaying duplicates.
  • Fixed race condition for relocations causing incorrect status when updated by multiple users simultaneously.
  • Fixed an issue where a stale error message is sometimes displayed when loading certain areas.
Update Impact: None. However, users accustomed to using the browser's back button instead of the UI's back button will notice that the browser back button no longer has any effect and should instead use the UI's back button. This update has no effect on the Admin UI and Client UI.

Sort Shipments by Picking Order

We've added a new option for batch generation to optimistically choose locations "closer" to the other picks on the route by using the picking order as a proxy for distance. This should theoretically give you improved pick routes by letting your pickers pick more in a smaller area and shortcut to the end of the route sooner. Try it and let us know how it works for your warehouse!

Update Impact: None. This feature is disabled by default, but can be enabled at System → Configuration → Warehouse → Operations → Batching → Sort Shipments by Picking Order.

Receive By Deadline updates

By default, we assume that when a new container is accepted for an ASN or RMA that the Receive By Deadline should be updated as a result. If this isn't a correct assumption for your company, you can now easily disable this feature for Receive By Deadlines that remain the same upon the first containers being accepted.

Update Impact: None. The new option is enabled by default which mirrors the current behavior, which can be disabled at System → Configuration → Receiving → ASNs/RMAs/Other Deliveries → Receive By Deadline → Update When Container Added

Closing deliveries with missing items

When a delivery which has all containers already processed is closed by a user, ShipStream would create shortage exceptions for all of the remaining items automatically. It would create these shortage exceptions directly into a "Closed" status as there are no remaining containers to associate them to, and by virtue of the user clicking Close, the user is saying there will be no new containers. However, this may still occur unintentionally at times (e.g. a miscount or overlooked pallet), thereby creating incorrect shortages that the team does not have a chance to approve or reject. Further, these Closed exceptions could be created by a user that lacks permission to approved exceptions.

This issue has been solved by adding an intermediate page upon the user clicking Close, so that if they have the Approve Exceptions permission, they will be directed to a page listing all Unreceived Items so they can choose to approve them or go back. Users lacking this permission will not be able to close deliveries with unreceived items.

Update Impact: Users lacking the Approve Exceptions permission will no longer be able to close deliveries with unreceived items so you may need to adjust your user roles accordingly.

Other Improvements

  • Added a tracking_added_at timestamp to the package table and back-populated it with the value of created_at (using a background task - limited to 90 days). It is populated going forward when the primary tracking number is set.
  • Added Created At and Updated At fields to the Picking Classes grid.
  • Added Item Ref display to the order items grid in the Admin UI and Client UI when the field is not empty.
  • Added Order Ack Transform Script to SPS Commerce plugin.
  • Completed migration of Shopify plugin from REST API to GraphQL with full backwards compatibility (no action needed).
  • Fixed a regression when importing Excel files containing dates.
  • Fixed a bug where viewing a subscription while creating another would wipe the session data of the the create request, causing the save action to fail.
  • Fixed an unexpected error which may occur during putaway with a mixture of items with and without lots.
  • Fixed not all packages are saved after updating tracking info.
  • Fixed double-escaped global search result in Client UI.
  • Improved handling of non-numeric delivery item quantities in the Admin UI and Client UI create/edit delivery forms.
  • Improved script syntax checking, adding support for ECMAScript 2020.
  • Updated dimension rounding algorithm for UPS and FedEx (both effective August 18) according to published changes announcements (any fraction is now rounded up instead of any fraction greater than 0.5).
  • Updated the order History tab so that the "Tracking Number ... assigned" record uses the new tracking_added_at timestamp and is sorted within the results accordingly.

Merchant API Changes

  • Added created_at field to webhook payloads for tracker:updated and tracker:delivered topics.
  • Added created_at and tracking_added_at timestamps to the packages property of the shipment.info and shipment.search Merchant API responses.
    • The timestamp field is now deprecated (but was not removed) because it is redundant to created_at .
  • Added created_at , tracking_added_at , shipped_at and delivered_at to the packages objects of the webhook payloads which contain a packages property.

How did we do?

ShipStream Releases

Version 2025.4

Contact