Vehicle Identification Number.

Seventeen characters, the fully published check-digit rail (ISO 3779 / 49 CFR 565.15), and public-domain decode rails.

The door-jamb barcode, blown out.

Code 39, as on the door jamb — the framing asterisks are the barcode's, not the vehicle's

* start framing — stripped, never part of the number
1HG WMI who built it — the world manufacturer identifier
CM826 VDS what it is — the descriptor section
3 position 9 the check — the other sixteen compute 3
3A004352 VIS this one vehicle — year, plant, serial
* stop framing — stripped, never part of the number
VIN     1HGCM82633A004352
sum     311   (transliterated × the published weights)
check   311 mod 11 = 3   → position 9 is '3' — iso3779 mod11 pass

The row.

schemevin
grammar17 characters, I/O/Q excluded. WMI (positions 1–3, manufacturer), VDS (4–9; position 9 is the check digit in North America), VIS (10–17; position 10 model year, 11 plant, 12–17 serial).
check digitISO 3779 / 49 CFR 565.15 — published transliteration table, published weights (8 7 6 5 4 3 2 10 0 9 8 7 6 5 4 3 2), mod-11; remainder 10 renders as X. Typed failure surface: length | charset | checkdigit, with the exact expected position-9 character.
canonical formThe 17-character uppercase form, Code-39 framing stripped.
symbologiesCode 39 on the door jamb and glass; DataMatrix on newer plates
enrichmentNHTSA vPIC (public domain) · auto.dev — the family's owned vehicle data rail
join ruleA non-GS1 key served through the same resolver door, labeled as an extension in the description file — conformant to the standard; explicit about everything beyond it.
pinned digestvin sha256:8cf780d7c6899d392e7fabdf2f2a1f71e9b56c2537730332bba72b4a9abd9eef
as data/schemes/vin.json

In practice.

The VIN is the fully published identifier: grammar, transliteration, weights and check rule all sit in public regulation, which is why verify on a VIN needs no license, no network and no account — and why a scratched door-jamb scan can be caught as a checkdigit failure naming the exact expected character.

On the blog.

  • VIN: the 17 characters the US government fully published

    VIN structure and check digit are federal regulation — 49 CFR 565 — and NHTSA vPIC decodes about 140 attributes in the public domain. The best-documented identifier in the registry, worked in full: transliteration, weights, mod-11, and the typed failure surface a caller can branch on.

  • Scan the door jamb: VIN to vehicle, listing, and every other door

    A door-jamb Code 39 scan resolves through the whole pipeline — validate, decode, linkset — with a typed failure at every step that can fail. The worked transcript, from framing strip and 49 CFR 565.15 arithmetic to the RFC 9264 linkset of live doors — history, recalls, sticker, valuation, transport.

  • A vehicle crosses the country: the full-family trace

    One VIN exercises the entire stack — scan the door jamb for identity, book transport with custody events whose who is the attested driver and whose capturedBy is the carrier account, and watch escrow release on the delivery-confirmed event. Vehicle logistics is the family's most complete worked showcase, and the pattern generalizes to any high-value serialized unit.

Get an API key.

The local verbs run from npx barcoding.dev today with no key. A key opens the network half of the verb set.