4.3 HCPCS Level II codes

Key Takeaways

  • HCPCS has two levels: Level I is CPT (AMA), and Level II is the alphanumeric national code set maintained by CMS.
  • A HCPCS Level II code is one letter (A–V) followed by four digits, such as E0114, J1885, or A0428.
  • Level II reports items CPT does not cover well: supplies, durable medical equipment (DME), drugs administered by injection (J-codes), and ambulance services.
  • J-codes report drugs given other than by mouth and require correct units matched to the dosage administered.
  • HCPCS modifiers are alphanumeric (e.g., -RT/-LT, -GA for an ABN on file, -NU for new equipment) and can be reported alongside CPT codes.
Last updated: July 2026

The two levels of HCPCS

HCPCS stands for the Healthcare Common Procedure Coding System (pronounced "hick-picks"). It has two levels, and confusing them is a common exam trap:

  • Level I is CPT — the five-digit numeric codes maintained by the AMA, covered in sections 4.1 and 4.2.
  • Level II is the national alphanumeric code set maintained by the Centers for Medicare & Medicaid Services (CMS). It exists to report products, supplies, and services that CPT does not describe well.

Because CMS maintains Level II, these codes are especially important for Medicare and Medicaid claims, though most commercial payers accept them too.

Structure of a Level II code

A HCPCS Level II code is one letter (A–V) followed by four digits — for example, E0114 (crutches), J1885 (injectable ketorolac), or A0428 (basic life support ambulance). The opening letter signals the category, so a coder can often tell at a glance what type of item a code represents. Like CPT, Level II codes accept two-character modifiers to add detail.

What the letter categories cover

LetterCategoryExamples
ATransportation, medical/surgical suppliesAmbulance, dressings, syringes
BEnteral and parenteral therapyTube-feeding supplies
EDurable medical equipment (DME)Wheelchairs, walkers, hospital beds
GTemporary procedures/professional servicesMedicare-specific services
JDrugs administered other than oralInjectable and infused drugs
KTemporary codes for DMEDME items pending permanent codes
LOrthotics and prostheticsBraces, artificial limbs
QTemporary codesMiscellaneous CMS-assigned items
VVision and hearing servicesEyeglasses, hearing aids

When to use HCPCS Level II instead of CPT

The guiding rule: CPT reports the procedure or service; HCPCS Level II reports the supply, equipment, drug, or transport that goes with it. Some common decision points:

  • Supplies and DME — a wheelchair, walker, or nebulizer is coded with an E-code, not a CPT code.
  • Injectable and infused drugs — the administration (giving the injection) is a CPT code, but the drug itself is a J-code. For example, CPT reports the injection procedure while J1885 reports the ketorolac that was injected.
  • Ambulance — transport is reported with A-codes plus origin/destination modifiers.
  • Medicare-required services — G- and Q-codes capture services CMS needs that have no CPT equivalent.

When both a CPT and a HCPCS code could describe the same service, payer rules decide. Many Medicare contractors require the HCPCS Level II code; always follow the payer's guidance.

Permanent versus temporary codes

Not every Level II code is permanent. National permanent codes are approved by the HCPCS workgroup and appear across the alphabet (A, E, J, L, and so on). Temporary codes — including many G-codes (professional services Medicare needs), K-codes (DME awaiting a permanent code), and Q-codes (miscellaneous CMS items) — let CMS respond quickly to a new drug or device without waiting for the annual cycle. A temporary code may later be replaced by a permanent one, so the coder must confirm a code is still active rather than rely on memory. C-codes are another temporary set used mainly in the hospital outpatient (OPPS) setting, which a physician-office biller will encounter less often.

J-codes and drug units

J-codes are among the most error-prone codes in billing. Each J-code descriptor specifies a dosage amount, and the coder reports units that match how much drug was actually given. If a J-code represents 15 mg and the physician administered 30 mg, the coder bills two units, not one. Mismatched units are a frequent cause of denials and audits, so the dose in the medical record must be reconciled with the code descriptor and the units field on the claim.

HCPCS modifiers

HCPCS Level II includes its own alphanumeric modifiers, which may be reported on either HCPCS or CPT codes. High-yield examples include:

ModifierMeaning
-LT / -RTLeft side / right side of the body
-GAWaiver of liability on file — an ABN (Advance Beneficiary Notice) was signed
-GYItem or service is statutorily excluded from the benefit
-GZItem expected to be denied; no ABN was obtained
-NUNew equipment
-RRRental of equipment
-E1–E4Specific eyelids (upper/lower, right/left)

The ABN modifiers (-GA, -GY, -GZ) are frequently tested because they signal to Medicare whether the patient was warned in writing that a service might not be covered.

Maintenance and updates

CMS updates HCPCS Level II regularly. Permanent national codes are revised annually, but temporary codes (such as many G, K, and Q codes) can be added or changed quarterly to keep pace with new drugs and devices. Because of this faster cycle, coders should check for HCPCS updates more often than the once-a-year CPT and ICD-10-CM revisions. Always confirm a Level II code is still active before submitting a claim, and match every supply, drug, and piece of equipment to the correct alphanumeric code.

Test Your Knowledge

Which statement about HCPCS is correct?

A
B
C
D
Test Your Knowledge

A provider administers an injectable drug in the office. How are the drug and its administration typically coded?

A
B
C
D
Test Your Knowledge

A J-code descriptor represents 15 mg of a drug, and the physician administered 30 mg. How many units should be billed?

A
B
C
D