A modern TypeScript library for validating tracking numbers from 11+ shipping carriers
# Using pnpm (recommended)
pnpm add tracking-number-validation
# Using npm
npm install tracking-number-validation
# Using yarn
yarn add tracking-number-validation
import { getCourier, isValid, getTrackingUrl } from 'tracking-number-validation';
// Identify courier
const courier = getCourier('1Z9999W99999999999');
console.log(courier); // ['ups']
// Validate tracking number
const valid = isValid('1Z9999W99999999999');
console.log(valid); // true
// Get tracking URL
const url = getTrackingUrl('1Z9999W99999999999');
console.log(url); // UPS tracking URL
Enter a tracking number to see validation results...
Generate valid tracking numbers for testing purposes.
Validate multiple tracking numbers at once.
Add custom patterns to existing couriers.
United Parcel Service
1Z tracking numbers
Federal Express
12-22 digit formats
United States Postal Service
Various formats including 95xx
DHL Express
Express & eCommerce
Amazon Logistics
TBA, TBC, TBM, TBD formats
OnTrac Shipping
C/D prefixes, LaserShip merged
Canada Post Corporation
13-16 digit formats
China Post Corporation
CN suffix formats
Australia Post Corporation
AU suffix & TM formats
Royal Mail Group
GB suffix formats
Add Custom Patterns
Inject your own regex patterns
import {
getCourier,
isValid,
getTrackingUrl,
generateTrackingNumber,
getDetailedCourierInfo
} from 'tracking-number-validation';
// Basic validation
const trackingNumber = '1Z9999W99999999999';
const couriers = getCourier(trackingNumber);
console.log(couriers); // ['ups']
// Check validity
const isValidNumber = isValid(trackingNumber);
console.log(isValidNumber); // true
// Get tracking URL
const url = getTrackingUrl(trackingNumber);
console.log(url); // UPS tracking URL
// Generate test tracking number
const generated = generateTrackingNumber('ups');
console.log(generated); // Valid UPS tracking number
// Get detailed information
const details = getDetailedCourierInfo(trackingNumber);
console.log(details);
// [{ courier: 'ups', valid: true, tracking_url: '...' }]
const {
getCourier,
isValid,
getTrackingUrl,
generateTrackingNumber
} = require('tracking-number-validation');
// Validate tracking number
const trackingNumber = '9400100000000000000000';
const courier = getCourier(trackingNumber);
console.log(courier); // ['usps']
// Check if specific courier
const isUSPS = require('tracking-number-validation')
.isCourier(trackingNumber, 'usps');
console.log(isUSPS); // true
// Generate multiple numbers
const multiple = require('tracking-number-validation')
.generateMultipleTrackingNumbers('fedex', 3);
console.log(multiple); // Array of FedEx tracking numbers
// Inject custom pattern
const success = require('tracking-number-validation')
.injectPatterns('ups', /CUSTOM\\d{10}/);
console.log(success); // true