A taxonomy code is a ten-character code that describes what kind of provider someone is: their type, classification, and specialty. It is not an ID number and it is not unique to a person. It is a label, chosen from a national list, that a provider attaches to their NPI to say "this is the sort of care I am trained to deliver." Pick the wrong one and claims start getting denied for reasons that are maddeningly hard to trace.
What the code actually describes
When you got your NPI, somewhere in the application you had to choose a taxonomy code. Most providers pick one, never think about it again, and do not realize how much quiet influence it has over whether they get paid.
The taxonomy code answers a different question than the NPI does. Your NPI says who you are; it is your identity number. The taxonomy code says what kind of provider you are: family medicine, pediatric dentistry, clinical psychology, physical therapy. The full list is the Healthcare Provider Taxonomy Code Set, maintained by the National Uniform Claim Committee (NUCC), and it is deliberately broad, because it has to cover every type of provider in American healthcare.
One thing the NUCC is emphatic about, and it is worth taking to heart: choosing a code that references a certifying board does not mean you hold that board's certification. The code is a self-selected description of the kind of work you are trained to do, nothing more, and it does not replace credentialing or licensure (NUCC FAQ).
Reading a taxonomy code
Every taxonomy code is exactly ten characters, mixing letters and numbers, and it is organized around three levels of increasing specificity:
- Level I, the grouping: the broad family, like "Allopathic & Osteopathic Physicians" or "Dental Providers."
- Level II, the classification: the specialty within that family, like Family Medicine or Pediatrics.
- Level III, the area of specialization: a subspecialty, when one applies.
Take a real one: 207Q00000X is Family Medicine. Codes in the same family share a leading shape (physician codes tend to start with 207 or 208), and the characters that follow narrow it down, with a trailing run of zeros meaning "no further subspecialty" (every code ends in X). A geriatric-medicine family physician carries a closely related code with the subspecialty filled in.
A useful warning, though: do not try to decode a taxonomy code character by character. The NUCC is explicit that the codes carry no embedded logic and should never be parsed apart or edited one position at a time. The family resemblance is real, but the codes are meant to be used exactly as assigned. Look them up, do not reverse-engineer them.
You can have more than one
A provider is not limited to a single taxonomy code. A physician who practices across two areas, or who wants to be findable under more than one classification, can list several on their NPI record. But exactly one has to be flagged as the primary, and that primary code is the one that most payers, directories, and downstream systems pay attention to. If you carry multiple codes, getting the primary right matters more than the others.
The list itself is not static, either. The NUCC publishes updates twice a year, in January and July, and those updates take effect the following April and October (NUCC release schedule), with the gap built in to give everyone time to update their systems. As it happens, the January 2026 cycle introduced no changes at all, so the set from mid-2025 is still current. For most providers this is invisible; it matters mainly if your specialty's code was added or revised.
Where it bites: claims and network placement
Here is why a label most providers ignore can cause real trouble. Taxonomy codes ride along on electronic claims, and payers use them to match a provider to the right specialty and the right contract. When the taxonomy on a claim does not line up with what a payer expects, or does not match the specialty they were credentialed and contracted under, the claim can be denied or routed into the wrong bucket. These denials are frustrating precisely because the rest of the claim looks fine; the problem is a ten-character code nobody thought to check.
A taxonomy code is
- A label for your provider type and specialty
- Chosen from the national NUCC code set
- Allowed in multiples, with one flagged primary
- How directories group and classify you
A taxonomy code is not
- An identifier, the way your NPI is
- Proof of a board certification or license
- Something to parse character by character
- The same as a Medicare specialty code
There is a deeper version of this confusion, too. Medicare does not use NUCC taxonomy codes directly. CMS keeps its own set of two-character Medicare specialty codes, and it publishes a crosswalk that maps its specialty codes to NUCC taxonomy codes. The two systems describe the same providers in different languages, and not every taxonomy code maps neatly to a Medicare specialty. So the taxonomy you self-selected in NPPES has to be consistent with the specialty you enrolled under in Medicare, and a mismatch there is its own common source of enrollment headaches.
Your brand here.
Choosing and changing your code
If you are not sure which code fits you, you are in good company. CMS publishes a contact specifically for providers trying to identify their taxonomy code. The honest advice is to choose the code that most accurately reflects your training and the specialty you bill under, and to make sure it agrees with how your payers have you classified.
Changing it later is done in NPPES, the same place you manage the rest of your NPI record. You edit the taxonomy section and re-set your primary if needed. We walk through the NPPES editing flow in how to update your NPI information. Just remember the recurring theme of all this paperwork: updating NPPES updates NPPES. If your taxonomy change also affects how you bill Medicare, you will need to reflect it in your Medicare enrollment too.
FindMyNPI mirrors the public CMS NPPES dataset and refreshes it monthly. We don't edit records; corrections belong at CMS so they flow through everywhere. Snapshot: · 9,263,798 indexed records.