Free Tracking Number Checker

Paste a tracking number from a label, an email or a text message. This page works out which carrier format it fits, recomputes the check digit, and decodes the fields it can — all in your browser, with nothing sent anywhere.

Spaces, dashes and lower case are fine — they are stripped before checking.

Try one:

Nothing leaves your device. The format matching and the arithmetic run as JavaScript in this page. No carrier API is called and no number is logged — which matters, because a tracking number is tied to a delivery address.

How the Check Digit Works

A tracking number is not an arbitrary string. The last character is computed from the characters in front of it, so a scanner that misreads one digit can detect the error instead of silently routing a parcel to the wrong place. Each carrier chose its own arithmetic.

Take the UPS number 1Z5R89390357567127. Drop the 1Z prefix and the final digit, leaving 5R8939035756712. Letters become digits first — take the character's ASCII code, subtract 3 and keep the last digit, so A is 2 and R is 9. Then walk the characters from the left, counting from zero: even positions count once, odd positions count twice. The contributions sum to 123. The last digit of the total is 3, so the check digit must bring it up to the next multiple of ten: 10 − 3 = 7. The number ends in 7, so it agrees.

USPS uses the same shape with the multipliers changed to 3 and 1. FedEx Express multiplies each digit by its own weight from a fixed list and takes the total modulo 11, then modulo 10. DHL Express just reads the serial as one integer and takes the remainder on division by seven — which is why a DHL Express check digit is never 7, 8 or 9. The full derivation, worked by hand, is in how to check if a tracking number is real.

What This Can and Cannot Tell You

It can tell you a number is malformed

If the check digit does not agree, no carrier label printer produced that number. Either a digit was mistyped or dropped when it was copied, or it was invented without computing the checksum. A failure is close to conclusive.

It cannot tell you a parcel exists

The arithmetic is a dozen multiplications, so it can be satisfied deliberately. The most widely circulated USPS scam number of 2026 has a correct check digit — paste 9300120111410471677883 above and watch it pass. "Well formed" is not "legitimate".

What actually settles a suspicious delivery message is provenance, not arithmetic. The US Postal Inspection Service's guidance is that USPS does not text customers who did not request tracking for a specific number, and that its messages do not contain links. If you want to inspect a link you were sent without visiting it, use the link checker.

Formats Checked on This Page

Carriers publish label specifications to shippers rather than to the public. The arithmetic here is the reconstruction that open-source tracking libraries have converged on, and it reproduces their published test vectors.

Carrier / format Shape Check digit scheme
UPS 1Z + 15 alphanumeric + 1 digit (18) Mod-10, multipliers 1 and 2; letters mapped to digits
UPS waybill A/H/J/K/T/V + 9 digits + 1 (11) Mod-10, multipliers 1 and 2
USPS IMpb 22 digits, starting 92 / 93 / 94 / 95 Mod-10, multipliers 3 and 1
USPS, older form 20 digits Mod-10, multipliers 3 and 1 (91 prefixed on the legacy form)
USPS label string 420 + ZIP + the number (26 / 30 / 34) Routing prefix sits outside the checksum
FedEx Express 12 digits Weights 3,1,7 repeating; mod 11 then mod 10
FedEx Ground 15 digits Mod-10, multipliers 3 and 1 over the first 14
FedEx Ground 96 22 digits starting 96 Mod-10 over a 14-digit slice
DHL Express 10 or 11 digits Serial modulo 7 — so never 7, 8 or 9
SSCC-18 18 digits GS1 mod-10 over the first 17
UPU S10 2 letters + 9 digits + 2 letters Weights 8,6,4,2,3,5,9,7; mod 11

When This Is Useful

  • A delivery text you did not expect. Check the number before you consider the message. A failing check digit settles it immediately; a passing one means you still have to judge the message on its provenance.
  • A number read off a photo or a phone call. Check digits exist to catch exactly this. A transposed pair or a 5 read as an S will fail.
  • Working out which carrier to ask. If you have a bare number and no context, the format usually names the carrier — and tells you whose tracking page to type into your browser.
  • Reading a logistics label. An 18-digit all-numeric string is more often an SSCC-18 pallet code than a consumer tracking number; take those to the GS1 barcode decoder instead.
  • Checking a merchant's tracking number. A marketplace seller marking an order shipped with a number that fails its own checksum has not shipped anything.

Frequently Asked Questions

Does a valid check digit mean the tracking number is real?

No. It means the digits are internally consistent — that the number could have been produced by a carrier label printer. It says nothing about whether a parcel exists. The most widely circulated USPS scam number of 2026 has a correct check digit, which you can confirm on this page by pasting it in. Treat a passing check digit as "well formed", never as "legitimate".

What does it mean when the check digit fails?

That the number is not one a carrier printed. Either a digit was mistyped or dropped when it was copied, or the number was invented without computing the check digit. A failure is close to conclusive in a way that a pass is not, so it is the more informative of the two outcomes.

Which carriers does this check?

UPS (both the 1Z form and the 11-character waybill form), USPS (22-digit IMpb, the older 20-digit forms, and label strings carrying a 420 routing prefix), FedEx (12-digit Express, 15-digit Ground, the 22-digit "96" form, and the 32 and 34-digit label strings), DHL Express, DHL eCommerce, SSCC-18 shipping container codes, and international post in the UPU S10 format.

How is the check digit calculated?

It depends on the carrier. UPS, USPS and FedEx Ground use variants of a weighted mod-10 sum with different multipliers on alternating positions. FedEx Express multiplies each digit by a weight from a fixed list, then takes the total modulo 11 and modulo 10. DHL Express reads the serial as one integer and takes it modulo 7, which is why a DHL check digit is never 7, 8 or 9.

Why does one number match more than one carrier?

Because length and prefix do not always identify a format uniquely — a 22-digit string could be a USPS IMpb number or a FedEx Ground 96 number depending on how it starts, and some lengths are shared outright. Every shape that fits is listed, with the one whose check digit agrees shown first. If several agree, the number is genuinely ambiguous without more context.

Is my tracking number sent anywhere?

No. The identification and the arithmetic are plain JavaScript running in the page. No carrier API is called, no number is logged, and no request leaves your device. You can load this page, go offline, and it will still work — which matters here, because a tracking number is linked to a delivery address.

Can this tell me where my package is?

No, and nothing that works offline could. Shipment status lives in the carrier’s systems. This page tells you whether the number is well formed and what its fields mean. For status, type the carrier’s address into your browser yourself rather than following a link you were sent in a message.

Why does a number of all zeros pass?

Because zero is a mathematically valid checksum result — a string of identical digits can satisfy the arithmetic. It is a good illustration of the limit of any check-digit test. Where this happens the page flags the result as implausible rather than quietly calling it valid.

What is the 420 prefix on a USPS label?

It is routing information added for sortation: the digits 420 followed by the destination ZIP, either five or nine digits, prepended to the tracking number. It sits outside the checksum, so both the long label string and the shorter printed number validate. When it is present this page shows you the destination ZIP, which is the one field that tells you where the parcel was actually routed.

The Label Holds More Than the Number

A shipping label barcode carries fields the printed number leaves out, including the destination ZIP a USPS parcel was actually routed to. Scan & Generate reads Code 128, GS1-128 and PDF417 and shows you the raw string instead of acting on it.