Release 2026.08-R5
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-holdandPOST /orders/{reference}/release-on-holdhold 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_hoursandnotes. A release takes optionalnotes. - Orders and fulfillment orders have a new
on_holdstatus and anon_hold_detailsobject. It records who held the order and when, the rule, the release and earlier holds inhistory. - 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 /ordersreturns a400error when the order quota is used up.GET /orderslists orders, with search, filters and paging. Each API call counts against a separate monthly Order List API quota. A request over the quota returns429.
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 carriesavailability, afulfillable_quantitycapped at the requested quantity, and thefulfillment_locationsthat can each deliver it alone. - The
locationandavailable_quantityfields 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 bysort_by. - You can identify a product by
product_refinstead ofproduct_id. Send exactly one. Aproduct_refthat matches no product returns a400error. The response echoesproduct_refand always returnsproduct_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:
- Enter your FedEx® account number, customer name and billing address.
- Choose how to get a verification code: SMS, email or phone call.
- 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_carrierinstead ofreturned. - 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.