Pabau Engage inbox

Pabau Engage is here: every patient conversation in one inbox.

Learn more
Book a demo Book a demo
ICD-10-CM Code

ICD code Z28.9 Immunization not carried out for unspecified reason

Billable Code Specific Code


Code Definition

Z28.9 is the billable ICD-10-CM code for immunization not carried out for unspecified reason.

Z28.9 belongs to the Z28 parent category covering immunization not carried out and underimmunization status. Z28 itself is non-billable. Only its specific subcodes, Z28.9 included, are valid for HIPAA-covered transactions. This code became effective October 1, 2025, as part of the FY2026 ICD-10-CM edition.

Chapter
Z00-Z99 Factors influencing health status and contact with health services
Category
Z28 Immunization not carried out and underimmunization status
Group
Z28.9 Immunization not carried out for unspecified reason
Billable
Yes
Save time. Improve accuracy. Get paid faster.
Automate coding with Pabau

Let Pabau's smart automation suggest the right codes, reduce claim denials, and keep your practice compliant—effortlessly.

  • AI-powered code suggestions
  • Real-time compliance checks
  • Faster claims, fewer denials
Why practices choose Pabau
Save hours every week

Automate repetitive tasks and focus on what matters most—your patients.

Improve accuracy

Reduce coding errors and ensure compliance with the latest regulations.

Get paid faster

Clean claims, fewer denials, and faster reimbursements.

Grow with confidence

Powerful insights and reporting to help your practice thrive.

HIPAA compliant SOC 2 certified GDPR-compliant Trusted by 4,000+ clinics worldwide

Key takeaways

Key takeaways

Z28.9 is a billable ICD-10-CM code valid for FY2026, effective October 1, 2025, for immunizations deferred with no reason recorded.

The parent code Z28 is non-billable; never submit it for HIPAA-covered transactions. Always code to a specific subcode.

Z28.9 is a last-resort code. If the reason for non-vaccination appears anywhere in the record, a more specific Z28 subcode applies instead.

Associated CPT vaccine administration codes (90460, 90471) may appear alongside Z28.9 when the clinician documents counseling or a separate service at the same visit.

Pabau, practice management software, links encounter documentation to claim preparation and submits claims electronically through Claim.MD.

ICD-10 Code Z28.9: definition and billable status

ICD-10 Code Z28.9 is a billable ICD-10-CM status code. It indicates that a patient did not receive an immunization and that the medical record leaves the reason unspecified or undocumented. It sits in Chapter 21 of ICD-10-CM, “Factors influencing health status and contact with health services” (Z00-Z99). Within that chapter it falls in the Z20-Z29 block, under the Z28 category for immunization not carried out and underimmunization status. According to the CDC/NCHS ICD-10-CM browser, Z28.9 is confirmed as a billable, specific code, valid for use in HIPAA-covered transactions for FY2026.

The code’s clinical meaning is narrow. The clinician did not give the vaccine, and the chart gives no reason for it. A different Z28 subcode applies the moment a reason exists. That covers patient refusal, a medical contraindication, a belief-based objection, and prior immunity. Z28.9 does not cover vaccine hesitancy, and it does not cover an encounter where the clinician forgot to ask.

Field Detail
Code Z28.9
Full description Immunization not carried out for unspecified reason
Billable/specific Yes – valid for HIPAA-covered transactions
Effective date October 1, 2025 (FY2026 edition)
ICD-10-CM chapter Chapter 21 – Factors influencing health status (Z00-Z99)
Block Z20-Z29 – Persons with potential health hazards related to communicable diseases
Parent code Z28 – Non-billable; do not use for claims
Code type Status code (not a disease or outcome code)

All Z28 subcodes: full list and descriptions

The Z28 category groups every scenario in which a clinician did not administer a vaccination, plus underimmunization status. Each branch maps to a different kind of reason. Z28.0 covers contraindications, Z28.1 belief-based decisions, Z28.2 other patient decisions, Z28.3 underimmunization status, and Z28.8 other reasons. The AAPC ICD-10-CM lookup lists Z28.9 as the final, unspecified option rather than the default. Coders who know the full family reach for Z28.9 less often, because they recognize that the record already contains one of the reasons below.

Code Description Use when…
Z28.01 Immunization not carried out because of acute illness of patient The vaccine is held because the patient is acutely ill at this visit
Z28.02 Immunization not carried out because of chronic illness or condition of patient A documented chronic illness or condition contraindicates the vaccine
Z28.03 Immunization not carried out because of immune compromised state of patient The patient’s immune compromised state contraindicates the vaccine
Z28.04 Immunization not carried out because of patient allergy to vaccine or component The chart documents an allergy to the vaccine or one of its components
Z28.09 Immunization not carried out because of other contraindication A contraindication is documented but matches none of the four codes above
Z28.1 Immunization not carried out because of patient decision for reasons of belief or group pressure The patient or guardian cites religious or philosophical belief, or group pressure
Z28.20 Immunization not carried out because of patient decision for unspecified reason The patient decided against the vaccine and no reason is stated
Z28.21 Immunization not carried out because of patient refusal The record documents a straightforward refusal by the patient
Z28.29 Immunization not carried out because of patient decision for other reason The patient’s stated reason is documented but fits no other subcode
Z28.310 Unvaccinated for COVID-19 The patient has received no dose of any COVID-19 vaccine (added April 1, 2022)
Z28.311 Partially vaccinated for COVID-19 The patient started but did not complete the COVID-19 series (added April 1, 2022)
Z28.39 Other underimmunization status The patient is underimmunized for a vaccine other than COVID-19
Z28.81 Immunization not carried out due to patient having had the disease A prior confirmed infection is documented in the chart
Z28.82 Immunization not carried out because of caregiver refusal A parent, guardian or other caregiver refuses on the patient’s behalf
Z28.83 Immunization not carried out due to unavailability of vaccine The practice had no stock of the vaccine at the time of the encounter
Z28.89 Immunization not carried out for other reason A reason is documented but fits no specific subcode above
Z28.9 Immunization not carried out for unspecified reason No reason appears anywhere in the medical record

Five of these headings are parent codes rather than claim codes. Z28.0, Z28.2, Z28.3, Z28.31 and Z28.8 all require a further character, so coders can submit only the codes listed in the table above. Note too that Z28.83 covers a vaccine the practice did not have in stock. A documented allergy to the vaccine is Z28.04.

When to use Z28.9 instead of a more specific subcode

The rule is straightforward. Z28.9 is correct only when the clinician did not carry out the immunization and no reason appears anywhere in the medical record. If the clinician recorded even a brief note, such as “patient declined today” or “will defer pending labs,” a more specific subcode applies. Poor documentation habits inflate Z28.9 usage well beyond what CMS designed the code to capture. That pattern draws payer scrutiny on preventive care claims.

Working through a decision framework before coding prevents the most common mis-assignments. The Centers for Medicare and Medicaid Services (CMS) and the National Center for Health Statistics (NCHS) maintain the ICD-10-CM Official Guidelines. They require coders to use the most specific code the documentation supports. Z28.9 sits at the bottom of that decision tree, and the ladder below runs through it in order.

Z28 decision ladder: step 1 contraindication documented uses Z28.01 to Z28.09
Six documentation states, six destinations: Z28.9 is reached only at the bottom rung. Codes from the ICD-10-CM FY2026 tabular list.
  • Patient is acutely ill at the visit: use Z28.01
  • A chronic illness or condition contraindicates the vaccine: use Z28.02
  • Patient is immune compromised: use Z28.03
  • Known allergy to the vaccine or a component: use Z28.04
  • Patient declines on religious or philosophical grounds: use Z28.1
  • Patient simply refuses the vaccine: use Z28.21
  • Patient decides against it for another stated reason: use Z28.29
  • COVID-19 vaccination status is being reported: use Z28.310 or Z28.311
  • Patient previously had the disease: use Z28.81
  • Caregiver refused on behalf of the patient: use Z28.82
  • The vaccine was out of stock: use Z28.83
  • A reason exists but fits no specific code: use Z28.89
  • No reason documented anywhere in the record: use Z28.9

Before assigning Z28.9, read the full encounter note, the problem list, and the nursing documentation. Nursing staff often capture the reason in a separate triage note, where a coder reviewing only the physician note will miss it.

Documentation requirements for Z28.9

Supporting Z28.9 means the medical record has to show affirmatively that no one captured a reason for non-vaccination. Silence on the subject does not amount to that showing. Clinicians should record that they did not give the immunization, and that no one ever obtained or stated a reason.

Billing compliance depends on documentation that supports the code selected. For Z28.9, the minimum record elements are:

  • A notation that the clinician did not administer the scheduled vaccine at this encounter
  • A statement (or absence of statement) confirming that no one documented or obtained the reason
  • The immunization entry marked “deferred” or “not given” in the encounter note or immunization record
  • No conflicting documentation elsewhere in the chart that would support a more specific Z28 subcode

The CMS ICD-10-CM official guidelines state that coders may not infer a reason. The clinician has to document it explicitly before a coder can assign a more specific code. Where the chart carries no reason at all, Z28.9 is appropriate and defensible. Practices handling high volumes of preventive care often build an immunization deferral prompt into the encounter template. That captures the reason at the point of care.

Common coding errors with Z28.9

Most denials and audit findings tied to Z28.9 trace back to a small set of repeating mistakes. Payers report them back through the usual denial codes on preventive care claims, so a remittance review will surface them quickly.

  • Using a non-billable parent code: Z28 itself is not a valid submission code, and neither are Z28.0, Z28.2, Z28.3, Z28.31 or Z28.8. The claim will reject. Always code to the full subcode level.
  • Coding a belief-based refusal as Z28.9 or Z28.21: A religious or philosophical objection has its own code, Z28.1. Z28.21 is a plain refusal with no belief rationale, and Z28.9 means no one documented anything at all.
  • Treating Z28.39 as a COVID-19 code: Z28.39 is other underimmunization status and is not specific to COVID-19. The COVID-19 codes are Z28.310 and Z28.311, both added on April 1, 2022.
  • Reading Z28.83 as an allergy code: Z28.83 covers unavailability of the vaccine. A documented allergy to the vaccine or one of its components is Z28.04.
  • Using Z28.9 when the chart documents a reason: If the chart says the patient declined today, that is a documented reason. Z28.21 (patient refusal) is more appropriate than Z28.9.
  • Skipping nursing and triage notes: Reason statements frequently appear in triage notes or nursing assessments, not the physician note. Coders who review only the physician documentation miss these and default to Z28.9 unnecessarily.
  • Confusing Z28.9 with underimmunization status codes: Z28.9 describes non-administration at a specific encounter. It does not describe a patient’s overall vaccination history or underimmunization status more broadly.
  • Omitting secondary diagnosis codes: A contraindication such as a documented immune compromised state has its own code. Report that condition as a secondary diagnosis alongside the Z28.0 subcode, never in place of it.

High volumes of preventive care claims make these patterns expensive. A quality check built into the coding workflow catches them before claims reach the clearinghouse.

Pro Tip

Run a monthly audit of Z28.9 usage across your practice. Pull all claims coded Z28.9 and review the corresponding encounter notes. If more than 15-20% of those notes carry a documented reason for non-vaccination, your team needs targeted education on the Z28 decision tree. High Z28.9 volumes relative to Z28.1, Z28.21 and Z28.29 usually point to a documentation habit rather than a run of unspecified cases.

CPT codes commonly associated with Z28.9

Z28.9 appears as a secondary or additional diagnosis code on preventive care and well-child visit claims. The CPT codes below are the ones most commonly billed on the same claim, particularly in pediatric and family medicine practices. Using these CPT codes alongside Z28.9 tells payers that a scheduled vaccine went unadministered at the encounter. That can affect how payers reimburse vaccine counseling services. Clearinghouse edits check the pairing against payer rules before the claim reaches adjudication.

CPT Code Description Relevance to Z28.9
90460 Immunization administration – counseling, first vaccine component, through 18 years Reported when counseling occurred but vaccine was not administered; payer policies vary
90471 Immunization administration (percutaneous, intradermal, subcutaneous, or intramuscular); 1 vaccine May appear when a separate service at the encounter is documented; not billable without administration
99381-99387 New patient preventive medicine evaluation, by age range Z28.9 as secondary when immunization deferred at a new preventive visit
99391-99397 Established patient preventive medicine evaluation, by age range Z28.9 as secondary when immunization deferred at an established patient well visit
99401-99404 Preventive medicine counseling, individual, by time Reported when vaccine education/counseling is the primary encounter focus

CPT code 90460 requires documentation of counseling. Billing it on a claim that also carries Z28.9, with no counseling note, will typically result in a denial. The same caution applies to 90471, which is not reportable unless the clinician administered a vaccine. Verify payer-specific guidance before reporting either code alongside a non-administration diagnosis.

COVID-19 immunization status and Z28.9

On April 1, 2022, ICD-10-CM added two dedicated COVID-19 codes under Z28.31, “Unvaccinated for COVID-19.” They sit inside Z28.3, the underimmunization status branch, rather than alongside the immunization-not-carried-out codes. These codes matter because payers, public health registries, and some quality measure sets treat COVID-19 vaccination status as a distinct reporting category.

The relationship between these codes and Z28.9 follows the same specificity logic as the rest of the Z28 family. Z28.9 is not the correct code for an unvaccinated COVID-19 patient. The correct approach:

  • Z28.310 – Unvaccinated for COVID-19: the patient has received no dose of any COVID-19 vaccine
  • Z28.311 – Partially vaccinated for COVID-19: at least one dose given, series incomplete
  • Z28.39 – Other underimmunization status: a general code for any other vaccine, not a COVID-19 code
  • Z28.9: still applies when the clinician deferred a non-COVID-19 vaccine at the same encounter without documenting a reason

Practices billing Medicare Annual Wellness Visits may need to report COVID-19 vaccination status as part of the encounter. The ICD List reference tool provides a searchable table of the full Z28.3 subcode set. That includes the two COVID-19 codes added on April 1, 2022, both still current in the FY2026 edition.

Pediatric and well-child visit coding with Z28.9

Pediatric and family medicine practices generate more Z28.9 volume than any other specialty. Well-child visits are where clinicians are most likely to defer scheduled immunizations. The Vaccines for Children (VFC) program and Medicaid immunization requirements add another layer of obligation. Practices in VFC must record reasons for non-administration in their registry entries, so the documentation almost always exists. That makes Z28.9 rarely appropriate in a VFC context.

In practice, the most common pediatric scenario generating a legitimate Z28.9 is a walk-in sick visit. Immunizations were on the schedule, but the family did not raise them and the clinician did not address them in the note. No reason appears anywhere in the record. Even then, the better workflow is to document “immunizations deferred, reason not discussed at this encounter.” That note moves the code toward Z28.89, other reason. A system that prompts staff for a deferral reason at check-out moves most of these encounters onto a specific subcode.

The American Academy of Family Physicians (AAFP) and the American Academy of Pediatrics both recommend an immunization status check in every well-child workflow. That holds whether or not the clinician gives vaccines that day. That single change tends to shift Z28.9 usage toward more specific subcodes. The conversation happens, and staff document it.

How practice management software supports Z28.9 coding accuracy

Coders assign Z28.9 because the record hands them nothing more specific to work with. The correction belongs at the encounter, where a structured prompt can capture the reason while the patient is still in the room. Software that pairs ICD-10-CM code search with those prompts keeps the chart and the claim in step.

Pabau’s claims management software connects encounter documentation with claim preparation, so the coder works from what the clinician recorded. Digital intake forms carry structured immunization status fields. They capture the refusal reason, the caregiver decision-maker, and the deferral rationale before staff close the encounter.

Pabau claims and billing dashboard listing submitted claims and their status
Pabau’s claims view lists every submitted claim and its status, so a run of Z28.9 denials surfaces within days rather than quarters.

For practices submitting Z28-coded claims to US payers, the remittance files returned by the clearinghouse reveal denial patterns quickly. A spike in Z28.9 denials or downcodes points back to the encounter template rather than the coding queue. Pabau submits claims electronically through Claim.MD, and the pre-submission edits there catch code-pair problems before a payer sees them.

Pro Tip

Build a structured immunization deferral field into your encounter template. Offer a simple dropdown: patient declined, caregiver declined, medical contraindication, prior immunity, vaccine unavailable, or deferred with no reason discussed. That captures what a specific Z28 subcode needs at the point of care. This one change can reduce Z28.9 usage significantly within a billing quarter.

Code immunization deferrals from what the chart says

Pabau connects encounter documentation to claim preparation and submits claims electronically through Claim.MD. Your coders see what the clinician recorded before the claim leaves the practice.

Pabau claims management dashboard

Conclusion

ICD-10 Code Z28.9 is a defensible choice when the record carries no reason for non-vaccination at all. Most practices reach for it far more often than the code warrants. A structured deferral prompt, checked against the Z28 subcode family, moves those encounters onto the code the documentation supports.

Pabau connects documentation to claim preparation and routes claims through Claim.MD’s pre-submission edits. Submission problems surface before a payer sees them. If your preventive care claims are generating Z28.9 denials, start with the encounter template. Book a demo to see how Pabau helps your team code immunization deferrals from what the chart says.

Continue your research

Continue your research

Need the wider compliance picture behind your coding? Medical billing compliance covers the laws, the common violations, and a downloadable checklist for your practice.

Want to see what a clearinghouse checks before a claim goes out? Claim.MD clearinghouse review explains how pre-submission edits work and what they catch.

Looking to reduce denials across your preventive care billing? Denial management in healthcare covers root-cause analysis and workflow fixes for common denial patterns.

Frequently asked questions

What is ICD-10 Code Z28.9?

ICD-10 Code Z28.9 is a billable ICD-10-CM diagnosis code for immunization not carried out for an unspecified reason. It belongs to Chapter 21 (Z00-Z99) and is valid for FY2026 claims submission. Use it only when the medical record contains no documentation of why the vaccine was not given.

Is Z28.9 a billable ICD-10-CM code?

Yes. Z28.9 is a billable, specific ICD-10-CM code valid for HIPAA-covered transactions as of the FY2026 edition (effective October 1, 2025). Its parent code, Z28, is non-billable and cannot be used for claim submission.

When should I use Z28.9 instead of a more specific Z28 subcode?

Use Z28.9 only when the immunization was not carried out and no reason is documented. That means checking the encounter note, the nursing notes and the triage notes. If any reason appears, select the matching specific subcode from the Z28 family instead.

Is Z28.9 valid for FY2026?

Yes. Z28.9 is valid for FY2026, effective October 1, 2025. It appears in the current CDC/NCHS ICD-10-CM browser as a billable specific code with no change to its description or classification from prior editions.

How does Z28.9 relate to COVID-19 immunization status coding?

Z28.9 covers non-administration of any vaccine when the reason is undocumented. COVID-19 has its own codes under Z28.31, added on April 1, 2022: Z28.310 for unvaccinated and Z28.311 for partially vaccinated. Z28.39 is general underimmunization status, not a COVID-19 code.

×