Tracking Methods
Terminal49 offers multiple ways to start tracking your shipments or containers:Terminal49 API
Terminal49 Dashboard
Bulk CSV Upload via Email
API Integration
The most flexible way to integrate tracking into your systems is via the Terminal49 API. Submit tracking requests programmatically using the Tracking Request endpoint:- Real-time tracking initiation from your TMS or other internal systems
- Automated tracking workflows
- High-volume tracking needs
- Custom reference data and shipment organization
Tracking Number Support
Terminal49 supports tracking using three primary reference types:Master Bill of Lading (MBL)
Master Bill of Lading (MBL)
The master bill of lading is issued by the ocean carrier and serves as the contract of carriage.
Format Examples:- Maersk: MAEU9736478
- MSC: MSDUV4812756
- CMA CGM: CMDUV0946721
- MBL is typically the most reliable reference for tracking
- Include the carrier’s SCAC code when submitting
- Some carriers may not make shipment data available immediately after issuing the MBL
- Supported by all major ocean carriers
- Provides visibility from origin to destination
- Typically covers all containers in a shipment
Booking Number
Booking Number
A booking number is assigned by the carrier when space is reserved on a vessel.
Format Examples:- Maersk: MAEU785421
- ONE: OOLU3456723
- Hapag-Lloyd: HLCUEUR6703426
- Use booking numbers to begin tracking earlier in the shipping lifecycle
- Some carriers include their SCAC code at the beginning of booking numbers
- Booking numbers may be replaced by bills of lading once issued
- Available earlier than bills of lading
- May provide limited information until container assignment
- Supported by most major carriers (see Carrier Data Matrix for details)
Container Number
Container Number
A container number uniquely identifies a specific shipping container.
Format Examples:- MSCU1234567
- CMAU7654321
- OOLU8765432
- Container numbers follow ISO 6346 format (4 letters + 7 numbers)
- Always include the carrier prefix (first 4 characters)
- For multi-container shipments, you’ll need to track each container separately
- Container level detail provides the most granular tracking
- Not supported by all carriers (check Carrier Data Matrix)
- May not be available until containers are assigned to a booking
Dashboard Interface
For manual tracking or lower volumes, Terminal49’s web dashboard offers a user-friendly interface:- Log in to your Terminal49 account
- Navigate to the “Track” section
- Enter your tracking number(s) and select the carrier
- Click “Track” to begin monitoring
- Quick one-off tracking needs
- Small shipment volumes
- Testing or verification purposes
- Users who prefer a visual interface
Bulk CSV Upload via Email
For setting up tracking for multiple shipments at once:- Prepare a CSV/spreadsheet file with your tracking details
- Email the file to track@terminal49.com
- Terminal49 will process the file and begin tracking all shipments
- Initial onboarding of many shipments
- Regular batch imports from other systems
- Scheduled tracking updates
- Teams that prefer working with spreadsheets
Tracking Request API Details
When using the API to create tracking requests, you can provide a wealth of additional information to enhance your tracking experience:Basic Required Parameters
Optional Organizational Parameters
Relationship Parameters
You can associate the shipment with a customer by establishing a relationship:Example Scenarios
Track by Booking Number
Track by Booking Number
- 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
- 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
- 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
Tracking Request Lifecycle
When you submit a tracking request, it goes through several possible states:Status Transitions
Pending
Succeeded
Failed
Awaiting Manifest
Tracking Stopped
Common Failure Reasons
not_found
not_found
- Verify the reference number format and carrier code
- For new bookings or bills of lading, wait 24-48 hours and try again
- Check if the carrier supports the reference type you’re using
duplicate
duplicate
- Search for the existing shipment using the List Shipments endpoint
- Use filters to find the shipment by reference number
- Use the existing shipment data instead of creating a new tracking request
invalid_number
invalid_number
- Check for typos and correct formatting
- Ensure you’re including any required prefixes
- Verify with shipping documents that the number is correct
retries_exhausted
retries_exhausted
- Verify the reference number and carrier are correct
- For new shipments, wait a few days and submit a new tracking request
- Consider using a different reference type if available
Tracking Request Webhooks
Terminal49 sends webhook notifications at key points in the tracking request lifecycle:tracking_request.succeeded
tracking_request.succeeded
- Tracking request details (ID, reference number, type)
- Newly created shipment information
- Container details when included in the request
- Update your systems to indicate active tracking
- Store the shipment ID for future API calls
- Notify internal teams that tracking has begun
tracking_request.failed
tracking_request.failed
- Tracking request details
- Failure reason code
- Detailed error message
- Trigger alerts for manual investigation
- Implement automatic retry strategies based on failure reason
- Update internal systems with failure status
tracking_request.awaiting_manifest
tracking_request.awaiting_manifest
- Tracking request details
- Status information
- Update systems to show “pending” status
- Set reminders to check status in a few days
- Notify stakeholders about the delay
tracking_request.tracking_stopped
tracking_request.tracking_stopped
- Tracking request details
- Reason for stopping (if available)
- Update internal systems
- Archive shipment records
- Trigger cleanup processes
Managing Tracking Requests
Listing and Searching Tracking Requests
Use the tracking requests index endpoint to retrieve existing tracking requests:Starting and Stopping Tracking
Starting Tracking
To start tracking a new shipment, use the create tracking request endpoint:Stopping Tracking
To stop tracking a shipment, use the stop tracking endpoint:Testing and Development
Terminal49 provides test tracking numbers for development and integration testing:Test Tracking Numbers
Test Tracking Numbers
TEST-TR-SUCCEEDED- Always succeeds and creates a test shipmentTEST-TR-FAILED- Always fails with a “not_found” reasonTEST-TR-AWAITING-MANIFEST- Simulates an awaiting manifest stateTEST-TR-DELAYED- Simulates a delayed processing state before succeeding
Sandbox Environment
Sandbox Environment
- Base URL:
https://sandbox-api.terminal49.com/v2 - Requires a separate sandbox API key
- Simulates real-world scenarios with predictable outcomes
- Supports all the same endpoints as production
Best Practices
- Provide SCAC codes: Always include the carrier’s SCAC code to improve tracking success rates.
- Use webhooks: Set up webhook notifications instead of polling for status updates.
- Handle retries: Implement a reasonable retry strategy for failed tracking requests.
- Track early: Start tracking as soon as you have a booking number or bill of lading.
- Add reference data: Include your own reference numbers and tags to make shipments easily identifiable.
- Test thoroughly: Use the test tracking numbers to validate your integration.
- Track by MBL when possible: Master Bills of Lading generally provide the most reliable tracking.
- Check carrier support: Refer to the Carrier Data Matrix to verify which tracking methods are supported by each carrier.