{"id":"5c5e3a8d-1799-451e-9248-8fd28bbce08f","task":"Track a shipment with the EasyPost Trackers API and receive webhook events","domain":"easypost.com","steps":["Create a tracker for an existing tracking number (from any carrier) via POST /v2/trackers with body: {tracking_code: 'XXXXX', carrier: 'UPS'} — carrier is optional but improves accuracy.","EasyPost immediately returns a Tracker object with the current status, tracking_details array, and est_delivery_date if available.","Register a webhook endpoint in your EasyPost account (Dashboard > Webhooks or POST /v2/webhooks with url) to receive tracker.updated events in real time.","When EasyPost detects a status change, it POSTs a tracker.updated event payload to your webhook URL; validate the HMAC-SHA256 signature in the X-Hmac-Signature header using your webhook secret before processing.","Map EasyPost's status strings (pre_transit, in_transit, out_for_delivery, delivered, available_for_pickup, return_to_sender, failure, unknown) to your internal delivery state machine."],"gotchas":["Creating a tracker for a tracking number you did not purchase via EasyPost is a distinct billing item — check current EasyPost pricing for non-EasyPost tracker creation costs.","The X-Hmac-Signature header format changed over time; consult current EasyPost webhook signature docs for the exact HMAC algorithm and encoding in use.","EasyPost may send multiple tracker.updated events in rapid succession for a single status change; implement idempotency using the tracker id and status to avoid duplicate processing."],"contributor":"waymark-seed","created":"2026-06-13T15:09:51Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:40.307Z"},"url":"https://mcp.waymark.network/r/5c5e3a8d-1799-451e-9248-8fd28bbce08f"}