Endpoint Purpose
Submitting a tracking request tells Terminal49 to start monitoring a specific shipment for you. This is typically the first step in the tracking workflow.Business Use Cases
- Initial Tracking Setup: Start tracking a new container shipment when you receive a bill of lading or booking confirmation.
- Customer Onboarding: Quickly set up tracking for a customer’s shipments when they provide their shipping documents.
- Bulk Import: Programmatically submit multiple tracking requests to monitor your entire inventory in transit.
Example Scenarios
Track by Bill of Lading
Track by Bill of Lading
Request
Response
- The bill of lading is typically the most reliable identifier for tracking shipments.
- The
statuswill initially bependingwhile Terminal49 processes your request. - Once processing completes, you’ll receive a webhook notification and the status will change to
succeededorfailed.
Track by Container Number
Track by Container Number
Request
Response
- Container number tracking support varies between carriers. Refer to the Carrier Data Matrix to verify support.
- Container numbers should include the carrier prefix (e.g., MSCU for MSC containers).
- Container tracking can sometimes fail if the container is very new or not yet associated with a booking in the carrier’s system.
Using Test Numbers
Using Test Numbers
Request
Response
- Using test numbers is perfect for development and testing your integration.
TEST-TR-SUCCEEDEDwill always trigger a successful tracking response.TEST-TR-FAILEDwill always trigger a failed tracking response.- These test numbers will trigger corresponding webhook events for complete testing.
Error Handling
Error Handling
Request
Response
- This example shows a validation error for an invalid SCAC code.
- Common errors include invalid SCAC codes, improperly formatted request numbers, or duplicate tracking requests.
- For a complete list of supported SCACs, refer to the Carrier Data Matrix.
Key Response Fields
Unique identifier for the tracking request. Store this to check status later.
Current status of the tracking request. Possible values:
pending: Request is being processedsucceeded: Container/shipment located and tracking establishedfailed: Unable to track the shipment (see failed_reason)awaiting_manifest: Bill of lading is valid but not yet available in the carrier’s systemtracking_stopped: Tracking has been stopped for this request
If status is “failed”, this field provides the reason. Common values:
duplicate: Shipment already exists in Terminal49not_found: Shipping line couldn’t find the tracking numberretries_exhausted: Maximum retries reached without successinvalid_number: Improperly formatted tracking number
See the Tracking Request Lifecycle guide for a complete list of failure reasons.
When the tracking request succeeds, this contains a reference to the created shipment.
Related Webhook Events
When creating a tracking request, you may receive the following webhook events:tracking_request.succeeded
Sent when Terminal49 successfully locates your shipment and begins tracking it. The notification includes details about the created shipment and its containers.
tracking_request.failed
Sent when Terminal49 is unable to locate your shipment after all retry attempts. Includes the failed_reason to help troubleshoot.
tracking_request.awaiting_manifest
Sent when the bill of lading number is valid but the shipment data is not yet available in the carrier’s system. Terminal49 will continue checking daily.
Related Guides & Tutorials
Tracking Request Lifecycle
Learn about the full lifecycle of a tracking request, including all possible statuses and failure reasons.
Setting Up Webhooks
Learn how to set up webhooks to receive real-time notifications about your tracking requests.
Test Numbers
Complete list of test tracking numbers you can use during development.
Bulk Tracking Tutorial
Learn how to efficiently submit and manage multiple tracking requests.
Troubleshooting
My tracking request is stuck in 'pending' status
My tracking request is stuck in 'pending' status
Problem: Your tracking request has been in “pending” status for an extended period.Solution:
- Terminal49 retries tracking requests up to 14 times over 24 hours.
- Check that the SCAC and request number are correct.
- For bill of lading numbers, note that they may remain in “awaiting_manifest” status for up to 7 days.
- If the issue persists beyond 24 hours, contact support@terminal49.com.
Tracking request failed with 'not_found'
Tracking request failed with 'not_found'
Problem: Your tracking request failed with reason “not_found”.Solution:
- Verify the tracking number format is correct (no spaces, proper prefixes).
- Confirm you’re using the correct SCAC code for the carrier.
- For newly issued bills of lading, try again in 24-48 hours as it may take time to appear in the carrier’s system.
- If using a container number, check if the carrier supports container tracking in the Carrier Data Matrix.
I received a duplicate error
I received a duplicate error
Problem: Your tracking request failed with reason “duplicate”.Solution:
- The shipment is already being tracked in Terminal49.
- Use
GET /shipmentswith a filter to find the existing shipment:
- You can access the existing shipment data instead of creating a new tracking request.
Track by Booking Number
Track by Booking Number
Scenario: You want to create a tracking request using a booking number.Example:Notes:
- Booking numbers are typically issued by the carrier early in the shipping process
- Using booking numbers allows you to start tracking earlier in the shipping lifecycle
- Booking number format varies by carrier (e.g., OOLU prefix for ONE Line bookings)
Including Reference Numbers
Including Reference Numbers
Scenario: You want to add your own reference numbers to help identify the shipment.Example:Notes:
- Reference numbers can include purchase orders, house bills of lading, invoice numbers, etc.
- You can add multiple reference numbers to a single tracking request
- These numbers will be searchable later through the API and UI
- You can use reference numbers to link shipments to your internal systems
Adding Tags
Adding Tags
Associating with a Customer
Associating with a Customer
Scenario: You’re tracking shipments on behalf of your customers and want to associate shipments with specific customers.Example:Notes:
- The customer must first be created using the Parties API
- The customer ID is used to link the shipment to the specific customer
- This association enables filtering shipments by customer
- Customer information will be included in webhook notifications when using appropriate includes
- See the Adding Customer guide for more details
For the fastest tracking setup, use the master bill of lading (MBL) number from the carrier. House bills of lading (HBL) are not supported.