Webhooks provide real-time notifications about changes in the Mailship, including orders and products. We can configure the following webhooks for you:
-
Expedition status change
-
Expedition booked change
-
Expedition carrier external status change
-
Product stock change
-
Product change
-
Stock advice status change
For more details on how webhooks are created, please refer to the Knowledge Base.
Webhook Payload Structure
Expedition status change
Triggered when an order status changes.
{
"id": "5092699e-5b20-434e-91c8-fb332ac381d8",
"status": "waiting_for_the_carrier",
"timestamp": "2025-03-03T14:51:36+01:00",
"orderNumber": "testOrder1"
}
Fields:
-
id: Unique identifier for the order update event. -
status: The current status of the order. -
timestamp: Timestamp of the status update. -
orderNumber: Identifier of your order number.
The system sends webhooks when the expedition status changes.
Below is an overview of the statuses that may be included in the webhook payload. Status names are referenced exactly as written in API responses.
|
Status |
Description |
|---|---|
|
incorrect |
The order contains invalid data and must be fixed by the client. |
|
waiting_for_goods |
Waiting for goods to be restocked. |
|
stock_ok |
“To be cofirmed” in Mailship. Waiting for your confirmation. |
|
on_hold |
The order is on hold. |
|
awaiting_processing |
The order is waiting for processing. |
|
awaiting_reservation |
The order is waiting for product reservation. |
|
take_out |
The order is being picked. |
|
completion |
The order is being packed. |
|
waiting_for_the_carrier |
The order is ready to be picked up by the carrier. |
|
ready_to_takeover |
Ready for customer pickup. |
|
carrier_picked_up |
The carrier has picked up the shipment. |
|
delivered |
The order has been delivered. |
|
returning |
The order is on its way back to warehouse. |
|
returned |
Our warehouse has processed the returned order. |
|
canceled |
The order has been canceled. |
You can find more details about order statuses in our Knowledge Base.
Expedition booked change
Triggered when stock for an expedition has been booked.
{
"id": "886bfee2-3907-4567-9de1-ed4a1b7b6e3a",
"timestamp": "2025-03-03T14:51:05+01:00",
"orderNumber": "testOrder2"
}
Fields:
-
id: Unique identifier for the expedition update event. -
timestamp: Timestamp of the status update. -
orderNumber: Order number related to this expedition booking.
Expedition carrier external status change
A webhook that delivers the carrier’s original expedition status directly to your system. This webhook is sent whenever the carrier updates the status of a parcel.
You can inform customers sooner and analyze carrier performance using these updates. Includes a history of carrier status changes, not just the latest event.
{
"id": "c0bf3cmm-at4c-4c0d-a60f-1eb1e07f98bb",
"items": [
{
"name": "Some product",
"quantity": 1,
"internal_sku": "internal_sku",
"primary_code": "primary_code",
"expedition_item_id": "7fd45efa-89cd-4061-nhcf-6e6ad9692783"
}
],
"label_url": "https://tms.mailstep.live/label/06K5E8K3K1TV966TE79ZYX46N.pdf",
"timestamp": "2025-09-18T22:17:12+02:00",
"carrier_id": "801aa52b-acd3-44a5-8316-802eba8c25e9",
"orderNumber": "order_number",
"carrier_name": "Zásilkovna",
"tracking_url": "https://tracking.packeta.com/ro/?id=trackingId",
"expedition_id": "c0bd2ced-ae4c-4c0d-a60f-1eb1e07f98bb",
"total_parcels": 1,
"carrier_statuses": [
{
"code": "1",
"text": "O vaší zásilce už víme a čekáme, až nám ji odesílatel předá.",
"timestamp": "2025-09-18T10:55:52+00:00"
},
{
"code": "2",
"text": "Zásilka dorazila na depo. Praha-Štěrboholy, K Hrušovu 292/4",
"timestamp": "2025-09-18T21:40:20+00:00"
},
{
"code": "3",
"text": "Zásilka byla připravena k odeslání z DEPO, Praha - Štěrboholy, K Hrušovu 292/4 do Depo Oradea.",
"timestamp": "2025-09-18T21:40:21+00:00"
}
],
"return_label_url": "",
"carrier_service_id": "8ffccb91-991e-4aac-9615-80e668a50492",
"carrier_service_name": "PickupPoint",
"external_tracking_url": ""
}
Fields:
-
id: Unique identifier for the order update event. -
items: List of items in the expedition, including name, quantity, internal SKU, primary code (e.g., EAN), and expedition item ID. -
label_url: Direct link to the shipping label PDF, if available. -
timestamp: Timestamp of the status update. -
carrier_id,carrier_name,carrier_service_id,carrier_service_name: Carrier identifiers. -
orderNumber: Identifier of your order. -
tracking_url: Link to the carrier tracking page for the expedition. -
expedition_id: Unique identifier of order in Mailship. -
total_parcels: Total number of parcels in the expedition. -
carrier_statuses:Chronological history of the carrier’s statuses. -
return_label_url: Direct link to the return shipping label PDF, if available. -
external_tracking_url: Link to the external carrier’s tracking page, if provided.
Product stock change
Triggered when a product's stock level changes due to warehouse movements.
{
"id": "3f42bed9-d65a-41f5-8333-464cc91e5b4c",
"wms": "024a2209-17a6-4471-8c39-c0fabf4dbe62",
"changes": {
"booked": {
"after": 1,
"delta": -1,
"before": 2
},
"missing": {
"after": 0,
"delta": 0,
"before": 0
},
"incoming": {
"after": 0,
"delta": 0,
"before": 0
},
"quantity": {
"after": 349,
"delta": -1,
"before": 350
},
"available": {
"after": 348,
"delta": 0,
"before": 348
}
},
"productId": "f4e7815e-f61a-4e86-a499-dc52ecf29fa1",
"timestamp": "2025-03-03T15:00:57+01:00",
"warehouse": "0d579fb1-b27d-4ef6-8a10-44db10a13eb7",
"productSku": "testProduct1",
"internalSku": "testProduct1",
"changeOriginators": [
{
"id": "a12e2ad6-8c7a-4160-bc97-7ac5bf1cf564",
"type": "outbound_receipt",
"clientId": null
},
{
"id": "4ea33733-33b2-4b46-a56e-920315ad7242",
"type": "expedition",
"clientId": "testOrder2"
}
]
}
Fields:
-
id: Unique identifier for the stock update event. -
wms: Warehouse identifier. -
changes: Stock change details with before, after, and delta values. -
productId: Unique identifier of the affected product. -
timestamp: Timestamp of the update. -
warehouse: Physical warehouse ID where the stock change occurred. -
productSku: Product’s SKU (EAN). -
internalSku: Internal SKU of the product. -
changeOriginators: List of events triggering the stock change.
Product change
Triggered when a product's SKU, internal SKU, or other details are modified.
{
"id": "9e446787-cf42-4b35-8819-a4e581bfa0f5",
"timestamp": "2025-03-03T15:00:53+01:00",
"productSku": "8595717724834",
"internalSku": "8595717724834"
}
Fields:
-
id: Unique identifier for the product update event. -
timestamp: Timestamp of the update. -
productSku: Product SKU (EAN) of the affected product. -
internalSku: Internal SKU of the affected product.
Stock advice status change
Triggered when the status of a stock advice changes.
{
"id": "f1edda63-800a-438d-a789-0209ecae38bf",
"newStatus": "in_progress",
"timestamp": "2025-03-03T14:48:02+01:00",
"internalId": "testStockAdvice1"
}
Fields:
-
id: Unique identifier for the stock update event. -
newStatus: New processing status of the stock advice (e.g.,in_progress). -
timestamp: Timestamp of the update. -
internalId: Identifier of your stock advice.
The system sends webhooks when the stock advice status changes.
Below is an overview of the statuses that may be included in the webhook payload. Status names are referenced exactly as written in API responses.
|
Status |
Description |
|---|---|
|
new |
New stock advice. |
|
incorrect |
The stock advice contains invalid data and must be fixed by the client. |
|
waiting |
“Awaiting inbound” in Mailship. The stock advice is waiting for processing. |
|
in_progress |
The stock advice is being processed. |
|
partially_finished |
Only some items have been stocked. |
|
finished |
All items have been stocked. |
|
canceled |
The stock advice has been canceled. |
|
closed |
The stock advice has been closed. |
You can find more details about stock advice statuses in our Knowledge Base.
If you are interested in setting up a new webhook, please contact our customer support and provide the following information: URL and event type.