tracking_number 1.3.2 → 1.3.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,279 @@
1
+ {
2
+ "name": "FedEx",
3
+ "courier_code": "fedex",
4
+ "tracking_numbers": [
5
+ {
6
+ "name": "FedEx Express (12)",
7
+ "regex": "\\s*(?<SerialNumber>([0-9]\\s*){11})(?<CheckDigit>[0-9]\\s*)",
8
+ "validation": {
9
+ "checksum": {
10
+ "name": "sum_product_with_weightings_and_modulo",
11
+ "weightings": [
12
+ 3,
13
+ 1,
14
+ 7,
15
+ 3,
16
+ 1,
17
+ 7,
18
+ 3,
19
+ 1,
20
+ 7,
21
+ 3,
22
+ 1
23
+ ],
24
+ "modulo1": 11,
25
+ "modulo2": 10
26
+ }
27
+ },
28
+ "tracking_url": "https://www.fedex.com/apps/fedextrack/?tracknumbers=%s",
29
+ "test_numbers": {
30
+ "valid": [
31
+ "986578788855",
32
+ "477179081230",
33
+ "799531274483",
34
+ "790535312317",
35
+ " 7 9 0 5 3 5 3 1 2 3 1 7 ",
36
+ "974367662710"
37
+ ],
38
+ "invalid": [
39
+ "996578788855"
40
+ ]
41
+ }
42
+ },
43
+ {
44
+ "name": "FedEx Express (34)",
45
+ "regex": [
46
+ "\\s*1\\s*0\\s*[0-9]\\s*[0-9]\\s*[0-9]\\s*",
47
+ "([0-9]\\s*){10}",
48
+ "(?<DestinationZip>([0-9]\\s*){5})",
49
+ "(?<SerialNumber>([0-9]\\s*){13})",
50
+ "(?<CheckDigit>[0-9]\\s*)"
51
+ ],
52
+ "validation": {
53
+ "checksum": {
54
+ "name": "sum_product_with_weightings_and_modulo",
55
+ "weightings": [
56
+ 1,
57
+ 7,
58
+ 3,
59
+ 1,
60
+ 7,
61
+ 3,
62
+ 1,
63
+ 7,
64
+ 3,
65
+ 1,
66
+ 7,
67
+ 3,
68
+ 1
69
+ ],
70
+ "modulo1": 11,
71
+ "modulo2": 10
72
+ }
73
+ },
74
+ "tracking_url": "https://www.fedex.com/apps/fedextrack/?tracknumbers=%s",
75
+ "test_numbers": {
76
+ "valid": [
77
+ "1001921334250001000300779017972697",
78
+ "1001921380360001000300639585804382",
79
+ "1001901781990001000300617767839437",
80
+ " 1 0 0 1 9 0 1 7 8 1 9 9 0 0 0 1 0 0 0 3 0 0 6 1 7 7 6 7 8 3 9 4 3 7 ",
81
+ "1002297871540001000300790695517286",
82
+ "1027590111820004833500785458233610"
83
+ ],
84
+ "invalid": [
85
+ "1001901781990001000300617767839438"
86
+ ]
87
+ }
88
+ },
89
+ {
90
+ "name": "FedEx SmartPost",
91
+ "description": "IMpb CO3 standard",
92
+ "regex": [
93
+ "\\s*(?:",
94
+ "(?:(?<RoutingApplicationId>4\\s*2\\s*0\\s*)(?<DestinationZip>([0-9]\\s*){5}))?",
95
+ "(?<ApplicationIdentifier>9\\s*2\\s*)",
96
+ ")?",
97
+ "(?<SerialNumber>",
98
+ "(?<ServiceType>([0-9]\\s*){3})",
99
+ "(?<ShipperId>([0-9]\\s*){9})",
100
+ "(?<PackageId>([0-9]\\s*){7})",
101
+ ")",
102
+ "(?<CheckDigit>([0-9]\\s*))"
103
+ ],
104
+ "validation": {
105
+ "checksum": {
106
+ "name": "mod10",
107
+ "evens_multiplier": 3,
108
+ "odds_multiplier": 1
109
+ },
110
+ "serial_number_format": {
111
+ "prepend_if": {
112
+ "matches_regex": "^(?!92).+",
113
+ "content": "92"
114
+ }
115
+ }
116
+ },
117
+ "tracking_url": "https://www.fedex.com/apps/fedextrack/?tracknumbers=%s",
118
+ "test_numbers": {
119
+ "valid": [
120
+ "61299998820821171811",
121
+ " 6 1 2 9 9 9 9 8 8 2 0 8 2 1 1 7 1 8 1 1 ",
122
+ "9261292700768711948021",
123
+ "420 11213 92 6129098349792366623 8",
124
+ "92 6129098349792366623 8",
125
+ "6129098349792366623 8"
126
+ ],
127
+ "invalid": [
128
+ "9261292700768711948020",
129
+ "420 11213 6129098349792366623 8",
130
+ "420 92 6129098349792366623 8",
131
+ "11213 92 6129098349792366623 8"
132
+ ]
133
+ }
134
+ },
135
+ {
136
+ "name": "FedEx Ground",
137
+ "regex": "\\s*(?<SerialNumber>([0-9]\\s*){14})(?<CheckDigit>([0-9]\\s*))",
138
+ "validation": {
139
+ "checksum": {
140
+ "name": "mod10",
141
+ "evens_multiplier": 1,
142
+ "odds_multiplier": 3
143
+ }
144
+ },
145
+ "tracking_url": "https://www.fedex.com/apps/fedextrack/?tracknumbers=%s",
146
+ "test_numbers": {
147
+ "valid": [
148
+ "0414 4176 0228 964",
149
+ "5682 8361 0012 000",
150
+ " 5 6 8 2 8 3 6 1 0 0 1 2 0 0 0 ",
151
+ "5682 8361 0012 734"
152
+ ],
153
+ "invalid": [
154
+ "5682 8361 0012 732"
155
+ ]
156
+ }
157
+ },
158
+ {
159
+ "name": "FedEx Ground (SSCC-18)",
160
+ "regex": "\\s*(?<ShippingContainerType>([0-9]\\s*){2})(?<SerialNumber>([0-9]\\s*){15})(?<CheckDigit>[0-9]\\s*)",
161
+ "tracking_url": "https://www.fedex.com/apps/fedextrack/?tracknumbers=%s",
162
+ "validation": {
163
+ "checksum": {
164
+ "name": "mod10",
165
+ "evens_multiplier": 3,
166
+ "odds_multiplier": 1
167
+ }
168
+ },
169
+ "test_numbers": {
170
+ "valid": [
171
+ "00 0123 4500 0000 0027",
172
+ " 0 0 0 1 2 3 4 5 0 0 0 0 0 0 0 0 2 7 "
173
+ ],
174
+ "invalid": [
175
+ "000000000000000001"
176
+ ]
177
+ },
178
+ "additional": [
179
+ {
180
+ "name": "Container Type",
181
+ "regex_group_name": "ShippingContainerType",
182
+ "lookup": [
183
+ {
184
+ "matches": "00",
185
+ "name": "case/carton"
186
+ },
187
+ {
188
+ "matches": "01",
189
+ "name": "pallet"
190
+ },
191
+ {
192
+ "matches": "02",
193
+ "name": "larger than a pallet"
194
+ },
195
+ {
196
+ "matches": "04",
197
+ "name": "internally defined for intra-company use"
198
+ }
199
+ ]
200
+ }
201
+ ]
202
+ },
203
+ {
204
+ "name": "FedEx Ground 96 (22)",
205
+ "regex": [
206
+ "\\s*(?<ApplicationIdentifier>9\\s*6\\s*)",
207
+ "(?<SCNC>([0-9]\\s*){2})",
208
+ "(?<ServiceType>([0-9]\\s*){3})",
209
+ "(?<SerialNumber>(?<ShipperId>([0-9]\\s*){7})(?<PackageId>([0-9]\\s*){7}))",
210
+ "(?<CheckDigit>[0-9]\\s*)"
211
+ ],
212
+ "validation": {
213
+ "checksum": {
214
+ "name": "mod10",
215
+ "evens_multiplier": 1,
216
+ "odds_multiplier": 3
217
+ }
218
+ },
219
+ "tracking_url": "https://www.fedex.com/apps/fedextrack/?tracknumbers=%s",
220
+ "test_numbers": {
221
+ "valid": [
222
+ "9611020987654312345672",
223
+ " 9 6 1 1 0 2 0 9 8 7 6 5 4 3 1 2 3 4 5 6 7 2 "
224
+ ],
225
+ "invalid": [
226
+ "9600000000000000000001"
227
+ ]
228
+ }
229
+ },
230
+ {
231
+ "name": "FedEx Ground GSN",
232
+ "regex": [
233
+ "\\s*(?<ApplicationIdentifier>9\\s*6\\s*)",
234
+ "(?<SCNC>([0-9]\\s*){2})",
235
+ "([0-9]\\s*){5}",
236
+ "(?<GSN>([0-9]\\s*){10})",
237
+ "[0-9]\\s*",
238
+ "(?<SerialNumber>([0-9]\\s*){13})",
239
+ "(?<CheckDigit>[0-9]\\s*)"
240
+ ],
241
+ "validation": {
242
+ "checksum": {
243
+ "name": "sum_product_with_weightings_and_modulo",
244
+ "weightings": [
245
+ 1,
246
+ 7,
247
+ 3,
248
+ 1,
249
+ 7,
250
+ 3,
251
+ 1,
252
+ 7,
253
+ 3,
254
+ 1,
255
+ 7,
256
+ 3,
257
+ 1
258
+ ],
259
+ "modulo1": 11,
260
+ "modulo2": 10
261
+ }
262
+ },
263
+ "tracking_url": "https://www.fedex.com/apps/fedextrack/?tracknumbers=%s",
264
+ "test_numbers": {
265
+ "valid": [
266
+ "9622001900000000000000776632517510",
267
+ "9622001560000000000000794808390594",
268
+ "9622001560001234567100794808390594",
269
+ " 9 6 2 2 0 0 1 5 6 0 0 0 1 2 3 4 5 6 7 1 0 0 7 9 4 8 0 8 3 9 0 5 9 4 ",
270
+ "9632001560123456789900794808390594"
271
+ ],
272
+ "invalid": [
273
+ "9622001560001234567100794808390595",
274
+ "9622001560001234567100794808390597"
275
+ ]
276
+ }
277
+ }
278
+ ]
279
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "Landmark Global LTN",
3
+ "courier_code": "landmark",
4
+ "tracking_numbers": [
5
+ {
6
+ "name": "Landmark Global LTN",
7
+ "regex": [
8
+ "\\s*L\\s*T\\s*N\\s*(?<SerialNumber>([0-9]\\s*){8})\\s*N\\s*1"
9
+ ],
10
+ "tracking_url": "https://track.landmarkglobal.com/?search=%s",
11
+ "validation": {},
12
+ "test_numbers": {
13
+ "valid": [
14
+ "LTN74207623N1",
15
+ "LTN74209518N1",
16
+ "LTN74224021N1"
17
+ ],
18
+ "invalid": [
19
+ "LSN74209518N2",
20
+ "LSN74209518N1"
21
+ ]
22
+ }
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "LaserShip",
3
+ "courier_code": "lasership",
4
+ "tracking_numbers": [
5
+ {
6
+ "name": "LaserShip LX",
7
+ "regex": [
8
+ "\\s*L\\s*[AIEHNX]\\s*[1-3]\\s*(?<SerialNumber>([0-9]\\s*){7,7})\\s*"
9
+ ],
10
+ "validation": {},
11
+ "test_numbers": {
12
+ "valid": [
13
+ "LX17635036",
14
+ "LX 176 35035",
15
+ "LX17635034",
16
+ "LI 129 79072",
17
+ "LI12976442",
18
+ "LA28376237",
19
+ "LA28372694",
20
+ "LH13830790",
21
+ "LH13816137",
22
+ "LH13820469",
23
+ "LH13831034",
24
+ "LH13821737",
25
+ "LH13820881",
26
+ "LH13820881",
27
+ "LH13812209",
28
+ "LH13800911",
29
+ "LH13795254",
30
+ "LE10917377",
31
+ "LE10913900",
32
+ "LE10913753",
33
+ "LN30083672"
34
+ ],
35
+ "invalid": [
36
+ "LX9763503N",
37
+ "LH9176350N6",
38
+ "XA17635036",
39
+ "L A 9 7 6 3 5 0 3 6 "
40
+ ]
41
+ }
42
+ },
43
+ {
44
+ "name": "LaserShip 1LS7 (15)",
45
+ "regex": [
46
+ "\\s*1\\s*L\\s*S\\s*7\\s*[12]\\s*([0-9]\\s*){4,4}",
47
+ "(?<SerialNumber>([0-9]\\s*){6,6})\\s*"
48
+ ],
49
+ "validation": {},
50
+ "test_numbers": {
51
+ "valid": [
52
+ "1LS717793482164",
53
+ "1LS724505321754",
54
+ "1LS720000000000",
55
+ " 1 L S 7 2 0 0 0 0 0 0 0 0 0 0 "
56
+ ],
57
+ "invalid": [
58
+ "1LX734505321754"
59
+ ]
60
+ }
61
+ },
62
+ {
63
+ "name": "LaserShip 1LS7 (18)",
64
+ "regex": [
65
+ "\\s*1\\s*L\\s*S\\s*7\\s*",
66
+ "[12]\\s*([0-9]\\s*){2,2}\\s*0\\s*1\\s*[1234]\\s*",
67
+ "\\s*(?<SerialNumber>([0-9]\\s*){6,6})",
68
+ "-\\s*1\\s*"
69
+ ],
70
+ "validation": {},
71
+ "test_numbers": {
72
+ "valid": [
73
+ "1LS7119013618127-1",
74
+ " 1 L S 7 1 1 9 0 1 3 6 1 8 1 2 7 - 1 "
75
+ ],
76
+ "invalid": [
77
+ "1LS7119013618127-2"
78
+ ]
79
+ }
80
+ }
81
+ ]
82
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "OnTrac",
3
+ "courier_code": "ontrac",
4
+ "tracking_numbers": [
5
+ {
6
+ "name": "OnTrac",
7
+ "regex": "\\s*C\\s*(?<SerialNumber>([0-9]\\s*){13})(?<CheckDigit>[0-9]\\s*)",
8
+ "validation": {
9
+ "checksum": {
10
+ "name": "mod10",
11
+ "evens_multiplier": 1,
12
+ "odds_multiplier": 2
13
+ },
14
+ "serial_number_format": {
15
+ "prepend_if": {
16
+ "matches_regex": "^(?!4).+$",
17
+ "content": "4"
18
+ }
19
+ }
20
+ },
21
+ "tracking_url": "http://www.ontrac.com/trackingres.asp?tracking_number=%s",
22
+ "test_numbers": {
23
+ "valid": [
24
+ "C11031500001879",
25
+ " C 1 1 0 3 1 5 0 0 0 0 1 8 7 9 ",
26
+ "C10999911320231",
27
+ "C11121552953069",
28
+ "C11121553156000",
29
+ "C11121552829468"
30
+ ],
31
+ "invalid": [
32
+ "C10000000000000",
33
+ "C11031500001889"
34
+ ]
35
+ }
36
+ },
37
+ {
38
+ "name": "OnTrac D",
39
+ "regex": "\\s*D\\s*(?<SerialNumber>([0-9]\\s*){13})(?<CheckDigit>[0-9]\\s*)",
40
+ "validation": {
41
+ "checksum": {
42
+ "name": "mod10",
43
+ "evens_multiplier": 1,
44
+ "odds_multiplier": 2
45
+ },
46
+ "serial_number_format": {
47
+ "prepend_if": {
48
+ "matches_regex": "^(?!5).+$",
49
+ "content": "5"
50
+ }
51
+ }
52
+ },
53
+ "tracking_url": "http://www.ontrac.com/trackingres.asp?tracking_number=%s",
54
+ "test_numbers": {
55
+ "valid": [
56
+ "D10011354453707",
57
+ "D10011345983010",
58
+ "D10011342332145"
59
+ ],
60
+ "invalid": [
61
+ "D10011345983012",
62
+ "D10011342332144"
63
+ ]
64
+ }
65
+ }
66
+ ]
67
+ }