# Get shipment tracking This endpoint allows to retrieve detailed tracking information for a specific package using its tracking number. It returns the complete tracking history including all events, package details, and current status. This is useful for providing shipment visibility to customers. In case of success, the request will return a response with status 200. **GET** `/shipping/v1/shipments-tracking/{tracking_number}` ## Request parameters ### Path - `tracking_number` (string, required) Package tracking number returned by the Get shipments endpoint for [Checkout Pro](/developers/en/reference/online-payments/checkout-pro-preferences/shipping/get-shipments/get) or [Checkout API](/developers/en/reference/online-payments/checkout-api/shipping/get-shipments/get). ## Response parameters - `tracking_number` (string, optional) Package tracking number. - `tracking_url` (string, optional) Link for the buyer to check the shipment status in real time. - `package` (object, optional) - `package.id` (string, optional) Unique identifier of the shipped package. - `package.external_reference_id` (string, optional) External reference that you can synchronize with your payment system to identify the shipment. - `package.dimensions` (object, optional) Object containing the package weight, width, height, length, and volume. - `package.dimensions.weight` (number, optional) Weight of the package in grams. - `package.dimensions.width` (number, optional) Width of the package in centimeters. - `package.dimensions.height` (number, optional) Height of the package in centimeters. - `package.dimensions.length` (number, optional) Length of the package in centimeters. - `package.dimensions.volume` (number, optional) Volume of the package in cubic centimeters. - `package.items` (array, optional) - `package.items[].title` (string, optional) Title of the item sent in the package. - `package.items[].description` (string, optional) Description of the item sent in the package. - `package.items[].unit_price` (number, optional) Value of the item sent in the package. - `package.price` (object, optional) Price information of the shipment. - `package.price.amount` (string, optional) Shipping amount. - `package.price.currency` (string, optional) Currency used in the shipment. - `tracking` (array, optional) Shipping history details. - `tracking[].type` (string, optional) Direction of the shipment. Possible enum values: - `forward` Shipment is moving forward to the customer. - `reverse` Shipment is moving back to the seller. - `tracking[].events` (array, optional) List of shipping events with status and date information. - `tracking[].events[].status` (string, optional) Current status of the shipment. Possible values: Possible enum values: - `created` Shipment was created after payment. - `ready` Label can be generated; if `dispatch_date` is present, the label can only be generated 24 hours before this date and time. - `label_printed` Label was generated. - `shipped` Package was collected and is on its way to destination. - `out_for_delivery` Package left origin to destination address. - `soon_deliver` Package is near its destination. - `delivered` Package was delivered. - `not_delivered` Package was not delivered. - `canceled` Shipment was canceled. - `in_hub` Package is in a warehouse. - `rejected_in_hub` Package was rejected in warehouse. - `discarded` Package was discarded and will not return to sender. - `outbounded` Package left warehouse. - `impassable_area` Shipment route has an impassable area. - `receiver_absent` Package recipient is absent. - `refused_delivery` Package delivery was refused. - `bad_address` Carrier could not find destination address or it was invalid. - `damaged` Package was damaged. - `lost` Package was lost. - `stolen` Package was stolen. - `delayed` Package is delayed. - `estimated_delivery_updated` Estimated delivery date updated. - `returned` Package was returned to sender. - `on_route` Package is on route. - `failed` Shipment initialization failed. - `redirected` Shipment was redirected - phase changed. - `stuck` Shipment is stuck - phase change failed. - `picked_up` Package picked up. - `carrier_logistic_center_inbound` Package entered a warehouse. - `carrier_logistic_center_outbound` Package left a warehouse. - `sender_absent` Seller absent for pickup. - `refused_pickup` Package pickup was refused. - `sender_not_visited` Package pickup could not be performed. - `tracking[].events[].date` (string, optional) Date of status update for the event. ## Errors | Status | Error | Description | | ------- | ------- | ----------- | | 400 | bad_request | Invalid data was sent in the request `body`. Try sending the request again, validating all fields. | | 401 | unauthorized | The value sent as Access Token is incorrect. Please check and try again with the correct value. | | 417 | expectation_failed | Could not meet the expectation specified in the `Expect` header. Validate the information sent and try the request again. | | 500 | internal_server_error | An unexpected error occurred on the server. Try the request again. | ## Request example ### cURL ```bash curl -X GET \ 'https://api.mercadopago.com/shipping/v1/shipments-tracking/{tracking_number}' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ' ``` ## Response example ```json { "tracking_number": "343434ereer-3344e33rre3", "tracking_url": "https://www.mercadopago.com.mx/shipping-tracking?id=000038774013", "package": { "id": "1", "external_reference_id": "REF-123456", "dimensions": { "weight": 10, "width": 10, "height": 10, "length": 10, "volume": 10 }, "items": [ { "title": "Producto", "description": "Descripción del producto", "unit_price": "24.50" } ], "price": { "amount": "24.50", "currency": "MXN" } }, "tracking": [ { "type": "forward", "events": [ { "status": null, "date": null } ] } ] } ```