Release 2026.08-R5

Updated September 28, 20267 min read

Released August 13, 2026.

Order holds

You can now hold an order for review before it's fulfilled. A held order has the new status On Hold. Nobody can change or fulfill it until a reviewer releases it.

Order hold rules put orders on hold automatically when they're created. Set them up under Settings > Shipping Automation > Order Hold Rules. Each rule combines conditions with Match ALL or Match ANY:

  • Order Value, set per currency
  • Customer Verified, Address Mismatch (billing and shipping addresses differ)
  • Payment Method, Destination Country, Sales Channel, Merchants
  • Item Quantity, Item Category, Discount %
  • your order custom attributes

The rule's hold action sets who reviews the order (Assign to), a Priority, a Review SLA in hours and a note for the reviewer. Rules run in sequence, and the first match holds the order. The page shows how many rules are active, orders held in the last 7 days, orders awaiting review and the average review time. A Change History tab lists every change to the rules.

On an order page:

  • Put on Hold holds an open or allocated order by hand, with the same assignee, priority, SLA and notes. You can also hold a single fulfillment order.
  • A banner on a held order names the rule that held it. Review & Release releases the order with an optional review note. Reject Order cancels it.
  • The Orders menu has a new On Hold view with a live count.

In the Fulfillment App, picks and packs can't be created for a fulfillment order on hold. Holds don't apply to orders from the Shopify connector.

Via the API:

  • POST /orders/{reference}/on-hold and POST /orders/{reference}/release-on-hold hold and release an order. The same two actions exist per fulfillment order, under /orders/{reference}/fulfillment-orders/{id}/.
  • A hold takes optional assigned_to, priority (LOW, NORMAL, HIGH, URGENT), sla_hours and notes. A release takes optional notes.
  • Orders and fulfillment orders have a new on_hold status and an on_hold_details object. It records who held the order and when, the rule, the release and earlier holds in history.
  • While an order is on hold, updates and fulfillment order operations are rejected. Cancelling still works and releases the hold.
  • Order webhooks fire when an order or fulfillment order is held or released.

Orders for every account

Orders are now on for every Carriyo account. The Orders menu, Order Management settings and Order Allocation Rules no longer need a separate subscription. The Fulfillment App and order tracking pages work for every account too.

Order creation now counts against an order quota for each quota cycle, as shipments do. Accounts start with an order quota equal to their shipment quota.

  • Settings > Account > Subscription shows your Order Usage.
  • A banner warns you when order usage nears or reaches the limit.
  • Once the limit is reached, you can't create, clone or import orders in the Dashboard.

Via the API:

  • POST /orders returns a 400 error when the order quota is used up.
  • GET /orders lists orders, with search, filters and paging. Each API call counts against a separate monthly Order List API quota. A request over the quota returns 429.

Company names on order addresses

Order addresses now carry a company name. The create order form and the Update Delivery Address dialog have a Company Name field for the customer, billing and delivery addresses. The order's Customer tab shows the company, and the order list has a Customer Company Name column.

The order import template and order export include Company Name for each address. The Shopify connector fills it from the company on Shopify's customer, billing, shipping and fulfillment addresses.

Storefront API changes

Product delivery options (POST /storefront/product-delivery-options) now return one object per product, not one row per product and location:

  • Each product lists its delivery_options. Each entry carries availability, a fulfillable_quantity capped at the requested quantity, and the fulfillment_locations that can each deliver it alone.
  • The location and available_quantity fields are removed. The response no longer exposes stock counts.
  • An option with no stock anywhere is returned marked NONE, not left out.
  • Options sort by availability first (FULL, PARTIAL, UNKNOWN, NONE), then by sort_by.
  • You can identify a product by product_ref instead of product_id. Send exactly one. A product_ref that matches no product returns a 400 error. The response echoes product_ref and always returns product_id.

Free shipping threshold. On both Storefront delivery options endpoints, shipping_fee has a new free_shipping_threshold. It appears when the option's fee is Tiered - Order Value and the top tier is free. It gives the order value from which shipping is free, so you can show a "spend X more" message.

estimated_arrival_from and estimated_arrival_to on both endpoints now use the same date format as the rest of the API, ending in Z.

Item-level category condition in the Dashboard

The item-level product category condition, added to the API in the previous release, is now in the Dashboard. Under Settings > Shipping Automation > Delivery Options, add Item product category is one of or Item product category is none of.

The order-level conditions are renamed to make the difference clear. Product category is one of is now Order contains product category, and Product category is none of is now Order doesn't contain product category. Order Allocation Rules use the same new names.

MCP: the Delivery options tools create_delivery_option and edit_delivery_option accept item_product_categories.

FedEx account authorization

FedEx accounts enrolled in the FedEx® Compatible program can now be authorized from the Dashboard. You don't need your own FedEx API keys.

The FedEx® Compatible Customer setting is back in the FedEx carrier account credentials. Turn it on only if your account is enrolled in the program. For live accounts with it on, User key and User secret are hidden.

Until the account is authorized, the carrier account page shows Authorization Required! Select Authorize and follow three steps:

  1. Enter your FedEx® account number, customer name and billing address.
  2. Choose how to get a verification code: SMS, email or phone call.
  3. Enter the 6-digit code.

Evri carrier

Evri (formerly Hermes UK) is added as a carrier for UK domestic shipments. It supports deliveries and returns, PDF or ZPL labels, and tracking. Shipments use Evri's standard service unless you choose Next Day, Signature or Household Signature as the Service Type on the carrier account.

Carrier updates

  • Naqel: a new Incoterms setting on the carrier account (DDU or DDP) sets who pays duties on international shipments. An incoterm on the shipment's customs details takes priority. With neither set, Naqel applies its own default.
  • FedEx: once FedEx confirms a consolidation, cancelling the parent or a child shipment cancels it in Carriyo only. FedEx doesn't allow cancelling a confirmed consolidation.
  • FedEx: consolidated shipment labels now show the importer of record as the label origin.
  • RLM: when RLM cancels a reverse shipment, its status is now cancelled_by_carrier instead of returned.
  • Shopify: when you add items to an order that already has fulfilled items, the new items now sync to Carriyo. Before, the update was skipped.

Fixes

  • Location updates: saving a location no longer fails with "Address line 1 should not be empty" on accounts with a custom address model.
  • Document upload retries: when a carrier rejects a document upload, Carriyo now marks the upload as failed and schedules the retry. Before, the retry was never scheduled.
  • Logistiq city mappings: Logistiq now appears in the city mappings download list.
  • User invitations: inviting a user who already has access to the account now returns an error. Before, it could reset the user to Pending.
  • Sign-up: new accounts can be created from the sign-up email link again.
  • Order page: the customer's address is labeled Address, not Ship To, so it isn't mistaken for a fulfillment order's delivery address.
  • Loading screens: some Dashboard and Fulfillment App pages no longer show a second loading screen after they load.
  • Expired custom domain certificates: when a CX custom domain certificate expires, Carriyo now requests a replacement and switches to it once it's issued. Keep the domain's DNS validation record in place.