HCPCS code J3304 – Zilretta extended-release triamcinolone injection
J3304 is the HCPCS Level II code for injection, triamcinolone acetonide, preservative-free, extended-release, microsphere formulation, 1 mg. It bills Zilretta, the extended-release steroid injected into the knee for osteoarthritis pain, and each milligram is one unit.
A standard 32 mg dose therefore goes on the claim as 32 units. Kenalog-10 and Kenalog-40 bill under J3301 at 10 mg per unit instead. The product in the vial decides both the code and the unit count.
- Level
- Level II
- Category
- J — Drugs administered other than oral method
- Code range
- J3300-J3304 Triamcinolone injection codes
- Billable
- No
- Code also known as
- Zilretta (triamcinolone acetonide extended-release injectable suspension)
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
HCPCS code J3304 bills Zilretta, the extended-release triamcinolone acetonide injection, at 1 mg per unit, so a standard 32 mg dose is 32 units.
Kenalog-10 and Kenalog-40 bill under J3301 at 10 mg per unit, and J3105 is terbutaline, not a triamcinolone code.
Zilretta is labeled only for osteoarthritis pain of the knee, and the label says repeat dosing hasn’t been shown safe or effective.
Many commercial plans approve one injection per treated knee, often after a trial of an immediate-release steroid injection.
Bill the injection itself with CPT 20610 or 20611, and add the JZ modifier on Medicare when the whole single-dose kit goes in.
HCPCS code J3304 bills Zilretta by the milligram
HCPCS code J3304 covers injection, triamcinolone acetonide, preservative-free, extended-release, microsphere formulation, 1 mg. In practice, that means Zilretta. Each milligram is one billing unit, so the standard 32 mg knee injection goes on the claim as 32 units.
Zilretta packs triamcinolone acetonide into microspheres that release the steroid slowly inside the joint. Its label covers one use: an intra-articular injection for osteoarthritis pain of the knee. The product comes as a single-dose kit that delivers 32 mg in 5 mL.
J3304 took effect on January 1, 2019. Before then, the same product was reported under temporary codes Q9993 in the office and C9469 in hospital outpatient departments. If an old fee schedule or chargemaster still lists either one, update it.
Pick the right triamcinolone code before you count units
Four HCPCS codes describe injectable triamcinolone for these settings, and each one uses a different unit. Choosing the code by molecule alone is how a Zilretta claim ends up paid at a fraction of its cost, or flagged for overbilling.
The National Drug Code (NDC) on the carton settles which row applies. If the vial in your note says Kenalog, the claim belongs on J3301, whatever the joint. Zilretta’s label also states that it is not interchangeable with other injectable triamcinolone acetonide products.
One more trap sits in older billing resources. J3105 is injection, terbutaline sulfate, up to 1 mg, a bronchodilator. It has never described triamcinolone, so a claim pairing J3105 with a steroid NDC will not match.
A worked example: One right-knee Zilretta claim
Here’s how a routine claim comes together. A Medicare patient with primary osteoarthritis of the right knee receives one Zilretta kit in the office, without ultrasound guidance. On a left-knee claim, LT and M17.12 take their place.
Line 1 is the joint injection, reported as 20610. Use 20611 instead if the provider used ultrasound guidance and kept a permanent recording and report. Line 2 is the drug, with the 11-digit NDC reported in the payer’s drug-detail fields.
Medicare pays separately billable Part B drugs at a quarterly payment limit based on average sales price (ASP) plus 6%. For July to September 2026, the published J3304 limit was $19.28 per unit. That puts 32 units at $616.96 allowed, with Medicare paying 80% and the patient owing the 20% coinsurance.
The chart shows how little of that survives a wrong unit count.

Rates move every quarter, so pull the current figure from the CMS ASP pricing file before you quote a patient. In a hospital outpatient department, check the code’s status indicator in the OPPS addendum, because packaging rules decide whether the drug pays separately.
How the claim moves from injection to payment
A J3304 claim passes through more hands than most office procedures. Walk through it once with your front desk and billing team, and each step has an owner.
- Check coverage first. Confirm the plan, whether it needs prior authorization, and whether that knee has had Zilretta before.
- Document the injection. The note records the product, dose in mg, lot number, expiry, knee, approach and any imaging guidance.
- Code the encounter. Pair 20610 or 20611 with J3304, convert milligrams to units, and add laterality and the JZ or JW modifier.
- Submit with drug detail. Add the NDC, its unit of measure and quantity in the format your payer asks for.
- Post and reconcile. Compare the remittance against the expected allowed amount and chase any drug line paid at one unit.
Payers usually approve Zilretta once per knee
Commercial and Medicare Advantage plans often treat Zilretta as a prior-authorization drug. The criteria tend to follow the label closely, and the repeat-dose limit catches practices most often.
One 2026 utilization policy from Express Scripts, used by CareSource, is typical. It approves one 32 mg injection per treated knee when the patient meets three conditions.
- Imaging, such as x-ray or MRI, confirms osteoarthritis in the knee being treated.
- The patient has already tried at least one intra-articular corticosteroid injection in that knee.
- That knee hasn’t been treated with Zilretta before.
These rules come straight from the label’s limitation of use, which says repeat-dose efficacy and safety haven’t been demonstrated. Original Medicare has no national coverage determination for Zilretta, so your Medicare Administrative Contractor’s medical necessity rules apply.
What trips a J3304 claim up, and how to fix it
Most J3304 denials come back for a handful of predictable reasons. The table pairs each one with the fix. To read the CO, OA and PR codes on the remittance itself, use our guide to medical billing denial codes.
Before you submit: A J3304 checklist
Run through these points with the note open. Each one maps to a denial in the table above.
- The product in the note is Zilretta, and the NDC on the claim matches the carton.
- Units equal the milligrams given, normally 32 per knee.
- The diagnosis names the treated knee, and the procedure line carries RT, LT or the payer’s bilateral convention.
- The injection line is 20610, or 20611 with an ultrasound recording and report on file.
- JZ is on the Medicare drug line, or a JW line covers any discarded amount.
- Prior authorization is on file where the plan requires it, and that knee has no earlier Zilretta dose.
- The note holds the lot number and expiry date for the kit used.
Pro Tip
When both knees are treated on the same day, the drug line carries 64 units from two kits. Medicare usually takes the injection as 20610 with modifier 50, but commercial payers vary, so check each plan’s bilateral rule.
Common mistakes that cost practices the drug payment
Denials are visible. These mistakes often aren’t, because some claims pay anyway and leave money behind.
- Trusting a fee schedule built years ago. Q9993, C9469 and the J3105 mix-up all survive in old chargemasters.
- Recording the dose in mL only. A volume of 5 mL leaves the biller guessing at units, so write 32 mg in the note.
- Treating all triamcinolone as one drug. The extended-release kit and a Kenalog vial differ in code, unit and price.
- Booking the injection before the authorization lands. A retro request after a repeat-dose denial rarely succeeds.
- Writing off a one-unit payment. Send a drug line paid at one unit back as a corrected claim, so the other 31 milligrams get paid too.
How Pabau keeps Zilretta injections claim-ready
Most J3304 problems start in the treatment room, where a dose gets written as “1 vial” or the lot number never leaves the box. Fixing them later means chasing the clinician and the paper trail.
In Pabau, our practice management and EHR software, the clinician records the drug lot, expiry and dose against the patient and the appointment. Your biller opens the record and finds the product, the knee and the milligrams in one place.
From there, Pabau’s claims management software pre-fills the claim from the patient’s record. It also checks that required claim fields are complete before the claim can be sent, including through Claim.MD for US payers.
Keep every Zilretta dose on the record
Pabau records the drug lot, expiry and dose against the patient and appointment, so your team bills J3304 from a complete note. Book a demo to see the workflow.

Conclusion
J3304 rewards practices that treat the drug line as carefully as the injection. Get the product right, count milligrams rather than kits, and confirm the knee hasn’t had Zilretta before.
Those three habits cost minutes at the point of care and prevent the denials that take weeks to unwind. Remember the stakes, too. Zilretta pays far more than a Kenalog injection, so every coding slip on it costs more.
Book a demo to see how Pabau keeps each injection’s drug lot, expiry and dose on the patient record, ready for billing.
Continue your research
Billing a conventional Kenalog injection instead? HCPCS code J3301 covers triamcinolone acetonide not otherwise specified, billed per 10 mg.
Working with triamcinolone hexacetonide? HCPCS code J3303 explains the per-5-mg hexacetonide code.
Seeing repeat claim rejections across multiple codes? Denial management in healthcare covers the workflows that cut denial rates across your billing operation.
Want to decode remittance remark codes faster? Medical billing denial codes breaks down CO, OA and PR codes with guidance on each.
Need a broader medical billing foundation? What is medical billing explains the process from encounter to payment.
Frequently asked questions
Does Medicare cover Zilretta?
Yes. Original Medicare Part B covers Zilretta as a provider-administered drug when it is medically necessary for knee osteoarthritis. The patient usually owes 20% coinsurance after the Part B deductible.
How long does a Zilretta injection last?
Zilretta’s pivotal trial measured pain relief over 12 weeks. The microspheres release triamcinolone slowly, so the drug stays in the joint longer than a standard steroid suspension.
Can Zilretta be injected into the hip or shoulder?
It can, but only as off-label use. The FDA label covers osteoarthritis pain of the knee, and most payer policies deny other joints.
Is Zilretta a steroid or a gel injection?
It’s a corticosteroid. Hyaluronic acid gel injections, often called viscosupplements, are separate products billed under their own HCPCS codes.
Does J3304 need an NDC on the claim?
Most Medicaid programs and many commercial payers require the 11-digit NDC alongside J3304. Add it on every claim so one billing workflow fits every payer.



