ts-tracking-number
Version:
Detect and validate tracking numbers for USPS, UPS, FedEx, and other major couriers.
194 lines (193 loc) • 7.67 kB
JSON
{
"name": "UPS",
"courier_code": "ups",
"tracking_numbers": [
{
"name": "UPS",
"id": "ups",
"regex": [
"\\s*1\\s*Z\\s*(?<SerialNumber>",
"(?<ShipperId>(?:[A-Z0-9]\\s*){6,6})",
"(?<ServiceType>(?:[A-Z0-9]\\s*){2,2})",
"(?<PackageId>(?:[A-Z0-9]\\s*){7,7}))",
"(?<CheckDigit>[0-9]\\s*)"
],
"validation": {
"checksum": {
"name": "mod10",
"evens_multiplier": 1,
"odds_multiplier": 2
}
},
"tracking_url": "https://wwwapps.ups.com/WebTracking/track?track=yes&trackNums=%s",
"additional": [
{
"name": "Service Type",
"regex_group_name": "ServiceType",
"lookup": [
{
"matches": "01",
"name": "UPS United States Next Day Air (Red)"
},
{
"matches": "02",
"name": "UPS United States Second Day Air (Blue)"
},
{
"matches": "03",
"name": "UPS United States Ground"
},
{
"matches": "12",
"name": "UPS United States Third Day Select"
},
{
"matches": "13",
"name": "UPS United States Next Day Air Saver (Red Saver)"
},
{
"matches": "15",
"name": "UPS United States Next Day Air Early A.M."
},
{
"matches": "22",
"name": "UPS United States Ground - Returns Plus - Three Pickup Attempts"
},
{
"matches": "32",
"name": "UPS United States Next Day Air Early A.M. - COD"
},
{
"matches": "33",
"name": "UPS United States Next Day Air Early A.M. - Saturday Delivery, COD"
},
{
"matches": "41",
"name": "UPS United States Next Day Air Early A.M. - Saturday Delivery"
},
{
"matches": "42",
"name": "UPS United States Ground - Signature Required"
},
{
"matches": "44",
"name": "UPS United States Next Day Air - Saturday Delivery"
},
{
"matches": "66",
"name": "UPS United States Worldwide Express"
},
{
"matches": "72",
"name": "UPS United States Ground - Collect on Delivery"
},
{
"matches": "78",
"name": "UPS United States Ground - Returns Plus - One Pickup Attempt"
},
{
"matches": "90",
"name": "UPS United States Ground - Returns - UPS Prints and Mails Label"
},
{
"matches": "A0",
"name": "UPS United States Next Day Air Early A.M. - Adult Signature Required"
},
{
"matches": "A1",
"name": "UPS United States Next Day Air Early A.M. - Saturday Delivery, Adult Signature Required"
},
{
"matches": "A2",
"name": "UPS United States Next Day Air - Adult Signature Required"
},
{
"matches": "A8",
"name": "UPS United States Ground - Adult Signature Required"
},
{
"matches": "A9",
"name": "UPS United States Next Day Air Early A.M. - Adult Signature Required, COD"
},
{
"matches": "AA",
"name": "UPS United States Next Day Air Early A.M. - Saturday Delivery, Adult Signature Required, COD"
},
{
"matches": "YW",
"name": "UPS SurePost - Delivered by the USPS"
}
]
}
],
"test_numbers": {
"valid": [
"1Z5R89390357567127",
"1Z879E930346834440",
"1Z410E7W0392751591",
"1Z8V92A70367203024",
" 1 Z 8 V 9 2 A 7 0 3 6 7 2 0 3 0 2 4 ",
"1ZXX3150YW44070023"
],
"invalid": [
"2Z5R89390357567127",
"1A5R89390357567127",
"1Z1111111111111111"
]
}
},
{
"name": "UPS Waybill",
"regex": [
"\\s*(?<ServiceType>([AHJKTV]\\s*){1})",
"(?<SerialNumber>(?:[0-9]\\s*){9})",
"(?<CheckDigit>[0-9]\\s*){1}"
],
"validation": {
"checksum": {
"name": "mod10",
"evens_multiplier": 1,
"odds_multiplier": 2
}
},
"additional": [
{
"name": "Service Type",
"regex_group_name": "ServiceType",
"lookup": [
{
"matches": "J",
"name": "UPS Next Day Express"
},
{
"matches": "K",
"name": "UPS Ground"
},
{
"matches": "V",
"name": "UPS WorldWide Express Saver"
}
]
}
],
"tracking_url": "https://wwwapps.ups.com/WebTracking/track?track=yes&trackNums=%s",
"test_numbers": {
"valid": [
"K1506235620",
"K 150 623 562 0",
"K2479825491",
"J4603636537",
"V0490119172",
"V0431105627"
],
"invalid": [
"K1506235622",
"K2479825492",
"J4603636538",
"V0411335627",
"V0423305841"
]
}
}
]
}