After dispatch
GET /api/v1/shipments/{shipment_id} returns the stored record:
{ "shipment_id": 42, "customer_reference": "ORDER-1001", "state": "ROUTED", "final_carrier": "POSTI", "final_carrier_tracking_id": "JJFI67863998958478726", "weight_g": 1340, "length_mm": 370, "width_mm": 370, "height_mm": 270, "requested_delivery_method": "HOME", "delivery_type": "HOME_DOOR", "routing_rule": { "id": 4, "name": "Door delivery POSTI" }, "created_at": "2026-10-08T09:12:03.120000Z", "routed_at": "2026-10-08T09:12:05.871000Z", "scan_status": null, "scanned_at": null}requested_delivery_method is what you asked for; delivery_type is the tier
that was actually used. See Delivery methods.
Finding a shipment by your reference
Section titled “Finding a shipment by your reference”If you no longer have the shipment_id, search by the customer_reference
you sent:
GET /api/v1/shipments?customer_reference=ORDER-1001The response is {"shipments": [...]}: your shipments with that reference,
newest first, each in the same shape as above. customer_reference is not
unique, so there can be more than one. limit defaults to 50 (max 500). No
match is 200 with an empty list, and other customers’ shipments are never
included.
To recover from a create whose response was lost, prefer retrying the create
with the same Idempotency-Key: it returns the original shipment if one
exists and creates it if not. See
Errors and retries.
State never changes after creation
Section titled “State never changes after creation”state is final when the create call returns, so don’t poll for it.
Hub scans
Section titled “Hub scans”scan_status stays null until the parcel is scanned at the E-Parcel hub.
scanned_at is the time of the first scan, when the parcel arrived.
scan_status |
Meaning |
|---|---|
SCANNED_OK |
Arrived, all fine |
SCANNED_NEW_LABEL |
Arrived and the label was reprinted at the hub |
SCANNED_NEW_SERVICE |
This shipment was created at the hub after re-measuring, because the corrected measurements needed a different carrier or service. It replaces an earlier shipment. |
SCANNED_REJECTED |
Replaced by a new shipment after re-measuring. The new shipment has its own id and tracking number. |
SCANNED_RETURNED |
Came back from the carrier and goes back to the sender |
SCANNED_DESTRUCTED |
Came back from the carrier and was destroyed |
There are no webhooks. If you show hub arrival in your system, poll a few times a day at most.
Cancelling
Section titled “Cancelling”There is no cancel endpoint. To stop a routed parcel, contact E-Parcel with
the shipment_id.