Premium partners, Premium clients, and add-on developers can now utilise the new public API for Shoptet Logistics. The new API enables customers and their partners to:
For the full list of new endpoints, see our API documentation.
GET /api/shipments — browse all shipments in the shop with paging and filtering (by status, etc.). The read model behind ERP, WMS, and dashboard integrations.POST /api/shipments — register a new shipment for an order. The payload references the order, the shipping line, the shipper address and — for cash on delivery — the bank account that will receive the payout.GET /api/shipments/{guid} — look up a shipment by its GUID to see its current state, packages, addresses, and tracking info.POST /api/shipments/{guid}/cancel-request — ask the carrier to cancel a shipment. Returns 202 Accepted because cancellation has to be confirmed by the carrier asynchronously; the final outcome arrives via the shipment lifecycle webhooks.GET /api/shipments/order/{code}/shipping-options — for a specific order, get the carrier + service combinations that are actually eligible (right country, weight, dimensions, COD support). This is what a shop owner sees in the “create shipment” dialog, exposed as data.GET /api/shipments/carriers — read the integrated carriers available in this shop (Czech Post, PPL, Packeta, DPD, Hungarian Post, …), optionally filtered by service type.GET /api/shipments/carriers/{code}/{type} — read a single carrier + service-type pair (home delivery, parcel shop, locker, …), localized for the e-shop language. Used to render carrier pickers and configuration screens.POST /api/shipments/carriers/{code}/close — submit the handover protocol for all open shipments of one carrier. Returns 202 Accepted; the result is emailed to the requester once the carrier has acknowledged the batch.Three lifecycle events cover the whole flow — add-ons can react in real time instead of polling shipment detail:
shipment:create — fires when a shipment moves into an active state at the carrier (label generated, tracking number assigned, ready to hand over).shipment:update — fires on any meaningful state change after creation (in transit, delivered, returned, …).shipment:fail — fires when the carrier rejects the shipment, the cancellation is confirmed, or the shipment ends in an error state that needs manual attention.Each event carries the shipment identifier so consumers can immediately fetch GET /api/shipments/{guid} and see exactly what changed.
This change will mainly benefit clients who already manage higher shipping volumes, use ERP/WMS systems, or want to handle order processing and logistics workflows outside of the Shoptet administration. For them, the API opens up new opportunities for more efficient fulfillment workflows, deeper logistics integrations, and better use of delivery data across client systems.
If you have any questions, feedback or requests, please do not hesitate to contact us on api@shoptet.cz.