Tracking API Specification
Overview
This API allows customers to track any shipment in the system with a tracking number (Pro # or Reference #) and a User ID and Password to authenticate.
- Getting Started
- Status and Error Codes
- Shipment Status Codes and Descriptions
- Endpoints
- Security/Authentication
- Data Format
- Resources
Getting Started
The following functions can be used:
| Function | Description |
|---|---|
| HelloWorld | Industry standard to test connectivity or wake the service before calling other functions. |
| PilotAPITracking | Allows users to get a basic set of tracking details in response. Based on Maersk Pro # input. |
| PilotAPIDetailTracking | Allows users to get an expanded set of tracking details in response. Based on Maersk Pro # input. |
| PilotAPIDetailTrackingHD | Allows users to get an expanded set of tracking details in response with Home Delivery (HD) Appointment Window information included. Based on Pilot’s Pro # input. |
| PilotAPIMultiDetailTrackingHD | Allows users to get an expanded set of tracking details in response with Home Delivery (HD) Appointment Window information included. Based on multiple customer Reference # values. |
| PilotAPIReferenceTracking | Allows users to get a basic set of tracking details in response. Based on customer Reference # input. |
| PilotAPIReferenceDetailTrackingHD | Allows users to get an expanded set of tracking details in response with Home Delivery (HD) Appointment Window information included. Based on customer Reference # input. |
Status and Error Codes
| Code | Description |
|---|---|
| ERROR_201 | INVALID USERID/PASSWORD |
| ERROR_202 | INVALID API VERSION |
| ERROR_301 | TRACKING SERVICE NOT AVAILABLE |
| ERROR_101 | INVALID TRACKING NUMBER |
| ERROR_202 | NO TRACKING INFO FOUND |
Shipment Status Codes and Descriptions
| Code | Description | Type |
|---|---|---|
| ALR | DEPARTED PILOT LOCATION | GEN |
| APT | APPOINTMENT SCHEDULED | HD |
| ARP | ARRIVED AT DEST PORT | GEN |
| BRD | BOOKING ROLLED | GEN |
| CEH | CUSTOMS EXAM HOLD | GEN |
| COB | CONFIRMED ON BOARD | GEN |
| CON1 | NO ANSWER | HD |
| CON2 | LEFT MESSAGE | HD |
| CTC | AWAITING CONTACT | HD |
| DAP | DELIVERY APPOINTMENT SCHEDULED | HD |
| DEL | DELIVERED | GEN |
| DHC | DESTINATION HOLD CNEE PICK UP | GEN |
| DLY | PACKAGE DELAYED | EXC |
| DNH | DEPARTED PILOT NET HUB | GEN |
| DRA | DRAYED | GEN |
| DTB | DOCUMENTS TURNED OVER TO BROKER | GEN |
| EXC1 | NOT HOME UPON DELIVERY | EXC |
| EXC10 | BAD ADDRESS | EXC |
| EXC13 | RECONSIGNED/REROUTED | EXC |
| EXC15 | CONSIGNEE NOT READY FOR DELIVERY | EXC |
| EXC16 | LOST | EXC |
| EXC17 | CONSIGNEE REFUSED | EXC |
| EXC2 | MISSED DELIVERY | EXC |
| EXC21 | BAD PHONE NUMBER | EXC |
| EXC24 | NO PHONE NUMBER PROVIDED | EXC |
| EXC5 | CONSIGNEE RESCHEDULED APPOINTMENT | EXC |
| EXC6 | CONSIGNEE CANCELLED ORDER | EXC |
| EXC7 | CONSIGNEE CANCELLED APPOINTMENT | EXC |
| EXC8 | UNABLE TO CONTACT CONSIGNEE | EXC |
| IBN | BROKER NOTIFIED | GEN |
| ICC | CUSTOMS CLEARANCE INITIATED | GEN |
| IDR | DOCUMENTS RECOVERED | GEN |
| IDS | DELIVERY SCHEDULED | GEN |
| IIB | INITIAL BOOKING | GEN |
| ING | INLAND TO GATEWAY | GEN |
| IRS | RELEASED FROM CUSTOMS | GEN |
| IUB | UPDATED BOOKING | GEN |
| IWP | WAITING FOR PICKUP | GEN |
| NEW | SHIPMENT INFORMATION SENT TO PILOT | GEN |
| NSH | NOT RECEIVED AT PILOT HUB | EXC |
| OFD | OUT FOR DELIVERY | GEN |
| PRE | PRE-CALL | HD |
| PRE1 | PRE-EMAIL | HD |
| PU | PICKED UP | GEN |
| PUA | PICKUP SCHEDULED | GEN |
| RAG | RECOVERED AT DEST - BYND AGENT | GEN |
| REV | ARRIVED AT PILOT LOCATION | GEN |
| RNH | RECEIVED AT PILOT NET HUB | GEN |
| RSH | RECOVERED AT DEST - SHORT | EXC |
| SLD | SAILED | GEN |
| SRC | SHIPMENT RELEASED FROM CUSTOMS | GEN |
| TDP | TENDERED AT PORT | GEN |
| THD | TRANSFERRED TO HDA BY DEST | HD |
| TRN | TRANSFERRED TO BEYOND AGENT | GEN |
| TSD | TRANSHIP DELAY | GEN |
| TSP | TRANSHIPPED | GEN |
| VSD | VESSEL DELAY | GEN |
| XML | SHIPMENT INFORMATION SENT TO PILOT | GEN |
| XXX | CONSIGNEE CANCELLED ORDER | EXC |
| Type | Description | Note |
|---|---|---|
| GEN | General | Applies to all shipments |
| HD | Home Delivery | Applies only to Home Delivery shipments |
| EXC | Exception | — |
Endpoints
Live
https://wsi.pilotdelivers.com/pilotpartnertracking.asmx
Dev/Test
https://wsi.pilotdelivers.com/test/pilotpartnertracking.asmx
RESTful (XML Only)
https://wsi.pilotdelivers.com/pilotpartnertracking.aspx
WSDL
https://wsi.pilotdelivers.com/pilotpartnertracking.asmx?WSDL
Security/Authentication
Maersk uses a basic username/password combination for authentication to make sure the API caller is using valid credentials to get data back. This is supplied in the format of addition field within the XML request in each API call.
<Validation>
<UserID>string</UserID>
<Password>string</Password>
</Validation>
PII Access Control and Masking
To protect customer privacy and comply with data protection standards, the API enforces PII masking for users or accounts that do not have access — specifically when the Tracking API caller is not the bill-to party or shipper for the shipment they are requesting information about. Behavior:
- If the requesting user has appropriate access, PII (e.g. Name, Address , Address2 , PhoneNumber) is returned in plain text.
- Personally Identifiable Information (PII) fields are masked for users who do not have the necessary access permissions. By default, these fields are returned in a masked format using the value [private], which is configured as the default placeholder in the system settings.
This applies to endpoints such as: - PilotAPIDetailTracking - PilotAPIDetailTrackingHD - PilotAPIMultiDetailTrackingHD - PilotAPIReferenceDetailTrackingHD
#### Example
##### For users with access
<PackageShipper>
<Name>string</Name>
<Address>string</Address>
<Address2>string</Address2>
<City>string</City>
<StateProvince>string</StateProvince>
<PostalCode>string</PostalCode>
<CountryCode>string</CountryCode>
<PhoneNumber>string</PhoneNumber>
<AirtrakCustNum>string</AirtrakCustNum>
<Airport>string</Airport>
<OwnerStation/>
</PackageShipper>
<PackageConsignee>
<Name>string</Name>
<Address>string</Address>
<Address2/>
<City>string</City>
<StateProvince>string</StateProvince>
<PostalCode>string</PostalCode>
<CountryCode>string</CountryCode>
<PhoneNumber>string</PhoneNumber>
<AirtrakCustNum>string</AirtrakCustNum>
<Airport>string</Airport>
<OwnerStation/>
</PackageConsignee>
For users without access
<PackageShipper>
<Name>[private]</Name>
<Address>[private]</Address>
<Address2>[private]</Address2>
<City>string</City>
<StateProvince>string</StateProvince>
<PostalCode>string</PostalCode>
<CountryCode>string</CountryCode>
<PhoneNumber>[private]</PhoneNumber>
<AirtrakCustNum>string</AirtrakCustNum>
<Airport>string</Airport>
<OwnerStation/>
</PackageShipper>
<PackageConsignee>
<Name>[private]</Name>
<Address>[private]</Address>
<Address2>[private]</Address2>
<City>string</City>
<StateProvince>string</StateProvince>
<PostalCode>string</PostalCode>
<CountryCode>string</CountryCode>
<PhoneNumber>[private]</PhoneNumber>
<AirtrakCustNum>string</AirtrakCustNum>
<Airport>string</Airport>
<OwnerStation/>
</PackageConsignee>
Data Format
See Retrieving Data.
Timestamps
Date/time values are expressed in ISO 8601 format, that is, complete date plus hours, minutes, and seconds: YYYY-MM- DDThh:mm:ssTZD (e.g., 2020-07-16T19:20:30+01:00), in the time zone of the event and follow the W3C standards.