Understanding Tracking Number Formats by Carrier
Every carrier has a unique tracking number format. Understanding these formats helps with carrier auto-detection, input validation, and debugging tracking issues. This guide covers the most common formats from major carriers worldwide.
Why Tracking Number Formats Matter
When a customer enters a tracking number, your application needs to:
- Validate — Is this a real tracking number or a typo?
- Identify the carrier — Which carrier should we query?
- Route correctly — International numbers may need multiple carrier lookups
International Standard: S10 (UPU)
The Universal Postal Union (UPU) defines the S10 standard for international mail tracking:
Format: AALNNNNNNNNLAA
││ │││
││ ││└─ Country code (2 letters)
││ │└── Check digit (1 digit)
││ └─── Serial number (8 digits)
│└───────────── Service indicator (1 letter)
└────────────── Service type (1 letter)
Examples:
EA123456789KR— Korea Post EMSRR987654321JP— Japan Post Registered MailCP111222333US— USPS International Parcel
Service types:
| Prefix | Service |
|---|---|
| EA-EZ | EMS |
| RA-RZ | Registered Mail |
| CA-CZ | Parcels |
| LA-LZ | Letter Post |
Korean Carriers
CJ Logistics (CJ대한통운)
- Format: 10-12 digits
- Pattern:
^\\d{10,12}$ - Example:
1234567890,123456789012
Lotte Global Logistics (롯데택배)
- Format: 12 digits
- Pattern:
^\\d{12}$ - Example:
123456789012
Hanjin Express (한진택배)
- Format: 10 or 12 digits
- Pattern:
^\\d{10}$|^\\d{12}$ - Example:
1234567890
Korea Post (우체국택배)
- Format: 13 digits (domestic) or S10 format (international)
- Pattern:
^\\d{13}$or S10 - Example:
1234567890123,EA123456789KR
Japanese Carriers
Yamato Transport (ヤマト運輸)
- Format: 12 digits, starts with specific prefixes
- Pattern:
^\\d{12}$ - Example:
123456789012
Sagawa Express (佐川急便)
- Format: 12 digits
- Pattern:
^\\d{12}$ - Example:
123456789012
Japan Post (日本郵便)
- Format: S10 for international, 11-13 digits for domestic
- Example:
RR123456789JP,12345678901
US Carriers
USPS
- Formats vary by service:
- Priority Mail: 22 digits (
9400...) - Express Mail: 13 characters (S10 format)
- Tracking: 20-22 digits
- Priority Mail: 22 digits (
FedEx
- Format: 12, 15, or 20 digits
- Pattern:
^\\d{12}$|^\\d{15}$|^\\d{20}$ - Example:
123456789012
UPS
- Format: Starts with
1Z, 18 characters total - Pattern:
^1Z[A-Z0-9]{16}$ - Example:
1Z12345E0205271688
European Carriers
DHL
- Format: 10 or 20 digits, may start with specific prefixes
- Pattern:
^\\d{10}$|^\\d{20}$|^[A-Z]{3}\\d{7}$ - Example:
1234567890,JJD01234567890
Royal Mail (UK)
- Format: S10 format with GB country code
- Example:
RR123456789GB
Auto-Detection with WhereParcel
Instead of implementing all these patterns yourself, use WhereParcel’s auto-detection:
curl -X POST https://api.whereparcel.com/v2/track \
-H "Authorization: Bearer YOUR_API_KEY:YOUR_SECRET_KEY" \
-d '{"trackingItems": [{"carrier": "auto", "trackingNumber": "1Z12345E0205271688"}]}'
The API automatically identifies the carrier and returns results:
{
"success": true,
"data": {
"carrier": "us.ups",
"carrierName": "UPS",
"trackingNumber": "1Z12345E0205271688",
"status": "delivered"
}
}
Validation Tips
- Strip whitespace and dashes — Customers often copy tracking numbers with extra formatting
- Normalize case — S10 numbers should be uppercase
- Check length first — Quick elimination before regex matching
- Use checksum validation — S10 numbers have a check digit you can verify
function cleanTrackingNumber(input) {
return input
.replace(/[\s\-\.]/g, '') // Remove spaces, dashes, dots
.toUpperCase() // Normalize case
.trim();
}
Summary
Understanding tracking number formats helps you build better tracking experiences. But instead of maintaining carrier-detection logic yourself, consider using WhereParcel’s auto-detection feature — it handles 500+ carrier formats and is updated continuously.
For the full list of supported carriers and their formats, see our Carriers documentation.