> ## Documentation Index
> Fetch the complete documentation index at: https://developers.e-cross.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Tracking & Monitoring

> Complete guide to tracking and monitoring parcel status

## Overview

Once an order reaches `READY_TO_SHIP`, use the order response as your primary API source for parcel tracking. The order exposes parcel identifiers and the current parcel event timeline in `order.shipping.deliveries[].parcels[]`.

Once the order reaches `SHIPPED`, e-CROSS also exposes a public tracking portal URL for buyer-facing tracking.

Use the parcel APIs when your workflow already starts from a `parcelId` or when you need parcel-level search and filtering across many orders.

## Tracking Portal URL

The tracking portal URL is a public URL that renders a web application, a.k.a. **Tracking Portal**, to display trackings to the buyer. This URL is integrated from e-CROSS to the sales channel when the order enters the `SHIPPED` status, and then the sales channel, usually, sends the link to the buyer via the "Order dispatched" email.

You can find the tracking URL after the order is in `SHIPPED` status in:

* `order.statusHistory[status="SHIPPED"].eventData.trackingUrl`

## Track parcel events through the order

Use the [Get order by ID](/api-reference/orders/get-order-by-id) or [Get order by sales channel order ID](/api-reference/orders/get-order-by-saleschannelorderid) endpoint to retrieve the order and inspect `order.shipping.deliveries[].parcels[]`.

* `order.shipping.deliveries[].parcels[].parcelId` is the parcel identifier that only becomes available after the order reaches `READY_TO_SHIP`.
* `order.shipping.deliveries[].parcels[].events[]` contains the current parcel tracking timeline available for that order.

<Info>
  Use `statusHistory[status="PARCEL_TRACKING_UPDATED"]` as an audit trail that shows when e-CROSS registered a parcel tracking update. Use `order.shipping.deliveries[].parcels[].events[]` as the current-state view.
</Info>

## Use parcel APIs when you need parcel-first lookup

Use the [Get Parcel Details API](/api-reference/tracking/get-parcel-details) when you already have a `parcelId` and need a parcel-focused response.

Use the [List Parcels API](/api-reference/tracking/list-parcels) when you need to search or filter parcels across many orders.

### Parcel statuses

The `parcel.status` attribute gives you the **macro step** of the logistic route:

* `SHIPMENT_CREATED` - The parcel has been created
* `SHIPPED` - The parcel has been shipped
* `ARRIVED_DESTINATION_COUNTRY` - The parcel has arrived in the destination country and is waiting for customs clearance
* `CUSTOMS_CLEARANCE` - Parcel is in customs clearance process
* `LAST_MILE` - Customs clearance completed and parcel was delivered to the last mile provider
* `DELIVERED` - Parcel was delivered to the recipient
* `SHIPMENT_CANCELED` - Parcel was cancelled and won't be delivered
