CPT code 90691 – Typhoid Vi polysaccharide vaccine billing
90691 is the CPT code for typhoid vaccine, Vi polysaccharide (ViPS), intramuscular. It reports the vaccine product only, the single 0.5 mL injection sold as Typhim Vi, for patients aged 2 and older.
The injection itself is billed on a second line, usually 90471, or 90460 for a counseled patient through age 18. Z23 is the first-listed diagnosis. The oral live typhoid vaccine is a different code, 90690.
- Section
- 90281-99199 Medicine
- Subsection
- 90476-90749 Vaccines, Toxoids
- Code descriptor
- 90691 Typhoid vaccine, Vi polysaccharide (ViPS), intramuscular
- Billable
- No
- Code also known as
- Typhim Vi, ViPS vaccine, typhoid polysaccharide vaccine, injectable typhoid vaccine, typhoid shot
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
Automate repetitive tasks and focus on what matters most—your patients.
Reduce coding errors and ensure compliance with the latest regulations.
Clean claims, fewer denials, and faster reimbursements.
Powerful insights and reporting to help your practice thrive.
HIPAA compliant SOC 2 certified GDPR-compliant Trusted by 4,000+ clinics worldwide
Key takeaways
CPT code 90691 reports the typhoid Vi polysaccharide vaccine product only, so the injection goes on a second line as 90471 or 90460.
90691 is the injectable vaccine and 90690 is the oral live Ty21a capsule series, and swapping them gets the claim denied.
Z23 is the first-listed diagnosis, with Z71.84 or Z20.09 added only when travel counseling or exposure risk is documented.
Medicare Part B doesn’t cover typhoid vaccine, but Part D covers it as a vaccine benefit with no cost-sharing for adults.
Pabau records lot and expiry against the appointment and sends claims through Claim.MD, with eligibility checks and ERA remittances.
CPT code 90691 covers the typhoid Vi vaccine product only
CPT code 90691 is the code for the typhoid Vi polysaccharide vaccine, given as a single 0.5 mL intramuscular injection. The AMA CPT code set treats it as a vaccine-product code. It pays for the vaccine itself, while giving the injection goes on a separate administration line.
Typhim Vi contains no live bacteria, so it suits immunocompromised patients who can’t take the live oral vaccine. That clinical split is also why the two typhoid vaccine codes can’t stand in for each other.
What 90691 includes, and what goes on its own line
Included in 90691: The vaccine product itself, meaning the vial, the antigen dose and its material cost.
Billed separately from 90691:
- Immunization administration, reported as 90471 or 90460.
- Vaccine counseling that goes beyond the administration itself, but only when a distinct E/M service is documented.
- A separately identifiable office visit on the same day, reported with modifier 25 on the E/M code.
- The Vaccine Information Statement, which you document but can’t bill.
A claim with 90691 as its only line pays for the vaccine and nothing else. The administration code is the line that pays for your staff’s time with the patient.
90691 vs 90690: The route decides the code
Mixing up 90691 and 90690 is the most common coding error on typhoid vaccine claims. The two codes describe different vaccines, given by different routes, to different age groups.
A practical rule: If a needle went into the patient’s arm, the code is 90691. If the patient left with a blister pack of capsules, the code is 90690.
How a 90691 claim moves from the vial to payment
Every 90691 claim needs a companion administration code on the same claim and date of service. Here’s the order the work happens in at a typical travel medicine visit.
- Check coverage when the patient books. Travel vaccines often sit under a separate benefit, so run insurance eligibility verification before the visit, not at the chair.
- Record the dose as you give it. Note the lot number, expiry date, manufacturer, injection site and the VIS edition date.
- Pick the product code by route. An injection is 90691, and capsules dispensed for home use are 90690.
- Add the administration code. Use 90471 at any age without qualifying counseling. Use 90460 through age 18 when a physician or QHP counsels and documents it.
- Lead with the diagnosis. List Z23 first, and add an exposure or travel code only when the note supports it.
- Submit, then read the remittance. A missing administration line shows up as a denial on the ERA, and it’s a quick resubmission.
Steps three to five are where claims go wrong, and the chart below lays out each of those three decisions.

When a separate E/M service is performed and documented at the same visit, add modifier 25 to the E/M code. The vaccine and administration codes never carry a modifier in this situation.
Pro Tip
Run a weekly report of vaccine claims where 90691 appears without 90471 or 90460 on the same date of service. Payers deny the product line when no administration code is present, and catching it before submission saves a resubmission cycle.
Diagnosis codes: Z23 first, exposure codes only when documented
The CDC ICD-10-CM tool lists Z23 (Encounter for immunization) as the code for a visit made for vaccination. It’s the first-listed diagnosis on a 90691 claim.
When the visit is purely for vaccination, Z23 leads and the other codes are optional extras. Never list a typhoid fever code (A01.00 to A01.09) on a preventive claim. An active disease code on a healthy traveler invites a medical-necessity review.
Medicare covers typhoid vaccine through Part D, not Part B
Medicare Part B doesn’t cover CPT code 90691 for travel. The Part B vaccine benefit is limited to influenza, pneumococcal, hepatitis B and COVID-19 vaccines, so typhoid vaccine falls to Part D.
- Medicare Part B: Not covered for travel. No National Coverage Determination supports 90691, so expect a non-covered denial on a Part B claim.
- Medicare Part D: Part D covers ACIP-recommended adult vaccines that Part B doesn’t, with no cost-sharing since 2023. Typhoid vaccine is billed through the patient’s Part D plan or a pharmacy, not on a Part B claim. Confirm the plan’s billing route before the visit.
- Medicaid: Coverage varies by state. Some programs cover typhoid vaccine for high-risk occupational groups, so check the state’s Medicaid fee schedule.
- Vaccines for Children (VFC): Typhoid vaccine isn’t supplied through the VFC program. Children receive purchased stock, billed with 90691 as usual.
For most adult travelers under 65, 90691 is a commercial or self-pay service. Tell patients at booking, so the cost doesn’t arrive as a surprise balance after the trip.
Commercial plans often file typhoid under a travel benefit
Commercial rules for 90691 vary more than they do for routine childhood vaccines. Four things decide whether the claim pays.
- Travel benefit tier: Many plans place typhoid vaccine under a travel medicine benefit with its own deductible or coinsurance. A patient with free preventive care may still owe for 90691.
- Prior authorization: Most plans don’t require it for a single-dose travel vaccine, but confirm. Some ask for the travel itinerary or a physician order.
- Medical necessity letter: Food processing workers, microbiology lab staff and long-stay travelers may need a short letter noting the exposure risk or destination.
- Out-of-network status: Travel medicine practices that don’t contract with every plan often bill 90691 as self-pay. Collect at the visit when network status is unclear.
Before you submit: A 90691 claim checklist
Run through these seven checks before a typhoid vaccine claim leaves the practice. Each one maps to a denial reason in the next section.
- 90691 and its administration code share the same claim and date of service.
- The route in the note is an injection, not capsules.
- The patient is at least 2 years old.
- Z23 is first-listed, and no A01 code appears anywhere on the claim.
- Lot number, expiry, injection site and VIS date are in the note.
- Coverage is settled: travel benefit confirmed, Part D route checked, or self-pay agreed.
- Modifier 25 sits on the E/M code only, and only if a separate visit is billed.
Common 90691 denials and how to fix them
Most 90691 denials fall into five groups, and each one has a clear fix. The table pairs each denial with its usual cause.
When the same denial repeats across several 90691 claims, look up the reason in our guide to denial codes. A repeating code usually points to a payer rule, which calls for a changed billing setup rather than one appeal at a time.
Meeting clean claim standards on the first submission prevents most of these denials. The checklist above covers the fields payers check first.
Documentation that holds up in a payer audit
Good 90691 documentation does two jobs. It answers a payer audit, and it gives the next clinician a complete immunization record.
Every 90691 note should contain:
- Vaccine lot number and expiration date.
- Manufacturer name (Sanofi Pasteur for Typhim Vi).
- Injection site and route, usually the deltoid, intramuscular.
- The edition date of the CDC typhoid Vaccine Information Statement and the date you gave it. Typhoid vaccine isn’t covered by the national vaccine injury program, so this isn’t a federal legal requirement. Provide and document it anyway, as best practice and for payer audits.
- Clinical indication, such as travel destination and dates, occupational exposure or endemic-area residence.
- The administering clinician’s signature.
Build a vaccine template in your EHR that asks for each of these fields before the note can be signed. Then nobody has to remember the list during a busy session.
What 90691 pays, and how to set a self-pay price
There’s no Part B rate to anchor on, because Part B doesn’t cover the vaccine for travel. Commercial payers set their own contracted amounts, and self-pay prices vary by practice and region.
The CMS Physician Fee Schedule lookup shows how Medicare lists 90691 for your locality. The AAPC Codify CPT lookup carries the full AMA descriptor and coding notes.
Most practices price a self-pay typhoid visit from three parts: the vaccine’s acquisition cost, a dispensing fee and an administration fee. Itemize all three on the superbill, so patients can claim out-of-network reimbursement from their insurer themselves.
Pro Tip
Check the wholesaler invoice before you set the self-pay price for 90691. Typhim Vi list prices change, and a self-pay price below acquisition cost loses money on every dose.
How Pabau keeps 90691 claims moving from chair to remittance
A typhoid vaccine visit leaves a trail across three places: the stock log, the clinical note and the claim. Each hand-off is a chance to lose a lot number or drop the administration line.
Pabau, the practice management platform we build, records each vaccine’s lot and expiry against the patient and the appointment. Our claims software for practices then sends the claim electronically through Claim.MD, with eligibility checks before the visit.
Electronic remittances (ERAs) post back to the same claim. Your team sees a denial and its reason code without chasing paper, and can correct and resubmit the same day.

Send clean vaccine claims from one record
Pabau records vaccine lot and expiry on the appointment, checks eligibility and sends claims through Claim.MD. ERA remittances post back to the claim, so denials get worked quickly.

Conclusion
CPT code 90691 is a small line that fails for avoidable reasons. Get the route right, put the administration code beside it and lead with Z23, and most denials never happen.
The bigger risk is coverage. Check the travel benefit or the Part D route before the patient sits down. Quoting a price before the shot is far easier than collecting after a non-covered denial.
Book a demo to see how Pabau records each dose and sends vaccine claims through Claim.MD from the same patient record.
Continue your research
Need to see how clearinghouse checks catch errors before submission? Claim.MD clearinghouse overview explains how claim scrubbing works and what it checks.
Seeing unfamiliar denial codes on vaccine remittances? Electronic remittance advice explained shows how to read ERA files and act on CARC codes.
Building a repeatable process for working denials? Denial management in healthcare sets out how to track, appeal and prevent denied claims.
New to the billing side of a travel medicine practice? What is medical billing walks through how a claim gets from the visit to payment.
Want the full picture from booking to payment posting? Revenue cycle management guide covers each stage from encounter to payment posting.
Frequently asked questions
How often can CPT code 90691 be billed for one patient?
Once per dose. CDC advises a Typhim Vi booster every 2 years for people who stay at risk. A repeat 90691 claim two years later is normal for frequent travelers.
Does Medicare cover CPT code 90691?
Not under Part B. Typhoid vaccine falls under Part D, which covers ACIP-recommended adult vaccines with no cost-sharing since 2023. Bill it through the patient’s Part D plan or a pharmacy, and confirm the plan’s route first.
Which ICD-10 codes go with 90691?
Z23 is the first-listed code. Add Z71.84 when travel counseling is documented, or Z20.09 for a documented exposure risk. Never use an A01 typhoid fever code on a preventive claim.
Can 90691 be billed with other travel vaccines at the same visit?
Yes. Each vaccine gets its own product code. Bill 90471 for the first injection and 90472 for each extra injected vaccine, or 90460 per vaccine for a counseled patient through age 18.
Can 90691 be billed for a child under 2?
No. Typhim Vi is licensed from age 2, so a claim for a younger child doesn’t match the product. Record why the dose was deferred instead.



