Every anti-VEGF injection creates at least two claim lines that must agree with each other. Intravitreal injection billing pairs CPT 67028 for the procedure, with RT, LT or both eyes marked, with the HCPCS code for the drug, billed in that code’s units.
On the drug line, Medicare also expects JZ when nothing was discarded, or a separate JW line for discarded drug. When an exam happens the same day, it needs its own reason to be billed with modifier 25. Because a single dose of these drugs can cost far more than the injection itself, everyone from the exam room to the billing office has a stake in getting each line right.
CPT 67028: Per-Eye Reporting and the 0-Day Global
CPT 67028 reports an intravitreal injection of a drug, separate from the drug itself. It is reported per eye and carries a 0-day global period, so care on the following days is not bundled into it.
The procedure line and the drug line must travel together. Under the Medicare billing and coding article A52451, 67028 goes on the same claim as the drug and needs RT, LT or modifier 50. If the drug is denied as not reasonable and necessary, the injection is denied with it.
In addition, the eye-specific diagnosis matters. Wet age-related macular degeneration, diabetic macular edema and retinal vein occlusion codes all carry laterality, which must match the eye injected.
Matching 67028 to the Right Drug Code
The drug line carries most of the payment, so its code must name the exact product injected. Anti-VEGF J-codes cover the original brands, while biosimilar Q-codes cover each approved biosimilar separately.
| Drug | HCPCS | One unit equals |
|---|---|---|
| Eylea (aflibercept) | J0178 | 1 mg |
| Eylea HD | J0177 | 1 mg |
| Lucentis (ranibizumab) | J2778 | 0.1 mg |
| Vabysmo (faricimab) | J2777 | 0.1 mg |
| Beovu (brolucizumab) | J0179 | 1 mg |
| Byooviz (ranibizumab biosimilar) | Q5124 | 0.1 mg |
| Cimerli (ranibizumab biosimilar) | Q5128 | 0.1 mg |
| Pavblu (aflibercept biosimilar) | Q5147 | 1 mg |
Several more aflibercept biosimilars now have their own Q-codes, so confirm the code from the vial label every time. Bevacizumab used in the eye is repackaged rather than sold as an eye product, and payers differ on how to bill it, so follow each payer’s instruction.
Drug Units, NDCs and Vial Math
In intravitreal injection billing, units come from dividing the dose given by the code’s unit size. A few common doses show how it works:
- Eylea 2 mg is J0178 with 2 units.
- Lucentis 0.5 mg is J2778 with 5 units.
- Vabysmo 6 mg is J2777 with 60 units.
- Eylea HD 8 mg is J0177 with 8 units.
Many commercial and Medicaid plans also require the 11-digit NDC on the drug line, with its own quantity and unit of measure. A wrong or missing NDC is a frequent rejection, even when the HCPCS code is correct.
These details matter most under buy and bill, where the practice buys the drug up front and recovers the cost from the claim. Medicare generally pays office-administered Part B drugs at average sales price plus an add-on, so a single unit error on a high-cost drug can erase the margin on that visit. Our broader ophthalmology billing and coding guide covers the rest of the retina claim.
JZ or JW on the Drug Line
Anti-VEGF drugs come in single-dose vials or prefilled syringes, so Medicare wants every drug line to say whether any drug was thrown away. Since July 1, 2023, that answer has been required, and claims without it may be returned as unprocessable, according to the CMS JW and JZ FAQ.
Work through the choice in this order:
- Was the whole labeled dose given? Then add the JZ modifier to the drug line. This is the usual case for single-dose eye injections.
- Was part of a labeled dose discarded? Bill the dose given on one line without a modifier, then the JW modifier discarded drug amount on a second line with the same code.
- Was the leftover only overfill? Overfill is never billed, so it does not count as discarded drug. Use JZ.
- Did the drug come from a multi-dose vial? Neither modifier applies.
In practice, most anti-VEGF lines carry JZ, because the labeled dose is given in full. The JW line is the exception, and the chart should explain why part of the dose was discarded.
Billing Injections in Both Eyes
Many patients receive an injection in each eye at the same visit. Medicare accepts either format for 67028: one line with modifier 50, or a bilateral injection RT LT pair on two lines. Many commercial plans, however, accept only one of the two, so store each payer’s preference.
The drug side follows the same logic. Report the drug used in each eye with its own units, and add JZ to each drug line when no drug was discarded. When the two eyes receive different drugs, each drug gets its own code, which also makes the per-eye story clear to the payer.
Finally, each eye needs its own supporting diagnosis. A bilateral claim linked to a right-eye-only diagnosis will usually pay for one eye, or deny outright. Our post on eye-specific ICD-10 laterality shows how right, left and bilateral codes are built.
Billing an Exam on Injection Day
The brief check before an injection is part of 67028, even with a 0-day global. An exam is billable on the same day only when it goes beyond that routine pre-injection assessment.
Choosing Eye Codes or E/M
The eye codes 92012 vs 99213 choice depends on what the visit covers and what the payer pays better. Eye codes such as 92012 and 92014 describe ophthalmology exams without the medical decision-making rules of E/M. Office E/M codes such as 99213 follow those rules instead. Either can work, but the record must support the level chosen.
When Modifier 25 Holds Up
A modifier 25 same-day E/M is supported when the physician evaluates a new problem, a change in the other eye or a worsening condition that changes the plan. It is not supported for a routine follow-up that simply confirms the planned injection. Our guide to modifier codes in medical billing explains how payers review it.
Imaging done the same day, such as OCT with 92134, is a separate service and is billed on its own line.
Injection Claim Examples From Typical Visits
These two visits show how the physician’s note turns into a claim, and what the record must say for each line to pay.
Example 1: one eye, routine follow-up. A patient with wet macular degeneration in the right eye returns for a scheduled Eylea injection, and the full 2 mg is given.
- 67028-RT
- J0178-JZ, 2 units, with the NDC
- No exam line, because the visit only confirmed the planned injection
Example 2: both eyes, new finding. A patient with diabetic macular edema in both eyes receives Vabysmo in each eye. During the visit, the physician also evaluates new floaters and orders imaging.
- 99213-25 or 92012-25, supported by the new problem
- 92134 for the OCT
- 67028-50, or 67028-RT and 67028-LT, by payer
- J2777-JZ, 120 units in total, split by eye if the payer asks
In the first visit, the note only needs the eye, the drug and confirmation that the full dose was given. In the second, the note must describe the new floaters separately from the injection plan, or the exam line will not hold up. In both, every line links to an eye-specific diagnosis.
Drug-Line Errors That Deny Injection Claims
Because the drug line carries most of the payment in intravitreal injection billing, small mistakes there cost the most. These are the errors that most often stop an anti-VEGF claim:
- Units that do not match the dose. Billing Eylea as 1 unit instead of 2, or Vabysmo as 6 units instead of 60, underpays or triggers an edit.
- An NDC that does not match the code. A biosimilar NDC on a brand J-code line, or the reverse, rejects at many payers.
- Missing JZ or JW. Medicare can return the line as unprocessable when neither modifier is present.
- Laterality on one line only. The procedure says right eye, but the diagnosis or drug line says nothing, or says left.
- An exam billed without a separate problem. A routine pre-injection check billed with modifier 25 invites a takeback on audit.
Each of these slips is easy to catch before submission with a quick line-by-line check of units, NDC, modifiers and laterality. They also sit among the most expensive ophthalmology billing challenges, because the practice has usually already paid for the vial.
What Each Injection Claim Line Must Prove
Read an injection claim one line at a time and the logic becomes simple. The 67028 line proves which eye was treated. The drug line proves what was given, in the right units, and JZ or JW proves what happened to the rest of the vial. An exam line, when present, proves a separate problem was addressed.
The pressure on these claims is only growing, as more biosimilars arrive with new Q-codes and payers shift their preferred drugs each year. Good intravitreal injection billing therefore depends on updating code and payer rules as often as the drug shelf changes. For retina practices that want a second set of eyes on those updates, ophthalmology billing specialists can review drug lines before they reach the payer.
Intravitreal Injection Billing FAQs
Is CPT 67028 billed per eye?
Yes. Report it with RT or LT for one eye, and with modifier 50 or two lines for both eyes, based on the payer.
How many units of J0178 are billed for Eylea 2 mg?
Two units, because one unit of J0178 equals 1 mg of aflibercept.
When is the JZ modifier used?
When the full labeled dose from a single-dose vial or syringe is given and none is discarded. Overfill does not count as discarded drug.
Can an office visit be billed on injection day?
Only when the visit addresses a separate problem or change in condition, billed with modifier 25. A routine pre-injection check is included in 67028.
Do biosimilars use different codes?
Yes. Each biosimilar has its own Q-code, such as Q5124 for Byooviz or Q5147 for Pavblu, so code from the product actually injected.
