AcademyCoding22 Jul 2026 8 min read

HCPCS Level II Codes Explained (vs CPT)

HCPCS covers everything CPT doesn't — durable medical equipment, ambulance rides, prosthetics, certain injectable drugs. Here's how the format works and how to run a reliable HCPCS code lookup.

By Patientary Team

Pharmacy shelves stocked with supplies, representing items billed under HCPCS Level II codes
Photo: Abdul batin

If you've ever tried to do an HCPCS code lookup and ended up staring at a CPT manual instead, you're not alone — the two code sets get lumped together constantly, and they're related, but they're not the same thing. HCPCS is the umbrella; CPT is one piece of it. This post walks through what HCPCS actually is, why it has two levels, how the Level II format works, and how to look up a current code without getting burned by an outdated one.

What HCPCS actually is

HCPCS stands for the Healthcare Common Procedure Coding System. It's not one code set — it's two, stacked under a single name for historical reasons that trace back to how Medicare built its billing system.

  • HCPCS Level I is CPT (Current Procedural Terminology) itself. It's owned and copyrighted by the American Medical Association, and it covers the procedures and services physicians and other clinicians perform — office visits, surgeries, diagnostic tests, and so on. Because it's AMA-licensed content, we won't reproduce actual CPT codes here; if you need the procedure code set itself, that requires a licensed CPT reference.
  • HCPCS Level II is a separate code set maintained by CMS (the Centers for Medicare & Medicaid Services). It's public, and it covers the things CPT was never built to describe — durable medical equipment, ambulance services, prosthetics and orthotics, certain drugs administered other than by mouth, and a long tail of supplies and non-physician services.

In practice, when someone says "HCPCS code" without qualifying it, they almost always mean Level II. That's the set this post focuses on.

Why Level II exists at all

CPT was built around what a clinician does — a procedure, a visit, a test. It was never designed to itemise a wheelchair rental, an ambulance trip, or a vial of medication administered by injection rather than swallowed as a pill. But Medicare, and eventually every other payer, needed to pay claims for exactly those things. Rather than trying to bend CPT to cover territory it wasn't built for, CMS created a second, government-maintained code set to fill the gap. That's Level II: equipment, supplies, transport, and services that sit outside the physician-procedure frame CPT was designed around.

It's a division of labour more than a hierarchy. CPT answers "what did the clinician do," and HCPCS Level II answers "what equipment, supply, drug, or non-physician service was involved." A single episode of care can easily need codes from both — a patient discharged with a knee brace after a procedure might generate a CPT code for the procedure and a separate HCPCS Level II code for the brace itself.

The Level II format

HCPCS Level II codes are alphanumeric: one letter followed by four digits. That's the entire format rule — a single letter, then four numerals, five characters total. (Any specific example you see written out in a letter-plus-four-digits pattern is illustrating that shape only, not a real, currently valid code — always confirm an actual code against the current CMS file rather than a format example.)

The codes are organised into ranges by leading letter, and within a given letter's range you'll generally find codes clustered around a related category — equipment types grouped together, drug administration codes grouped together, and so on. That said, the exact letter-to-category mapping has enough exceptions and historical quirks that it's not worth memorising or guessing at — the reliable way to find out what a given letter range covers is to check the current CMS index rather than infer it from a handful of examples.

Modifiers, briefly

Both CPT and HCPCS Level II support modifiers — two-character codes appended to a base code to convey additional detail without changing what the base code fundamentally describes. A modifier might indicate laterality (which side of the body a service or item relates to), or flag that a service was distinct from another billed the same day, or note some other circumstance the payer needs to see. The base code says what; the modifier adds the qualifying detail. Not every code needs one, and which modifiers apply to which codes is governed by payer-specific and CMS billing rules rather than a fixed universal list — so this is another spot where checking current guidance beats guessing.

How to do an HCPCS code lookup properly

The practical risk with HCPCS Level II isn't understanding the format — it's using a code that's gone stale. CMS updates the Level II set on a quarterly cycle, adding new codes, revising descriptions, and retiring codes that are no longer valid. A code that worked on a claim eighteen months ago might be discontinued today, and a claims system will reject a deleted or superseded code just as readily as it rejects a code that never existed.

That makes a real HCPCS code lookup, done properly, a matter of checking the current quarter's file — not a memorized code, not a note left over from a previous claim, not a code pulled from an old internal spreadsheet. CMS publishes the official Level II file directly, and any reference tool worth using should be pulling from that current source rather than a static, aging snapshot.

People also ask: why did my DME claim get denied?

A durable medical equipment supplier's biller runs into this constantly. Say a claim for a piece of rental equipment goes out with a HCPCS Level II code that was valid the last time that item was billed — but in the intervening quarter, CMS retired that code and replaced it with a revised one covering a slightly different scope. The claim comes back denied, not because the equipment wasn't medically necessary and not because anything about the patient's record was wrong, but because the code itself no longer exists in the current set. The fix is mundane once you spot it: pull the current quarter's HCPCS Level II file, find the code that replaced the old one, resubmit with the corrected code and any modifier the payer now expects. The lesson generalises past this one scenario — a code that was correct six months ago is not guaranteed to still be correct today, and checking against a live, current source before submission is cheaper than chasing a denial after the fact.

TL;DR: HCPCS Level I is CPT (AMA-owned, physician procedures). HCPCS Level II is a separate CMS-maintained set — one letter plus four digits — covering DME, ambulance services, prosthetics/orthotics, certain injectable drugs, and other supplies CPT doesn't touch. CMS updates Level II quarterly, so a HCPCS code lookup should always check the current file, not a memorized or old code.

How HCPCS Level II compares to CPT and ICD-10-CM

It helps to see all three of the major US healthcare code sets side by side, since claims typically draw on more than one at once.

SystemWho maintains itWhat it coversFormat
CPT (HCPCS Level I)American Medical Association (licensed content)Procedures and services performed by physicians and other cliniciansFive-digit numeric code
HCPCS Level IICMSDurable medical equipment, ambulance services, prosthetics/orthotics, certain injectable drugs, other supplies and non-physician servicesOne letter followed by four digits
ICD-10-CMCDC/NCHS with CMSDiagnoses — the reason for the encounter, not the procedure or supply usedThree to seven characters, starts with a letter, decimal after the third character
CPT and HCPCS Level II describe what was done or used; ICD-10-CM describes why.

The distinction matters on a real claim. ICD-10-CM establishes medical necessity — the diagnosis that justifies the service. CPT (or a description of the procedure, since we don't reproduce CPT codes here) covers the clinical service itself. HCPCS Level II covers anything supply-, equipment-, or drug-related that rides alongside it. Miss any one of the three where the payer expects it, and that's a routine, avoidable cause of a rejected or denied claim. For a shorter side-by-side of all three code sets, see our ICD-10 vs CPT vs HCPCS comparison; this post goes deeper specifically on how HCPCS Level II works.

Where this fits with the rest of your coding workflow

HCPCS Level II rarely stands alone on a claim — it shows up next to a diagnosis code and, often, a CPT code. If you're already comfortable with how the diagnosis side works, how ICD-10 codes work and what counts as a billable ICD-10 code cover the companion piece. If you're newer to coding generally, what is medical coding is a good starting point, and if you're dealing with older records that still reference ICD-9, the ICD-10 vs ICD-9 GEM crosswalk explains how that mapping works. For picking a lookup tool itself, free vs paid ICD-10 lookup tools covers similar trade-offs that apply to HCPCS references too — currency of the data matters more than the price tag.

Once the supply or equipment code is sorted, cross-check the diagnosis code that justifies it.

Search ICD-10-CM

For developers and agents

If you're building claim-scrubbing software, a coding assistant, or any tool that touches HCPCS data programmatically, don't let a model or a static list stand in for the current CMS file — Level II changes quarterly, and a hallucinated or stale code is exactly the kind of error that causes silent claim failures downstream. Patientary's MCP server is built for this: it lets an AI agent query live ICD-10-CM and NPPES provider data directly rather than relying on training-data memory, and it's a useful pattern to follow for any HCPCS integration too — always validate against a current, authoritative source rather than trusting what a model recalls.

Frequently asked questions

What's the difference between CPT and HCPCS?

CPT is HCPCS Level I — a physician- and procedure-focused code set owned and licensed by the American Medical Association. HCPCS Level II is a separate set maintained by CMS that covers what CPT doesn't: durable medical equipment, ambulance transport, prosthetics and orthotics, certain injectable drugs, and other supplies and non-physician services. In everyday use, "HCPCS" almost always means Level II.

How often is HCPCS Level II updated?

CMS updates the HCPCS Level II code set quarterly, with the largest set of changes typically landing at the start of each calendar year. Codes get added, revised, and discontinued throughout the year, which is why checking against a current file matters more than it does for a code set that only changes annually.

Do HCPCS codes need modifiers?

Often, yes. Modifiers are two-character additions appended to a HCPCS or CPT code to convey extra detail the base code alone doesn't capture — things like which side of the body was involved, or that a service was distinct from another billed on the same day. Whether a specific claim needs one depends on the payer's billing rules for that code, so check current payer and CMS guidance rather than assuming.

Where do I find the current HCPCS Level II code set?

CMS publishes the official HCPCS Level II file directly and updates it on a quarterly cycle. For everyday lookup work, a reference tool that pulls from that current file — rather than a static list or a memorized code — is the safer bet, since deleted or superseded codes are a routine cause of claim denials.

Anything cited above is general reference, not medical, coding or billing advice. To look something up against live data, run a free NPI lookup, or search the ICD-10-CM code set.

More guides

Look it up, then build on it

Search providers and codes free, then get an API key for your software or your AI agent — no card to start.

Get an API key