Evri’s tracking system logs key delivery events throughout the parcel’s journey from collection through to delivery. A custom Evri tracking API integration pulls this data into your platform — your customer tracking page shows live Evri status, automated notifications trigger at despatch and delivery, and your customer service team can see parcel status without leaving your system. This post covers how Evri tracking works via the API and what a complete tracking integration looks like.
Evri tracking events
The Evri tracking API returns a chronological list of events for each tracking number. The key events in a standard Evri delivery:
Parcel received. Evri has scanned the parcel into their network. This event confirms the parcel has left the seller and is in Evri’s possession — the trigger for a despatch confirmation notification to the customer.
In transit. The parcel is moving through Evri’s hub network. Multiple transit scans may appear as the parcel moves between depots.
Out for delivery. The parcel is on the delivery vehicle for today. This is the trigger for an “out for delivery today” customer notification if you want to send one. Evri also sends its own notification to the recipient at this stage.
Delivered. Confirmed delivery, with details of how the parcel was left — signed for, left in safe place, left with neighbour, or delivered to ParcelShop.
Delivery attempted. A delivery attempt was made but unsuccessful. The reason is included — no answer, address not found, access issue. Evri will typically attempt redelivery or hold for collection at a ParcelShop depending on the recipient’s preference.
At ParcelShop. For parcels delivered to a ParcelShop rather than the home address, this event confirms the parcel is available for collection. The ParcelShop location is included in the tracking data.
Querying the Evri tracking API
The tracking API is queried using the tracking number returned when the shipment was created. The integration stores the tracking number against the order record at despatch time. The tracking page calls the tracking API using this stored number and displays the event history.
For customer-facing tracking pages, the API call happens server-side. Tracking API credentials are not exposed to the browser — your platform calls your own server endpoint, which calls Evri with the credentials and returns the cleaned tracking data to the client.
Caching tracking data with a short time-to-live reduces API calls without sacrificing freshness. A parcel that is out for delivery benefits from a 5-minute cache; a parcel that was delivered yesterday can be cached for 24 hours. The integration applies cache TTL rules based on the current delivery status.
Customer notifications from tracking events
Tracking events are the triggers for automated customer notifications. The most useful notification points for Evri deliveries:
Despatch confirmation. Triggered when the “parcel received” event appears — Evri has scanned the parcel in. This is more accurate than triggering on label generation, which happens before the parcel is actually collected. Customers who receive a despatch confirmation only after Evri confirms receipt have a more accurate picture of where their order is.
Out for delivery. Triggered by the out-for-delivery event. Reduces “where is my order” contacts on delivery day. Customers who know their parcel is out for delivery are less likely to contact support.
Delivered confirmation. Triggered by the delivered event. A simple confirmation that the parcel has arrived, with details of how it was left. A natural point to include a review request or feedback prompt — customers who have just received their order are in a positive frame of mind.
Delivery attempted alert. Triggered by a failed delivery attempt. Proactive communication about a failed delivery significantly reduces customer service contacts — the customer knows before they contact you, and the message can explain what happens next (Evri will reattempt, or the customer can redirect to a ParcelShop).
Building a branded Evri tracking page
Sending customers to Evri’s own tracking website works but loses the post-purchase experience within your brand. A branded tracking page on your own domain retrieves Evri tracking data via the API and displays it in your own design — with your logo, your colour scheme and additional context the Evri tracking page doesn’t have: the order contents, an estimated delivery date, a returns initiation button.
The tracking page is linked from the despatch email as “Track your order”. The URL includes the order reference, which the server resolves to the Evri tracking number for the API call. The customer gets a fully branded tracking experience without seeing the Evri tracking URL directly.
Tracking for returns
Returns tracking works identically to outbound tracking — the tracking number on the returns label provides the same event stream via the API. A returns tracking page or returns status within the customer’s account shows the return’s progress: dropped at ParcelShop, in transit, delivered to your warehouse.
When the returns tracking confirms the parcel has been delivered to your warehouse, the integration can trigger the refund workflow automatically — rather than requiring the warehouse to manually log return receipts. The tracking event-to-refund trigger reduces returns processing time and the associated customer service contacts asking whether a return has been received.
For the full Evri service and pricing, see the Evri API integration service. For WooCommerce integration, see Evri API for WooCommerce. For the complete Evri API guide, see Evri API integration guide. For what the build costs, see Evri API integration cost.
Related posts
- Evri API integration: a complete guide
- Evri API integration for WooCommerce
- Evri API vs DPD API
- Evri API integration cost
Polling vs webhook tracking updates
There are two approaches to getting tracking updates from Evri into your platform: polling (your server asks Evri for updates on a schedule) and webhooks (Evri pushes updates to your server when something happens).
Polling is simpler to implement and works reliably. Your integration runs a scheduled job every 15–30 minutes, queries the Evri tracking API for all active shipments, and updates your platform with any new events. The downside is latency — an event that happened 1 minute after the last poll won’t appear in your system for up to 29 minutes.
Evri also supports push notifications for tracking events on some account configurations. This is worth discussing with your Evri Account Manager during account setup. Push updates eliminate the latency issue but require a webhook endpoint on your server and additional setup with Evri. For most ecommerce tracking use cases, polling every 15–30 minutes provides adequate freshness — customers don’t typically need tracking to update in real time, and a 15-minute lag between an event and its appearance on your tracking page is imperceptible in practice.
If you need help with a custom API integration for your website or business application, I can help. I build bespoke API integrations for UK businesses. See API integration pricing or get in touch to discuss your project.
Need a custom integration built?
I build custom API integrations — Stripe, Companies House and bespoke data pipelines. Reliable, well-documented, no agency overhead.
Discuss your project →