Key takeaways
ICD-10 Code Z23 (Encounter for immunization) is a valid, billable ICD-10-CM diagnosis code for FY2026, effective October 1, 2025 through September 30, 2026.
Z23 is used for preventive immunization encounters only. It is not appropriate for sick visits or disease treatment, even when a vaccine is incidentally administered.
CPT 90460/90461 require documented face-to-face physician counseling. Without that note in the chart, use CPT 90471/90472 instead or risk a claim denial.
Medicare pays flu, pneumococcal, and hepatitis B administration under G0008, G0009, and G0010, not CPT 90471.
Practice management software like Pabau keeps the vaccine record, the administration code, and Z23 on one encounter, then submits the claim through Claim.MD.
ICD-10 Code Z23: Definition and billable status for FY2026
ICD-10 Code Z23 is a billable ICD-10-CM diagnosis code for an encounter whose primary purpose is vaccination. It covers preventive immunization visits only, so a sick visit with an incidental flu shot needs a different first-listed code.
Z23 sits in the Z20-Z29 block of ICD-10-CM Chapter 21, Factors influencing health status and contact with health services. It covers standard preventive immunization encounters: flu shots, COVID-19 vaccines, pediatric well-child series, travel vaccines, and pneumococcal vaccines. The code is valid for all HIPAA-covered transactions from October 1, 2025 through September 30, 2026.
When to use ICD-10 Code Z23
Use Z23 when the reason for the visit is vaccination. Per ICD-10-CM Official Coding Guidelines Section I.C.21, Z23 is the first-listed diagnosis for an immunization-only encounter.
These are the visit types it covers, as long as vaccination is the primary purpose of the encounter:
- Annual influenza vaccine (all age groups)
- COVID-19 vaccine administration
- Pediatric well-child immunization series (DTaP, MMR, varicella, etc.)
- Pneumococcal vaccine (adults and high-risk patients)
- Travel vaccines (hepatitis A/B, typhoid, yellow fever)
- Shingles vaccine (Shingrix series)
- Meningococcal vaccine (adolescents and college entrants)
When Z23 does not apply: On a sick visit with an opportunistic flu shot, the illness is the primary diagnosis. Z23 may be listed as an additional code, but it cannot be first-listed. Z23 is also never used for allergy immunotherapy, or when the encounter is primarily for a post-vaccination reaction.
CPT codes that pair with Z23
Z23 is the diagnosis code. The four CPT administration codes below tell the payer how the vaccine was delivered and whether counseling occurred. Getting the CPT selection wrong is the most common reason for immunization claim denials, according to AAFP billing guidance.
Each administration code pairs with Z23 on the claim. You also need a separate vaccine product code (90658 for flu, 90714 for Td, etc.) to identify the specific antigen administered. Submitting only the administration code and Z23 without the product code is a common denial trigger. Our CPT code reference lists the full administration and product code families if you need to look one up.
Billing CPT 90460 for pediatric immunizations
90460 is the most frequently misapplied code in immunization billing. It requires a face-to-face encounter with a physician or qualified healthcare professional who provides counseling about the vaccine being administered. That counseling must be documented in the encounter note. A generic “vaccine given” entry does not satisfy the requirement, per AAPC coding guidance.
Practical guidance for pediatric practices billing 90460 with Z23:
- Age limit: 90460 is intended for patients through age 18. Most commercial payers restrict it to that range, and Medicare does not cover it at all for adults.
- Combination vaccines: A combination vaccine like MMR counts as one injection but three components (measles, mumps, rubella). Bill 90460 for the first component, then 90461 twice for the second and third. Pair the full encounter with Z23.
- No counseling = 90471: If a nurse administers the vaccine without a documented physician counseling session, use 90471 instead. Billing 90460 without a counseling note is upcoding and will trigger an audit.
- Medicaid variation: Some state Medicaid programs limit 90460 to specific well-child visit codes. Check your state’s Medicaid fee schedule before billing.
Sequencing and documentation rules for Z23
The ICD-10-CM Official Guidelines for Coding and Reporting (Section I.C.21) are clear on sequencing. Z23 is the first-listed code when the sole reason for the encounter is immunization. If a chronic condition is also addressed or monitored during the visit, that condition may be listed as an additional code. Z23 stays first only if vaccination is the primary purpose.
Documentation has to support that sequencing. Every Z23 encounter should carry these elements in the chart note before the 837P claim goes out:
- Vaccine type and brand name
- Manufacturer lot number and expiration date
- Anatomical site and route of administration
- Vaccine Information Statement (VIS) edition date provided to patient
- Name and title of the administering clinician
- Counseling note (required only when billing 90460)
Structured digital forms capture these fields more reliably than free-text notes, which cuts transcription errors and keeps the record audit-ready. Refer to the CMS ICD-10 codes page for the current official guidelines file, updated each October.
Pro Tip
Flag Z23 encounters in your practice management system as a distinct visit type. This makes it easier to audit for missing lot numbers and VIS documentation before claims go out. Those two items account for most preventable denials on immunization claims.
Medicare and Medicaid billing with Z23
Medicare Part B covers several vaccine types under the preventive care benefit, and Z23 is the diagnosis code for all of them. The administration code is where Medicare parts company with commercial payers. Part B requires HCPCS G codes for flu, pneumococcal, and hepatitis B, and it denies CPT 90471.
Medicare does not reimburse CPT 90460 or 90471 for adult immunization. Use G0008 for influenza, G0009 for pneumococcal, and G0010 for hepatitis B administration. COVID-19 administration uses CPT 90480, which replaced the product-specific codes in 2024 and applies to every payer and age group. Medicaid rules vary by state, so check your state fee schedule for allowed administration codes and rates before you submit.
The grid below puts the two payer paths side by side, so you can see which administration code applies before the claim goes out.

Related ICD-10 codes and adjacent Z codes
Coders working in preventive care frequently need to cross-reference Z23 against adjacent codes in the Z00-Z29 range. The table below covers the codes most commonly confused with or paired alongside Z23, sourced from the CDC/NCHS ICD-10-CM web tool.
Common coding mistakes to avoid with Z23
Claim denials on immunization encounters cluster around the same handful of errors. Fixing them before submission is faster than working a denial queue.
- Using Z23 for a sick visit with incidental vaccination. If the patient came in for an ear infection and received a flu shot while there, the ear infection is first-listed. Z23 can be added as an additional code, but not listed first.
- Billing CPT 90471 to Medicare. Part B denies 90471 for flu, pneumococcal, and hepatitis B. Submit G0008, G0009, or G0010 instead, depending on the vaccine.
- Billing 90460 without a documented counseling note. The chart must show that a physician or qualified healthcare professional provided face-to-face vaccine counseling. “Vaccine administered per protocol” does not satisfy the requirement. Use 90471 when counseling is not documented.
- Omitting the vaccine product code. The claim needs both the administration code (90460, 90471, or a Medicare G code) and the product CPT, such as 90658 for flu vaccine. Z23 without a product code often draws a request for additional information or an outright denial.
- Missing lot number and VIS date in the chart. Many payers and state immunization registries require this data. Missing it creates audit risk even when the claim pays.
- Applying Z23 for allergy immunotherapy. Allergy shots use a different code range (CPT 95115/95117). Z23 is for vaccine encounters only.
A form that prompts for lot number, VIS date, and administration site catches most of these errors at the point of care. That is cheaper than reworking a denial three weeks later.

How Pabau supports immunization encounter documentation and billing
Z23 billing errors usually start in the chart rather than the code set. The coder picks the right code, but the note has no lot number, or the counseling entry is missing. Practice management software like Pabau makes those fields part of the encounter itself, so the note cannot be filed half-finished.
When a clinician opens an immunization encounter in Pabau, the record prompts for the vaccine name, lot number, and expiration date. It also asks for the administration site, the VIS edition date, and the clinician’s credentials.
Pabau’s medical claims management then pulls what is already on that record into a pre-filled claim. Submission runs through Claim.MD, with real-time eligibility checks and claim status tracking, so nobody retypes the encounter into a separate billing tool.
Payments come back the same way. Electronic remittance advice posts back against the claim, so a partial payment on a vaccine line shows up without opening the payer portal. The audit trail on each encounter is what you hand over when a payer or a state immunization registry asks.

Cleaner claims start with better documentation
Pabau records the vaccine type, lot number, administration code, and Z23 on one encounter, then submits the claim through Claim.MD. See how it works.
Conclusion
Z23 itself is rarely the problem. What decides whether the claim pays is the administration code you pair with it. The second half is whether the chart can prove the encounter happened as billed. Get the payer split right, and the rest of the immunization workflow is routine.
If your practice still types lot numbers into a free-text note and chases rework on vaccine claims, the fix is upstream of the coder. Book a demo to see how Pabau keeps the immunization record and the claim on one encounter.
Continue your research
Want to understand how immunization claims reach the payer? Claim.MD clearinghouse review explains how 837P files are validated and routed across 4,000+ US payers.
Trying to reduce rework from denied vaccine claims? Denial management in healthcare covers the most effective pre-submission and post-denial strategies for preventive care practices.
Need the encounter summary in one document? What is a superbill sets out the fields a payer or patient expects when a vaccine claim is billed outside your usual channel.
Want the wider revenue cycle picture? What is revenue cycle management covers payer coverage logic, eligibility verification, and clean-claim criteria across government and commercial payers.
Frequently asked questions
What is ICD-10 Code Z23 used for?
ICD-10 Code Z23 documents an encounter for immunization. That means a visit whose primary purpose is administering a vaccine or series of vaccines. It applies to flu shots, COVID-19 vaccines, pneumococcal vaccines, pediatric immunization series, and travel vaccines. It does not apply to encounters where the primary reason is illness treatment, even if a vaccine is administered during that visit.
Is Z23 a billable ICD-10 code?
Yes. Z23 is a valid billable ICD-10-CM diagnosis code for FY2026, effective October 1, 2025 through September 30, 2026. It can be submitted on all HIPAA-covered electronic transactions and is accepted by Medicare, Medicaid, and commercial payers for qualifying immunization encounters.
Can Z23 be used for flu shots?
Yes. Influenza encounters are one of the most common uses for Z23. For commercial payers, pair it with CPT 90471, or 90460 when a physician documents counseling. For Medicare Part B, use HCPCS G0008 instead. Either way, add the flu product code, such as 90658 or 90674, for the formulation you administered.
Can Z23 be used for COVID-19 vaccine administration?
Yes, Z23 is the diagnosis code for COVID-19 vaccine encounters. Administration is reported with CPT 90480, which replaced the product-specific administration codes in 2024 and applies to all payers and ages. Medicare coverage rules changed after the Public Health Emergency ended, so verify current CMS guidance before billing. Commercial payers still take Z23 as first-listed with the administration and product codes on the same claim.