How to migrate from Aftership to TrackingMore?
This guide outlines the technical adaptations needed when migrating from AfterShip to TrackingMore for tracking API users. It covers all the crucial steps to help you ensure a smooth transition.
How to Migrate from AfterShip to TrackingMore
Transitioning from AfterShip to TrackingMore is very easy if you’ve already used AfterShip’s tracking API. You won’t need to make many changes to your existing system, as TrackingMore’s tracking API is industry-standardized like AfterShip’s.
Simply follow the step-by-step guide below to complete the migration!
1. Matching Carrier Codes
The carrier code is mandatory for registering tracking numbers in TrackingMore's system. It is suggested that you list the carrier names and carrier codes used by AfterShip and TrackingMore, and identify the differences. Start by listing all your current carrier partners and mapping AfterShip’s carrier codes to those of TrackingMore.
For mainstream carriers, the carrier codes are nearly identical, so adjustments are rarely necessary. For example, the table below shows what AfterShip and TrackingMore use to refer to the world's top 5 carriers:
Carrier Name | AfterShip Carrier Code | TrackingMore Code |
---|---|---|
USPS | usps | usps |
UPS | ups | ups |
DHL | dhl | dhl |
FedEx | fedex | fedex |
Royal Mail | royal-mail | royal-mail |
Please pay keen attention to the discrepancies between AfterShip and TrackingMore carrier codes.
2. Verify Required Tracking Fields for Carriers
In addition to the tracking number and carrier code, some carriers require additional fields such as the postal code, the last four digits of a phone number, or the shipment date for data security purposes.
AfterShip's and TrackingMore's required fields may vary by carrier. For instance, AfterShip requires the destination postal code for tracking DPD Local, while TrackingMore requires such information for multiple DPD branches, including DPD Switzerland, Netherlands, Czech Republic, and Belgium.
You could reference TrackingMore’s API documentation under "Additional Tracking Fields" or use the "Get All Couriers" API to identify specific required fields for each carrier.
3. Compare Fields in the Tracking Object
Both AfterShip and TrackingMore use Tracking object to group the data points (hereinafter referred to as "fields") of tracking information that can be stored and responded to. Generally, over 50% of the Tracking object fields of AfterShip directly correspond to those of TrackingMore, which allows for relatively few changes while migrating. But if you are currently using a broad range of fields, you might need to make more adjustments to ensure a seamless transition.
To facilitate your changes, we’ve prepared a reference document comparing the fields of AfterShip's and TrackingMore's Tracking object side by side. Please note that the document includes 5 different sheets, namely, basic tracking info, order details, tracking milestones, estimated delivery, and carrier information. What's more, differences are marked in red, and missing fields are indicated by slashes (/), as shown in the table below.
AfterShip Field | AfterShip Definition | TrackingMore Field | TrackingMore Definition |
---|---|---|---|
id | Tracking ID | id | Tracking ID |
tracking_number | Tracking number | tracking_number | Tracking number |
/ | / | reference_number | Another tracking number of the package, only provided by some couriers |
slug | Unique courier code | courier_code | Unique courier code |
created_at | The date and time when the shipment was added (time zone: GMT +0) | created_at | The date and time when the shipment was added |
updated_at | The date and time the shipment was updated(time zone: GMT +0) | update_at | Date and time of the latest tracking update |
active | Whether or not AfterShip will continue tracking the shipments | updating | Whether or not TrackingMore will continue tracking the shipments |
tag | Current status of tracking | delivery_status | Current status of tracking |
subtag | Current subtag of checkpoint | substatus | Current substatus of tracking |
subtag_message | Normalized tracking message | / | / |
transit_time | Total transit time in days | transit_time | Total transit time in days |
expected_delivery | The estimated delivery date provided by the carrier | scheduled_delivery_date | The estimated delivery date provided by the carrier |
/ | / | scheduled_address | Scheduled delivery address |
4. Register Tracking Numbers in Bulk
TrackingMore API supports not only the "Create a Tracking" method but also the "Create Trackings" method that allows you to register up to 40 tracking numbers through one API call. You can streamline your workflow by taking advantage of the "Create Trackings" method, if you want to create all new trackings in bulk after the order processing time on every workday.
Here's the major difference between the two methods of TrackingMore API: the "Create a Tracking" method immediately queries and responds with the tracking information, while the "Create Trackings" method responds with HTTP status code and the unique tracking IDs assigned by TrackingMore. The latter requires you to use the "Get Trackings" method or Webhook to get real-time updates.
5. Utilize SDKs for Development and Testing
Like AfterShip, TrackingMore offers SDKs in seven major programming languages. These SDKs include sample codes that allow you to leverage all key functions of our tracking API. Follow the README file to finish installation, replace “your api key” in the file with your own API key, and you can begin testing the program you've modified in the previous steps.
Please note that TrackingMore SDKs don't contain codes that implement API rate limiting. Therefore, you should add codes by yourself to avoid the "TooManyRequest" error.
If you need to track a large volume of shipments, you can submit a request to TrackingMore and get the API rate limit raised to up to 100 QPS.
6. Set Up Webhooks
TrackingMore and AfterShip provide the same number of Webhook retry attempts, and intervals are also the same. So are the ways used for Webhook signature verification. The primary difference is that AfterShip supports up to 10 Webhook endpoints, while TrackingMore supports 4 - each of them can be configured to receive notifications of different tracking statuses.
If you have configured Webhook endpoints for each AfterShip tracking status, consider consolidating them into three groups in TrackingMore's Webhook settings: all statuses, normal statuses (such as In Transit, Out for Delivery, and Delivered), and statuses that require your special attention (i.e., Exception, Failed Attempt, Expired).
If you only use a single Webhook endpoint to get all shipment tracking statuses, you don't need to make significant adjustments.
7. Use Dedicated API Keys or OAuth Credentials to Enhance Update Frequency
If you ship parcels by partnering directly with carriers that provide you with tracking API keys or OAuth credentials to receive tracking updates, with TrackingMore, you don't need to integrate your system with these carriers one by one.
Log in to TrackingMore, go to "Settings," and choose "Carriers". Here, you can add your API keys or OAuth credentials so that TrackingMore will create dedicated tracking processes to speed up tracking for you.
N.B.: We promise that we will never reveal to any third-party your API keys and OAuth credentials, which will only be used to track your own shipments.
Additional Support
This guide covers the key technical steps that you need to follow in order to successfully migrate from Aftership Tracking API to TrackingMore Tracking API. If you encounter any challenges, please contact our 24/7 support or your dedicated account manager. Our technical team is here to help ensure a seamless transition.
Note: The data in this article is current as of September 30, 2024.
Updated on: 19/06/2025
Thank you!