Release 2026.06-R1
Released June 11, 2026.
Carrier account choice when booking
The Book & Track, Retry Booking and Reassign Carrier dialogs now show a Current Carrier column and a Proposed Carrier column for each shipment. In Proposed Carrier, pick a carrier account or choose Auto. Auto runs your shipping rules for that shipment and shows the result, such as Auto - <account name>.
- If the rules find no carrier, the row shows
Auto - No Carrierand you must pick an account before you confirm. - When you select more than one shipment, Quick Select Carrier Account sets the same choice on every row.
- Book & Track now covers shipments in
erroras well asdraft. Reprocess no longer applies toerrorshipments, and neither does Reassign Carrier. - Retry Booking books with the carrier account you choose.
On the create and edit shipment form, the Auto Select switch is replaced by an Auto option in the Assigned Carrier Account picker. It shows the account the rules would pick. Use Refresh auto carrier to run the rules again after you change the shipment.
Product picker for items
The SKU field on shipment items and order line items is now a searchable product picker. It appears on the create and edit shipment form and on the create order form. Picking a product fills in the description, image, barcode, HS code, weight, dangerous goods details and the other item fields from your catalog. You can still type a SKU that is not in the catalog.
Change a fulfillment location by stock
The Change Fulfillment Location dialog on an order now shows stock. Each location is marked Available, Partially Available or Unavailable, with the reason when it is unavailable. Expand a location to see the available quantity for each item. Show All Locations also lists the locations that cannot fulfill the order.
Via the API, two new fulfillment order endpoints are available:
GET /orders/{order_reference}/fulfillment-orders/{fulfillment_order_id}/available-locationslists candidate locations with per-itemavailable_quantityandshortfall, anavailabilityvalue, and areason_unavailable.POST /orders/{order_reference}/fulfillment-orders/{fulfillment_order_id}/allocateruns allocation again for an open or allocated fulfillment order, and can split it across locations. You can overrideallow_order_splitting,allow_partial_order_allocationandallocation_priorities, and pass areason. Withdry_run=true, it returns the proposed result without saving it.
Shopify orders follow Carriyo allocation
When automatic order allocation is turned on, the Shopify connector now allocates each new Shopify order in Carriyo. If Carriyo allocates every item, the connector moves or splits the Shopify fulfillment orders to the locations Carriyo chose.
Inventory webhooks and Shopify inventory sync
Settings > Webhooks has a new Inventory webhook type with one trigger, All Inventory Updates. It fires whenever an inventory position changes. The payload carries the product's stock by location before and after the change, in old_image and new_image, with the operation.
The Shopify connector can now send Carriyo stock to Shopify:
- Enable Inventory Sync pushes on-hand and available quantities to the mapped Shopify locations as they change. It needs the
write_inventorypermission in Shopify. - Inventory (Bulk Sync to Shopify) under Data Synchronization copies all your inventory positions to Shopify in one run.
Digital fulfillment orders can be shipped
Digital fulfillment orders now support Ship Only and Update Delivery Address on the order screen. Via the API, the ship action on a digital fulfillment order creates and books a shipment, and update-address saves the address. Address updates now depend on the fulfillment order's status: it must be open or allocated.
Delivery options and locations
- Checkout stock check. When inventory management is on,
POST /checkout/delivery-optionsreturns only options that a location can fulfill from available stock. Each option now lists theitemsit covers and thefulfillment_locationsthat hold the stock. - Location page. The Fulfillment Settings tab of a location has a new Delivery Options section listing the options that use that location.
- Filters. The location picker in the delivery option editor can filter by country. The country filter on the delivery options list also hides options for other customer countries.
Merchant sub-domains for CX apps
You can now change the sub-domain a merchant's CX apps use, such as <slug>.track.carriyo.com, under Settings > Domains > Sub-Domain. Carriyo suggests available names, and each sub-domain must be unique across Carriyo. The previous sub-domain keeps working for 30 days and is listed with its expiry date. Custom domains built on the old sub-domain move to the new one.
Fulfillment App: returns
A new Returns page lets store staff receive customer returns. Staff scan the return's air waybill or open a return request and receive all items or one at a time. For each item they record the condition: Ready to Sell or Unavailable, with a reason. At inventory locations, receiving updates stock. The return request completes once every item is received. Staff can also cancel a return request.
Access is controlled by a new Returns location permission, set in the Fulfillment App user settings and in Access Management in the Carriyo Dashboard.
Other Fulfillment App changes:
- Shipments and collections use the same scan and search bar.
- Staff can leave a pick or pack with Back without cancelling it.
- Collected and cancelled collections show that date instead of the expiry date.
- The location selector is available on mobile.
- Exact-match search on collections works again.
In the Carriyo Dashboard, Products and Inventory Positions have a new Product Category filter, and Inventory Positions has a Location Country filter.
Shipping API changes
merchantis required when you create a shipment, and onPOST /checkout/shipping-ratesandPOST /checkout/carrier-account. Requests without it returnMerchant should be passed.. Before, Carriyo filled it in for tenants with a single merchant.- Removed endpoints.
POST /shipments/{shipment_id}/reassignis removed; usePOST /shipments/{shipment_id}/reprocess.PATCH /shipments/{shipment_id}/statusis removed; usePOST /shipments/{shipment_id}/update-status.PATCH /shipments/{shipment_id}/ready-to-shipis removed; usePOST /shipments/{shipment_id}/ready-to-ship. - Estimated process date. Shipment create and update requests accept
input_estimated_process_date. When set, it becomes the shipment'sestimated_process_dateinstead of the date Carriyo calculates from service levels. - Date formats. Request dates that are not ISO 8601 with an offset, or Unix epoch, are rejected. The error names the field. A space between the date and the time is now accepted in place of
T.
Returns and inventory API changes
- Return request items now include
barcode, copied from the shipment item, andproduct_id, matched from your product catalog. - Inventory bulk import accepts several adjustments for the same product and location in one batch when they have different reasons or event types. True duplicates are rejected with
Duplicate or conflicting inventory request in same batch.
Carriyo MCP server: super-admins only
Connecting an AI agent to the Carriyo MCP server now requires the super-admin role in the Carriyo Dashboard for at least one tenant. Other users get the error MCP requires dashboard super-admin role when they authorize or call a tool.
New connector: Emirates Courier Express
Emirates Courier Express supports booking, labels, rates, cancellation and tracking, for domestic UAE and international shipments from the UAE. Account settings cover the service type, payment mode and terms of sale. They also include commercial invoice download, a default declaration statement, signature required, dangerous goods details and document mappings.
Carrier updates
- iMile. A new Imile API Version setting switches a carrier account to iMile's V2 API, which supports reverse shipments. Existing accounts are set to V1.
- SPL. Failed delivery updates now carry SPL's reason. Carriyo maps it to reason codes such as customer not available, refused by customer or incorrect address details.
- Noon. Live tracking now works for Noon shipments, with the driver's location and an ETA.
- EMX. Cross-border shipments send the customs declared value when you provide one.
- DHL Express. A closed-shipment update now marks consolidated parent shipments as delivered.
- Royal Mail. On multi-parcel shipments, items not linked to a parcel are spread across the unlinked parcels.
- Happy Returns. A new Happy Returns References setting sends the order, shipment or alternate reference as the purchase order reference. Drop-off updates in other date formats are no longer dropped, and the phone number is sent as entered.
- DB Schenker and Asyad. Package Type is now optional.
- Availability and names. DB Schenker, Bander Trading Company and Roads Runner are now available to every account. J&T Express is listed as J&T Express (UAE) and J&T Express (KSA).
- Carrier account settings. Sections now use consistent names: Account Details, Service Options and Reference Mappings. Carrier search ranks the closest name first.
- Kuwait addresses. More Arabic spellings of Kuwait city names are recognized.
Fixes
- Custom carriers. Creating a custom carrier saves the carrier name you type.
- Shipment documents. The Add Document link shows only when a document is still missing.