Release 2026.10-R11

Updated October 28, 20265 min read

Released October 29, 2026.

Parcel Pro carrier

Carriyo now ships with UPS through Parcel Pro, the insured shipping service for jewelry, watches and other high-value goods. Add a Parcel Pro account in Settings > Carriers with the username and password of your Parcel Pro API user. Pick the UPS service and package type, and shipments book with a UPS tracking number and a PDF label. The Thermal Label setting prints the label at 4 x 6 instead of letter size.

What the connector supports:

  • Insurance: the shipment's insured value is sent to Parcel Pro, which insures the parcel. A Default Insured Value on the account covers shipments that carry no insured value of their own. Parcel Pro reads these values in the currency of your Parcel Pro account, and takes whole units only, so values and dimensions are rounded.
  • Pickups: choose a Pickup Type on the account. With a scheduled pickup, the shipment's collection window is sent as the pickup date and hours, and canceling the shipment also cancels its pickup.
  • Returns: return shipments book with the account's service and a Return Service Code, which selects the UPS return label type.
  • One parcel per shipment: Parcel Pro books one parcel per shipment. A multi-parcel shipment is refused with a message asking for one shipment per parcel.
  • Cross-border: cross-border shipments, except those between two EU countries, carry a customs declaration built from the shipment's items, so every item needs a description, origin country and price. The Commercial Invoice Type setting controls the invoice: Parcel Pro prints it with the label, files it electronically, or files the invoice you upload on the shipment. Duties can be billed to a third party, and a customs broker can be named on the account.
  • Tracking: Parcel Pro's tracking results feed the shipment's tracking history, mapped to Carriyo statuses.
  • Rates: carrier cost estimates return Parcel Pro's price for the account's service, with the shipping and insurance parts broken out.

Parcel Pro has one carrier code, PARCEL_PRO, and appears in the carrier list of the API and the MCP server like every other carrier.

Inventory in the navigation menu

In the Dashboard: Inventory is now a top-level entry in the navigation menu, instead of a card in the Settings popup. It sits between Orders and Ship. The Settings popup now lists its groups, and the entries within each group, in alphabetical order.

The inventory pages moved from /settings/inventory-positions to /inventory-positions, and the import page from /settings/inventory-positions/import to /inventory-positions/import. Bookmarks and links in older inventory import and export emails redirect to the new pages, including the link to a specific import. New emails link to the new pages directly.

Parcel branch mapping

In the Dashboard: a Parcel account in Settings > Carriers has a new Branch Mapping section. Map each Carriyo pickup location to its Parcel branch ID, and shipments from that location book under that branch. Locations without a mapping book under the branch Parcel assigns to the account on its side. Before, one Parcel account served one branch, so a merchant with several branches needed one carrier account per branch.

AxiomX package descriptions list the SKUs

Shipments booked with AxiomX now send the SKUs packed in each parcel, joined with -, as the package description. AxiomX prints it on the waybill. A parcel with no known SKUs sends its own description, as before.

Carrier cost estimates carry the shipment's insurance

A cost estimate now passes the shipment's insurance to the carrier connector. Parcel Pro uses it to include the insurance premium in the estimate. Other carriers are not affected.

Grouping parameters validated

MCP: the report tools (report_transit_time_analysis, report_failed_delivery_analysis, report_notification_summary, report_shipment_status_summary, report_shipment_volume_trend, report_shipment_ageing, report_exception_history, report_return_analytics) and the list tools (get_shipment_list, list_orders, get_carrier_accounts) now describe the values their group_by, agg_by and sub_agg_by parameters accept, with what each one means. They refuse a value outside that list with a message naming the allowed values. Before, an unsupported value failed the call with a server error, or returned empty groups. To group by a custom attribute, pass the attribute name with a leading underscore, for example _region.

Transit-time analysis grouped by country now works. The second-level breakdown (sub_agg_by) of shipment and order lists returns its groups under subAggBy as documented.

Empost cross-border lifecycle codes

Three Empost lifecycle codes for cross-border shipments are now mapped. CLC4 International Dispatch becomes in_transit with the reason departed_origin_country. CLC102 Item Held By Customs becomes delayed with customs_clearance_issue. CLC103 Item Release By Customs becomes in_transit with customs_cleared. Before, these updates were dropped and did not appear in the tracking history. This reached production on October 28, ahead of the release.

Fixes

  • Ready to ship webhook sent once: when a shipment reached Ready to ship and its update had to be retried after a concurrent write, the ready_to_ship webhook was sent twice. It is now sent once.
  • Webhook retries record their activity: a webhook call that you retry or trigger on demand now records its request and response in the System Log. Before, the call ran but left no log entry.
  • Shopify orders over the order quota: a Shopify order that Carriyo rejects because the account's order quota for the current cycle is used up is no longer retried. Before, the connector retried it until the retries ran out, which delayed every other order from that store. The rejection is logged, and the order is not created in Carriyo.
  • Fulfillment App access grants: in the Dashboard's user settings, ticking a Fulfillment App module no longer runs the seat check on every click. Carriyo checks the seats when you save. In the Fulfillment App's user settings, a checkbox is disabled while its change saves instead of showing a spinner.