Tracking API

Show your customers where their package is. Fetch the same tracking timeline and proof of delivery you see in your panel.


GET/tracking/{tracking_number}

Track by tracking number

Get the full tracking timeline using the 4N NextDay tracking number.

Path Parameters

  • Name
    tracking_number
    Type
    string
    Description

    The order tracking number (e.g., 4N000000012345). Required.

Response Fields

  • Name
    tracking_number
    Type
    string
    Description

    The order tracking number.

  • Name
    delivery_state
    Type
    string
    Description

    Current delivery state.

  • Name
    estimated_delivery_date
    Type
    string
    Description

    Expected delivery date.

  • Name
    delivery_date
    Type
    string
    Description

    Actual delivery date (if delivered).

  • Name
    packages_count
    Type
    integer
    Description

    Total number of packages in the order.

  • Name
    delivered_packages_count
    Type
    integer
    Description

    Number of packages delivered so far.

  • Name
    timeline
    Type
    array
    Description

    Array of tracking events in chronological order. Failure entries include type and failure_info.

  • Name
    delivery_attempts
    Type
    array
    Description

    Array of delivery attempt records with their outcome (success, failure, or retry).

  • Name
    packages
    Type
    array
    Description

    Per-package delivery state: tracking_number, delivery_state, delivered_at.

  • Name
    delivery_proof
    Type
    object
    Description

    Proof of delivery (present for delivered and partially_delivered orders). Photo URLs are signed and expire after 60 minutes.

GET
/tracking/{tracking_number}
curl https://api.4nortes.app/api/v1/tracking/4N000000012345 \
  -H "Authorization: Bearer {token}"

Response

{
  "success": true,
  "message": "Tracking retrieved successfully",
  "data": {
    "tracking_number": "4N000000012345",
    "delivery_state": "delivered",
    "estimated_delivery_date": "2025-02-05T00:00:00.000000Z",
    "delivery_date": "2025-02-04T11:30:00.000000Z",
    "packages_count": 1,
    "delivered_packages_count": 1,
    "timeline": [
      {
        "state": "pending",
        "timestamp": "2025-02-03T10:00:00.000000Z"
      },
      {
        "state": "picked_up",
        "timestamp": "2025-02-03T14:30:00.000000Z"
      },
      {
        "state": "in_transit",
        "timestamp": "2025-02-03T18:00:00.000000Z"
      },
      {
        "state": "out_for_delivery",
        "timestamp": "2025-02-04T08:00:00.000000Z"
      },
      {
        "state": "delivered",
        "timestamp": "2025-02-04T11:30:00.000000Z"
      }
    ],
    "delivery_attempts": [],
    "packages": [
      {
        "tracking_number": "SH000000012345",
        "delivery_state": "delivered",
        "delivered_at": "2025-02-04T11:30:00.000000Z"
      }
    ],
    "delivery_proof": {
      "recipient_name": "Jane Doe",
      "recipient_rut": "12345678-9",
      "recipient_role": "recipient",
      "notes": null,
      "location": {
        "latitude": -33.4289,
        "longitude": -70.6093
      },
      "photos": [
        {
          "url": "https://storage.example.com/photos/abc123.jpg",
          "preview_url": "https://storage.example.com/photos/thumb/abc123.jpg"
        }
      ],
      "created_at": "2025-02-04T11:30:00.000000Z"
    }
  },
  "timestamp": "2025-02-04T12:00:00.000000Z"
}

Was this page helpful?