QUICKSTART
API Quick Start
Authentication
SignString
OAuth
Overview
Getting Started
Scope List
Versioning
Rate Limit
Body Envelope
Request Errors
Try API Endpoints
CHANGELOG
Changelog
Migration Guide
REFERENCE
API Overview
Estimated delivery date
Batch prediction for the Estimated Delivery Date
post
Tracking
Get trackings
get
Create a tracking
post
Get a tracking by ID
get
Update a tracking by ID
put
Delete a tracking by ID
delete
Retrack an expired tracking by ID
post
Mark tracking as completed by ID
post
Get a tracking (Legacy)
get
Update a tracking (Legacy)
put
Delete a tracking (Legacy)
delete
Retrack an expired tracking (Legacy)
post
Mark tracking as completed (Legacy)
post
Courier
Get user activated couriers
get
Detect courier
post
Get all couriers
get
Last Checkpoint
Get last checkpoint by tracking ID
get
Get last checkpoint (Legacy)
get
Notification
Get tracking notification by tracking ID
get
Add a notification by tracking ID
post
Remove a notification by tracking ID
post
Get tracking notification (Legacy)
get
Add a notification (Legacy)
post
Remove a notification (Legacy)
post
MODEL
Tracking
Courier
Checkpoint
Notification
ENUM
Additional Tracking Fields
Delivery Statuses
Delivery Sub-statuses
Slug Groups
Events
Confidence Codes
Webhook
Webhook Overview
Webhook Versioning
Webhook Specifications
Webhook Signature
Webhook OAuth 2.0
Webhook Outgoing IPs
Webhook Changelog
OTHERS
Supported Couriers
CSV Upload & CSV Auto-Fetch
Shipment CSV Export
Order CSV Export
SDK
Java SDK
Node.js SDK
.NET SDK
Python SDK
Ruby Gem
PHP SDK
Golang SDK
Open Source
phone
email-verifier
Support
Contact Support

Webhook Changelog

Get all the latest webhook updates by AfterShip Tracking here.


ChangeBeforeAfter
as-webhook-version header’s value2024-012024-04
New tracking model's field-failed_delivery_attempts
signature_requirement
Tracking model's field renamedcheckpoints[x].coordinatescheckpoints[x].coordinate
New event code and reason code are added
-Event code
picked_up
signed_by_customer
Reason code
outside_delivery_limits
not_what_customer_ordered
package_oversized_overweight
ChangeBeforeAfter
as-webhook-version header’s value2023-102024-01
New tracking model's field-shipping_method
location_id
carbon_emissions
checkpoints[x].events
Tracking model's field renamedaftership_estimated_delivery_date.confidence_scoreaftership_estimated_delivery_date.confidence_code
ChangeBeforeAfter
New request header-There is a new request header as-webhook-version e.g. "2023-10" added in the versioned Webhook.
Tracking model's field renameddelivery_timetransit_time
Transit time formula updatedPick up date is considered as 1 transit day

When the shipment is delivered:
Transit time (in day) = Delivered date - picked up date + 1

When the shipment is not delivered:
Transit time (in day) = Current date - picked up date + 1
Pick up date is not considered as 1 day in transit

When the shipment is delivered:
Transit time (in day) = Delivered date - picked up date

When the shipment is not delivered:
Transit time (in day) = Current date - picked up date
The allowed values of first_estimated_delivery.source has been changed"Carrier EDD", "AI Predictive EDD", "Custom EDD", "Order EDD""Carrier EDD", "AfterShip EDD", "Custom EDD", "Order EDD"
The allowed values of latest_estimated_delivery.source has been changed"Carrier EDD", "AI Predictive EDD", "Custom EDD", "Order EDD""Carrier EDD", "AfterShip EDD", "Custom EDD", "Order EDD"
UpdateExample
A new user agent header will be appended to our webhook requests. The user agent header in webhook requests can provide valuable information to the server and help to improve the performance, security, and reliability of the system.User-Agent: AfterShipTrackingWebhook/4.0.0 (https://www.aftership.com)
UpdateExample
New field order_tags added as part of the tracking object. The field indicates the date and time when the order is created."order_tags": ["unfulfilled", "unpaid"]
UpdateExample
New field 'on_time_status' and 'on_time_difference' added as part of the tracking object. The field indicates whether the tracking delivery is on time or not."on_time_status": "late", "on_time_difference": 3;
UpdateExample
Webhook headers key case updated. No changes are made in the header key, header content, and body section. As HTTP headers naming is conventionally case-insensitive, your code should treat these headers in a case-insensitive manner. If your server is not compliant to process HTTP headers correctly, webhook data processing may fail at your end. Please review the latest webhook header sample for the latest version.
UpdateExample
New field order_date added as part of the tracking object. The field indicates the date and time when the order is created.For example, "order_date": "2021-01-01T08:52:54Z"
UpdateExample
New subtag is added as part of the tracking and checkpoint object
A new subtag EXCEPTION_013 is added.
New field courier_redirect_link added in tracking object. Delivery instructions (delivery date or address) can be modified by visiting the link if supported by a carrier.
UpdateExample
New tag and subtag is added as part of the tracking and checkpoint object
A new tag AvailableForPickup is added
The existing subtag OutForDelivery_002 is replaced with the new subtag AvailableForPickup_001
UpdateExample
first_attempted_at (string) - Time of the first delivery attempt made by the carrier"first_attempted_at": "2020-02-24T05:43:38+00:00"
courier_tracking_link (string, URL) - Courier website direct tracking URL"courier_tracking_link": "https://www.fedex.com/apps/fedextrack/?tracknumbers=111111111111&cntry_code=US"
raw_tag (string): - Status code returned by carriers"raw_tag": "FPX_L_RPIF"
UpdateExample
Add digital signature aftership-hmac-sha256 in the request header. This signature is generated by encrypting the webhook body with the webhook secret using SHA256
UpdateExample
order_promised_delivery_date (String, YYYY-MM-DD)"order_promised_delivery_date": "2019-04-23"
delivery_type (String, Enum) Available options: pickup_at_store, pickup_at_courier, door_to_door"delivery_type": "door_to_door"
pickup_location (String)"pickup_location": "Store branch"
pickup_note (String)"pickup_note": "some free text"