Release 2026.10-R7
Released October 15, 2026.
Combined shipping documents
A combined document merges several of a shipment's PDF documents into one file, so you can print them in one go. To set one up, open Settings > Administration > Documents, add a document and pick Combined as its document type. Then choose the shipment type and two or more Documents to combine. The PDF follows the order you select them in.
You can combine the Carriyo PDF label, the carrier PDF label, the carrier commercial invoice, and your active shipment documents, generated or uploaded. A generated document set to one shipment type can only go into a combined document for that type.
- When it's published: Carriyo adds the combined document to a shipment once every document in it is on the shipment. A combined document that includes the carrier commercial invoice is only published for cross-border shipments, as domestic shipments have no commercial invoice.
- Webhook: shipment webhooks have a new trigger, Combined Document is generated (
notify_combined_document_update). It fires when a combined document is added to a shipment, with the triggercombined_document_update. - On the shipment: the combined document appears in
post_shipping_info.documentswithtype: combined. Its link builds the PDF each time it's opened. - Rules: you can't upload a file to a combined document, or delete one from a shipment, through
/shipments/{shipment_id}/documents. While an active combined document uses a document, you can't delete that document or switch it off. Remove it from the combined document first.
Webhook and connector alerts
Carriyo can now raise alerts when your webhooks or connectors fail. Turn them on in Settings > Account > Alerts, under two new alert events:
- Webhook Failure is raised when deliveries to a webhook fail, and resolved when the webhook succeeds again.
- Connector Failure is raised when requests between Carriyo and the connected platform fail, and resolved when the connector succeeds again. Requests made from the Dashboard or the API don't count.
Carriyo checks each webhook and connector every hour. One alert covers one run of failures, and later failing hours add to it. On the Alerts Dashboard, a failure alert shows the webhook or connector, its failed deliveries, and the first and last failure times. VIEW opens the webhook's or connector's failed activity. These alerts are shown to users who can retrigger webhooks.
Two more changes on the Alerts Dashboard:
- Email frequency: in your alert settings, choose how often the alert email arrives: every hour, every 6 hours, or once a day. Each email lists the open alerts raised since the previous one. Before, it was always hourly.
- Shipment type filter: filter alerts to forward or reverse shipments.
Webhook and connector activity
Webhooks and connectors in Settings > Integration now open on a read-only page. Click Edit to change them. A new Activity tab lists the last 30 days of requests:
- Webhooks: each delivery attempt, with its response code, time taken, trigger and entity. Show all attempts lists every attempt of one delivery.
- Connectors: each operation, with its status, operation, source and failure reason.
Filter by Success or Failure, and open an entry to see its request and response.
Activity logs, here and in the Integration Monitor, now mask secret values in headers, URLs and query parameters. A header whose name contains words such as authorization, token, secret, password or signature shows ****, plus the last four characters of a longer value.
In the Integration Monitor, a custom time period for webhooks or connectors can now cover at most 31 days. Webhook and connector event history is kept for one year.
Inventory stock states
Inventory Positions (Settings > Administration > Inventory Positions) now uses three stock states for each location:
- Available: units available to sell.
- Unavailable: units on hand, but none available to sell.
- Out of Stock: no units on hand.
A product takes the best state among the locations you can see. A product with stock at any location now shows Available. Before, it needed stock at every location, and showed Partially Available otherwise. Partially Available is removed. Sorting by status orders products Available, Unavailable, then Out of Stock.
The quick filters show the same three states, with a tooltip on each. Exports from the page use the same filters.
Via MCP: the list_inventory status filter takes available, unavailable or out_of_stock. The partially_available status is removed: a request that sends it is rejected with Unknown status: partially_available. Each location in the results carries one of the three states. If your agent or integration filters on partially_available, use available instead.
Personal IDs sent to Naqel
Naqel bookings now carry the customer's personal ID, such as a civil ID, as the consignee national ID. Carriyo sends dropoff.personal_id.id for forward shipments and pickup.personal_id.id for reverse shipments. Naqel only accepts numbers, so an ID with other characters is left out and the booking goes ahead without it.
Fixes
- Collection time slots:
POST /shipments/{shipment_id}/schedule-collectionandupdate-collection-schedulenow read a time slot in the pickup country's time zone. Before, they used the drop-off country, so cross-border collections got the wrong window. - Scheduled dates: scheduling a delivery or collection now accepts today's date in the drop-off or pickup country. Countries behind UTC keep the date you send. Before, those dates could move to the previous day.
- Schedules that didn't apply:
schedule-deliverynow sets the delivery window on a shipment that had no delivery details. Before, the request succeeded and nothing changed. A schedule request that can't set a window, because the shipment has no pickup or drop-off country, is now rejected. - Consolidated child shipments: confirming or reprocessing a child shipment whose consolidated parent is cancelled is now rejected with
400. This applies to DHL, UPS and FedEx carrier accounts with consolidated shipping. Before, the child was sent to DHL and failed there. DHL bookings also return a clear error when the parent isn't booked yet. - Inventory emails: inventory export and import emails now link to Settings > Administration > Inventory Positions. Before, they linked to the old page.
- Inventory import report: rows that changed nothing now show No change, and the report updates as rows finish. Before, those rows showed Processing and the report never refreshed.