Most billable clinical services your pharmacy provides have a five-character code that tells a payer what you did and starts the clock on getting paid for it. Those are CPT codes, and if your pharmacy bills the medical benefit for vaccines, testing, or consultations, they are the vocabulary of your revenue.
The problem is that most CPT references are written for physician offices. This guide covers the subset that matters in a pharmacy: what the codes are, the ones you will actually bill, and the details (time increments, modifiers, documentation) that decide whether the claim pays or denies.
What are CPT codes?
CPT stands for Current Procedural Terminology, a code set developed and maintained by the American Medical Association (AMA). Each code is five characters and describes a specific service or procedure. Nearly all the codes pharmacies bill are numeric, running from 00100 through 99499; the exceptions end in a letter, like the F codes used for quality tracking. Instead of writing "pharmacist provided face-to-face medication therapy management, initial 15 minutes, new patient," a claim simply says 99605.
CPT codes appear on 837P medical claims (the electronic version of the CMS-1500 form) alongside ICD-10 diagnosis codes that explain why the service was needed. If your pharmacy is newer to that side of billing, our breakdown of medical benefit vs. pharmacy benefit explains how medical claims differ from the D.0 pharmacy claims you submit all day.
The AMA organizes CPT into three categories:
- Category I: the main body of codes for services and procedures. Five digits, and where nearly all pharmacy billing happens.
- Category II: supplemental tracking codes for quality and performance measurement, formatted as four digits plus F. They record facts about the patient rather than services: 1036F, for example, documents that a patient is a current tobacco non-user. Not tied to reimbursement.
- Category III: temporary codes for emerging technology and services, formatted as four digits plus T.
CPT is one half of the coding picture. The other half, HCPCS Level II codes, covers products, supplies, and some Medicare-specific services. The two work together on pharmacy claims, and we compare them in HCPCS vs. CPT.
Is there a CPT code for a medication?
Usually, no. No single CPT code identifies a prescription medication, because CPT describes services and procedures, not drug products. When a claim needs to identify the drug itself, it uses a different vocabulary:
- NDC numbers identify drug products on pharmacy benefit claims and accompany drug lines on many medical claims.
- HCPCS Level II J codes identify drugs a provider administers, which is how buy-and-bill injectables and infusions are billed.
- Product-specific vaccine CPT codes are the exception where CPT does name a product: each vaccine has its own code in the 90000 series.
What CPT covers is everything you do around the medication: 96372 for a therapeutic injection, the 90471-90474 family for administering a vaccine, and the MTM codes for reviewing a regimen. So the answer to "what is the CPT code for medication administration" is a service code picked by route and setting, while the medication itself rides along as an NDC, a J code, or a vaccine product code.
Medication therapy management: 99605, 99606, 99607
The MTM codes are the pharmacist-specific codes in CPT, defined for face-to-face services provided by a pharmacist:
- 99605: initial 15 minutes with a new patient
- 99606: initial 15 minutes with an established patient
- 99607: each additional 15 minutes, added to either code
Time drives the coding. A 45-minute comprehensive medication review for a new patient bills as 99605 plus two units of 99607, which means your documentation needs to support the time as well as the clinical content.

Vaccine administration: 90471-90474 and Medicare G codes
Immunizations bill in two parts: the vaccine product (its own CPT code) plus the administration:
- 90471: first vaccine administered by injection
- 90472: each additional injected vaccine
- 90473: first vaccine administered intranasally or orally
- 90474: each additional intranasal or oral vaccine
For Medicare Part B preventive vaccines, administration uses HCPCS G codes instead: G0008 for influenza, G0009 for pneumococcal, and G0010 for hepatitis B. Billing 90471 to Part B for a flu shot is one of the most common self-inflicted denials in pharmacy vaccine programs. COVID-19 vaccine administration has its own codes that have changed several times, so verify the current code before each season.
Point-of-care testing codes with the QW modifier
If your pharmacy holds a CLIA Certificate of Waiver, the tests you run have CPT codes too:
- 87804: influenza antigen test
- 87880: Group A strep test
- 83036: hemoglobin A1c
- 80061: lipid panel
- 85610: prothrombin time (INR)
Medicare and many other payers require the QW modifier on waived-test claims to indicate the test was performed under a Certificate of Waiver, and every lab claim needs your CLIA number on it. Whether a given code takes QW depends on the specific test system you run, not the analyte, so verify your device against the current CMS waived-test files. Miss the modifier or the CLIA number and the claim rejects before anyone looks at the clinical story.
Evaluation and management: 99202-99215
E/M codes describe office visits: 99202-99205 for new patients and 99211-99215 for established patients, leveled by medical decision making or time. Where pharmacists fit depends on your state and the payer. In states with pharmacist provider status, state Medicaid programs and some medical plans enroll pharmacists and reimburse E/M services billed under the pharmacist's own NPI, most commonly at the lower levels. Test-and-treat encounters (flu, strep, COVID) are a growing use case: the visit bills an E/M code alongside the test itself.
Preventive counseling: 99401-99404
These codes cover individual preventive medicine counseling in 15-minute increments (99401 is 15 minutes, up to 99404 for 60). Some payers cover this family for pharmacist-delivered tobacco cessation, immunization counseling, or lifestyle interventions; coverage depends on provider type, enrollment, and the plan's benefit design, so confirm before building a service around it.
Diabetes education and care management: G0108-G0109, 99490, 99495
Diabetes self-management training has two codes: G0108 for individual sessions and G0109 for group classes, each billed in 30-minute units. Medicare pays for DSMT when the program holds ADCES or ADA recognition, and the accredited program bills Part B directly, which makes this one of the clearest paths for a pharmacy to bill a training service under its own enrollment.
You will also see care management codes in pharmacy billing conversations: chronic care management (99490, 99487, 99489, and the add-on G0506) and transitional care management (99495 and 99496). These are billed by the medical practice that owns the care plan, but pharmacists frequently deliver the underlying work through care-team partnerships, so the codes are worth recognizing when a practice proposes splitting the service.
Who bills the code: your NPI or a clinic's?
There are two models, and which one applies decides whose NPI goes on the claim. This guide is written for direct billing: the pharmacy enrolls with the payer, the pharmacist renders the service, and the claim goes out under the pharmacy's or pharmacist's NPI as the billing provider. It is the model your pharmacy controls end to end, and the one provider status legislation keeps expanding. Where it is available depends on state scope of practice, payer credentialing, and enrollment, so the first step in any new service line is confirming the payer will enroll and pay you directly.
There is a second model you will encounter in the wild: "incident-to" billing, where a pharmacist embedded in a physician practice delivers services that the practice bills under the physician, subject to Medicare's supervision and employment requirements. It is a legitimate arrangement inside clinics, but it is the clinic's billing model, not yours. A community pharmacy building a clinical services program should plan around its own enrollment and its own claims.
Getting CPT claims paid, not just submitted
Four habits separate testing programs that collect from ones that write off:
- Pair every CPT with a defensible ICD-10. The diagnosis justifies the service. Z23 for immunizations and symptom or condition codes for testing and MTM.
- Document to the code. Time-based codes need times. E/M codes need the elements of the visit. If an auditor read the note, would the code be obvious?
- Use the right modifiers. QW for waived tests is the big one in pharmacy.
- Standardize repeatable services. A flu test-and-treat visit should generate the same claim every time, not a hand-built one.
That last habit is where software earns its keep. DocStation claim templates remember the CPT codes, dollar amounts, and diagnosis codes for common scenarios, including time-based templates that calculate units from documented minutes and complexity-based MTM templates that build the service lines for you. Custom fee schedules set your expected payment per code and per payer, so underpayments surface instead of hiding, and when a claim does deny, DocStation explains the denial codes in plain language. If a remit full of CARC and RARC codes is currently your denial-research process, start with understanding claim remit codes.
Frequently asked questions
What is the CPT code for medication therapy management?
99605 for the initial 15 minutes with a new patient, 99606 for the initial 15 minutes with an established patient, and 99607 for each additional 15 minutes.
What is the CPT code for vaccine administration?
90471-90474 for most payers, split by route and by first versus additional vaccine. Medicare Part B preventive vaccines use G0008 (influenza), G0009 (pneumococcal), and G0010 (hepatitis B) instead.
Do pharmacists need their own NPI to bill CPT codes?
Generally, yes, for direct billing: payers expect a billing NPI for the pharmacy, and many also require a rendering NPI for the individual pharmacist. Exact requirements vary by payer and billing arrangement, so confirm both during enrollment.
Are CPT codes the same as HCPCS codes?
CPT is HCPCS Level I. HCPCS Level II is the separate alphanumeric set maintained by CMS for products, supplies, and some services. See HCPCS vs. CPT for the full comparison.
Turn services into revenue
DocStation gets pharmacies paid for clinical services. More than 500 pharmacies bill medical claims through the platform, using templates, fee schedules, and automation to make CPT billing a workflow instead of a research project. Get started to see it with your own services.


