HCPCS code J3303 – Injection, triamcinolone hexacetonide
J3303 is the HCPCS Level II code for injection, triamcinolone hexacetonide, per 5 mg.
- Level
- Level II
- Category
- J — Drugs administered other than oral method
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 J3303 describes injection of triamcinolone hexacetonide per 5 mg, a corticosteroid J-code in the Drugs Administered Other Than Oral Method category.
Units are reported per 5 mg administered, so a 20 mg dose equals 4 units. Miscounting units is the most common billing error for J3303.
The JW modifier is required when drug waste occurs, and the JZ modifier confirms no waste. Missing both on a Medicare claim risks denial or audit.
J3304 is not a second strength of J3303. It is the product-specific code for Zilretta, an extended-release form of triamcinolone acetonide billed per 1 mg.
The code most often confused with J3303 is J3301, triamcinolone acetonide not otherwise specified, 10 mg. That is the Kenalog code most practices need.
Practice management software like Pabau keeps the injection record beside the claim, so billers work from the documented dose rather than a retyped one.
HCPCS Code J3303: definition and code details
HCPCS Code J3303 is a Level II HCPCS J-code that describes the injection of triamcinolone hexacetonide, reported per 5 mg. It falls under the category “Drugs Administered Other Than Oral Method,” which covers physician-administered drugs billed separately from an office visit. The code is maintained by the Centers for Medicare and Medicaid Services (CMS), which publishes annual HCPCS Level II updates each January.
The code has no termination date and remains active for the current fiscal year. Coders looking to verify the annual status can cross-reference the AAPC HCPCS Level II code lookup or the official CMS HCPCS annual release file.
Drug information: triamcinolone hexacetonide
Triamcinolone hexacetonide is a long-acting synthetic corticosteroid formulated specifically for intra-articular injection. Its duration of action commonly runs 3 to 6 weeks, though that varies by patient. That makes it the formulation of choice for inflammatory joint conditions needing a sustained local anti-inflammatory effect. In the US, the brand associated with J3303 is Aristospan, which Sandoz discontinued in 2020. Supply since then has come from Hexatrione 2% (20 mg/mL) under an FDA temporary importation arrangement. Read the label of the product your practice stocks.
Because the drug is administered by injection rather than dispensed for self-administration, it falls squarely within the buy-and-bill reimbursement model. The physician purchases the drug, administers it in the office, and then bills the payer using J3303 with units calculated from the dose given. Accurate injection documentation at the point of care is what protects that claim downstream.
Clinical indications and use cases for J3303
Triamcinolone hexacetonide is used across rheumatology, orthopedics, and dermatology for conditions where localized corticosteroid delivery reduces inflammation without the systemic effects of oral steroids. The corticosteroid injection J-code J3303 appears on claims alongside ICD-10 diagnosis codes that document the clinical necessity of the injection.
Common clinical indications and their corresponding ICD-10 codes include:
Every claim for J3303 must include a linked ICD-10 diagnosis code that supports medical necessity. Submitting J3303 without a supporting diagnosis is one of the most common reasons payers reject corticosteroid injection claims. Document the clinical rationale in the patient record before the claim goes out. That note is the audit trail protecting the practice. Practices that link the diagnosis at the point of treatment avoid reconstructing it during claim submission.
How to bill J3303: dosage units and documentation for triamcinolone injection billing
Unit calculation is where most J3303 errors originate. The code reports the drug per 5 mg administered, so the number of units billed equals the total milligrams given divided by 5.
Units are only half the job. The note behind the claim has to record the dose in milligrams, the route and site, the vial lot, the NDC, and any waste. The documentation section below sets out those fields one by one. Incomplete documentation is the second most common denial trigger after unit miscalculation. Practice management software like Pabau keeps that treatment record beside the claim. The claims tools for billers show the documented dose, so nobody has to ask the clinician for it.

Pro Tip
Document the exact milligram dose administered in the clinical note before closing the encounter. When your billing team calculates J3303 units from a vague note that says ‘triamcinolone injection given,’ they have to call the clinician for clarification. That delay costs time and increases the risk of a late or incorrect claim.
Administration CPT codes to pair with J3303
J3303 pays for the drug only. The procedure that delivers it is billed separately with a CPT code. Each administration code has its own entry in our CPT code reference. Which one applies depends on the site injected and on whether imaging guided the needle.
Two rules keep these pairings clean. First, check the current National Correct Coding Initiative edits before assuming the procedure line and the drug line will both pay. Those edits change every year. Second, when two joints are injected at one visit, most payers expect modifier 59 or the RT and LT modifiers on the second line. Confirm the convention your MAC applies rather than copying it from another payer.
Applicable modifiers for HCPCS Code J3303
CMS requires drug waste modifiers on Medicare Part B claims for separately billed physician-administered drugs. Two of them apply to J3303. Using the wrong one, or omitting both, typically results in a denial or a post-payment audit finding.
CMS made the JZ modifier mandatory on July 1, 2023. From October 1, 2023 it began rejecting claims that leave it off. Before those dates, the absence of a JW line implied no waste. Now the JZ modifier has to state it. A charge capture workflow built before mid-2023 may still send J3303 claims with neither modifier, which creates compliance exposure. Check what your billing team appends today against the current CMS JW and JZ policy.
Other modifiers may apply to J3303 depending on the clinical setting. Examples include GY, for an item or service statutorily excluded, and GA, where a waiver of liability is on file. These are payer- and situation-specific. Confirm applicable modifiers with your MAC before appending them to routine claims. For an overview of how modifier decisions fit into the broader billing picture, see the guide to medical billing compliance.
J3303 Medicare reimbursement and coverage
J3303 is covered under Medicare Part B as a separately payable physician-administered drug. Payment follows the average sales price methodology, which sets the allowable amount at ASP plus a percentage add-on. For Part B drugs the standard formula is ASP plus 6%, though that can vary by drug and policy period. The rates change every quarter, so do not rely on a fixed dollar figure from any static source, including this article. Pull the effective J3303 rate from the CMS ASP pricing files.
- Medicare Part B coverage: Yes. J3303 is a covered benefit when medically necessary and properly documented.
- Reimbursement basis: ASP-based pricing, updated quarterly by CMS.
- Buy-and-bill model: The physician purchases triamcinolone hexacetonide directly and bills Medicare after administration.
- Administration CPT code: A separate CPT code covers the injection procedure itself, such as 20610 for a major joint. It is billed alongside J3303 to capture the professional service.
- Modifier requirements: JW or JZ on every Medicare claim. JZ became mandatory on July 1, 2023, with claim rejections starting October 1, 2023.
Practices billing J3303 across several payers should expect commercial coverage criteria and rates to differ from Medicare. Some payers require prior authorization for corticosteroid injections beyond a set frequency. Verify coverage with each payer before the patient is in the chair.
NDC code crosswalk for J3303
Medicare and Medicaid require the National Drug Code (NDC) on claims for separately payable physician-administered drugs. That rule sits in the CMS Medicare Claims Processing Manual, Chapter 17. The NDC identifies the exact drug product, manufacturer, and package size billed, giving payers a verifiable record of what was actually administered.
For J3303, the applicable NDC corresponds to the specific triamcinolone hexacetonide product used. NDC numbers vary by manufacturer, vial size, and lot. The NDC on your claim must match the product pulled from your drug log, not a generic placeholder. The table below shows the NDC format for reference. Verify the current NDC against your vial labeling or wholesaler invoice before submitting.
Note that Medicaid NDC reporting requirements differ from Medicare. Some state Medicaid programs require NDC reporting on all drug claims regardless of drug type. Others follow CMS rules. Avoid conflating the two. Confirm your state Medicaid MAC’s specific NDC requirement before assuming Medicare rules apply. Capture the NDC at the point of service so nobody has to reconstruct it at billing time.
Documentation requirements for J3303 claims
A J3303 claim is only as strong as the note behind it. On audit, the reviewer compares the milligrams documented at the point of care with the units billed on the line. If the note says only that a steroid injection was given, there is nothing to compare. However carefully it was coded, the claim is then unsupportable.
Free-text addenda are the weak point here, because the detail gets added after the encounter closes and sometimes not at all. Build these fields into the injection template instead, so the record is complete at the point of care. That also makes an audit response a matter of running a report rather than pulling charts one by one.
J3303 vs J3304: key differences
These two codes sit next to each other in the HCPCS file, so coders often assume they are two strengths of the same drug. They are not. J3303 is triamcinolone hexacetonide, the long-acting crystalline suspension. J3304 is the product-specific code for Zilretta, an extended-release microsphere formulation of triamcinolone acetonide built for a single indication.
The practical rule is to read the vial or kit first, then pick the code. A 20 mg hexacetonide dose is 4 units of J3303. One Zilretta kit is 32 units of J3304. The unit bases differ by a factor of five, so substituting one code for the other also produces a unit error. The claim then fails twice over.
Where J3301 fits in
In day-to-day billing, the code most often confused with J3303 is not J3304 at all. It is J3301, which reads injection, triamcinolone acetonide, not otherwise specified, 10 mg, and covers the Kenalog products most practices keep on the shelf. If the vial says Kenalog-10 or Kenalog-40, the claim needs J3301 at 10 mg per unit. Reach for J3303 only when the label reads hexacetonide.
Related HCPCS codes
J3303 belongs to a small family of triamcinolone J-codes. Three of the others are easy to grab by mistake, because the drug names read almost the same. The table below sets out what each one covers, and the visual after it shows where the unit bases part company.

Verify the active status of any of these codes in the current CMS HCPCS annual file before you build them into a charge master. A code that is correct on the vial can still be retired in the file.
Common billing errors and compliance tips for physician-administered drug billing
J3303 claims fail for predictable reasons. Most billing teams encounter the same errors repeatedly, which makes them preventable with the right documentation habits and workflow checks.
- Wrong unit count: Billing 20 units for a 20 mg dose instead of 4 units (20 ÷ 5). This is the single most common error. Train clinical staff to document the milligram dose clearly so billers can calculate units without guessing.
- Missing modifier: Omitting both JW and JZ on Medicare claims. JZ has been mandatory since July 1, 2023, and claims without either modifier have been rejected since October 1, 2023.
- No NDC on the claim: Submitting J3303 without the 11-digit NDC. CMS requires NDC reporting on separately billed Part B drugs. Claims lacking the NDC are often rejected at the clearinghouse level.
- Diagnosis not linked: Billing J3303 without a supporting ICD-10 diagnosis code, or linking a diagnosis that doesn’t support the clinical rationale for a corticosteroid injection. Payers match the drug code to the diagnosis for medical necessity review.
- Wrong code billed: Using J3301 or J3304 when triamcinolone hexacetonide was administered. J3301 is the Kenalog acetonide code and J3304 belongs to Zilretta, so both misstate the drug. The vial label must match the J-code selected, and charge capture templates should force that choice rather than default to a favorite code.
- Stale ASP rate used: Calculating expected reimbursement from an outdated quarterly rate. Always pull the current CMS ASP file before forecasting revenue on J3303 claims.
Compliance audits for J-codes often compare the dose documented in the clinical record with the units billed on the claim. A single discrepancy across a pattern of claims can trigger a broader probe. Charge capture templates that carry the documentation checklist at the point of care stop that pattern forming.
Pro Tip
Run a quarterly self-audit on J3303 claims. Pull 20 random encounters from the past 90 days and compare the milligram dose in the clinical note with the units billed. Then verify that JW or JZ is present on every Medicare line. Catching a systematic unit error internally is significantly less damaging than finding it during a payer audit.
Private payer billing considerations for J3303
Commercial plans are not bound by Medicare policy on office-administered drugs, and most differ from it in at least one respect. Checking those differences before the patient is in the chair is cheaper than appealing afterward.
- Prior authorization: Many plans require it once injections into the same joint pass a set frequency in a benefit year.
- Pricing basis: Some plans pay from their own fee schedule or an invoice-based rate rather than the ASP formula Medicare uses.
- Site-of-care policy: A plan may direct repeat injections away from hospital outpatient departments toward the office setting.
- Buy-and-bill versus specialty pharmacy: A few plans require sourcing through their own pharmacy network. That removes the buy-and-bill margin and changes how the claim is filed.
- NDC and unit fields: Commercial claims are often rejected for a missing N4 qualifier or the wrong unit of measure. Medicare may have accepted the same information.
Record each payer rule in the charge capture template rather than in an email thread. The biller then sees it at submission instead of after the denial arrives.
How Pabau supports J3303 injection documentation
In most practices the dose lives in one system and the claim is built in another. A clinician charts 20 mg of triamcinolone hexacetonide in the right knee. A biller later retypes that dose, converts it to units, and hunts for the NDC in a separate drug log. Every hand-off is a chance to drop a digit.
Pabau keeps the detail in one record. The injection is charted at the point of care with the drug, the dose, the site, and the lot number. That record is what the billing screen shows when the claim goes out. Pabau does not select the J-code or judge medical necessity for you. It makes sure the person doing that work is reading the clinical note rather than reconstructing it from memory.
The payoff is practical. Billers make fewer calls back to the clinician at month end, and injection claims turn around faster. An audit response takes minutes to assemble rather than a day.
Billing injection codes without the admin headache
Pabau keeps the charted dose, lot, and NDC in the treatment record your billing screen shows. Your team builds the J3303 line from the note instead of chasing the clinician.
Conclusion
HCPCS Code J3303 is a precise billing instrument. Every unit on the claim must match the documented dose. Every Medicare claim needs a JW or JZ modifier, and the NDC must reflect the vial you used. Practices that get those three elements right consistently submit cleaner claims and face fewer audits. And if the label on the tray reads Kenalog or Zilretta rather than hexacetonide, the code is J3301 or J3304, not J3303.
Pabau’s claims tools connect the injection record to billing, so unit calculation draws from the documented dose rather than a coder’s memory. If your team is spending time reconstructing J3303 encounters at claim submission, that is a workflow problem worth fixing. Book a demo to see how Pabau handles injection billing from encounter to claim.
Continue your research
Billing Kenalog rather than hexacetonide? HCPCS Code J3301 covers the triamcinolone acetonide code most practices reach for, billed per 10 mg.
Stocking a preservative-free acetonide product? HCPCS Code J3300 explains the per 1 mg unit basis and the documentation it needs.
Preparing for a Medicare drug waste audit? Medical billing compliance sets out modifier requirements and the records an auditor asks for first.
Want the whole claim lifecycle in view? Revenue cycle management walks through documentation, submission, and reimbursement end to end.
Frequently asked questions
What is HCPCS Code J3303 used for?
HCPCS Code J3303 is used to report the injection of triamcinolone hexacetonide, a long-acting corticosteroid, administered by a physician or qualified provider. It is billed per 5 mg administered. Rheumatology, orthopedics, and dermatology all use it, for conditions such as inflammatory arthritis, bursitis, and keloid scars.
What drug is billed under J3303?
J3303 covers triamcinolone hexacetonide. Aristospan was the US brand until Sandoz discontinued it in 2020. Supply now comes from Hexatrione 2%, 20 mg/mL, under an FDA temporary importation arrangement. Hexacetonide is a different salt from triamcinolone acetonide, which is reported under J3300, J3301, or J3304 depending on the formulation. The product administered must be identified by its own NDC on the claim.
How many units of J3303 do I bill for a 20 mg injection?
Bill 4 units. J3303 is reported per 5 mg administered, so a 20 mg dose equals 20 divided by 5, which is 4 units. Always calculate from the milligram dose documented in the clinical note, not from vial size or default charge capture values.
What modifiers apply to J3303 on Medicare claims?
The JW modifier applies when drug waste occurs, meaning an unused portion of a single-use vial was discarded. The JZ modifier applies when no waste occurred and the full vial contents were administered. One of the two is expected on Medicare J3303 claims under current CMS policy, so confirm your billing workflow applies them on every encounter.