Key takeaways
HCPCS code J2503 covered one 0.3 mg intravitreal injection of pegaptanib sodium, the drug sold as Macugen, for wet AMD.
The code is deleted, so a claim that still carries it triggers a code edit or a denial.
Most payers accept J3490 or J3590 in its place, but confirm the crosswalk with each one before you submit.
A J-code pays for the drug alone, so CPT 67028 has to sit alongside it to cover the injection.
Laterality, place of service and the NDC on the line decide whether an anti-VEGF drug claim survives review.
HCPCS code J2503 covered one 0.3 mg intravitreal injection of pegaptanib sodium, the anti-VEGF drug sold as Macugen. The code is deleted, so it now surfaces in rejection reports rather than on a current fee schedule. Send it out today and the claim comes back as an edit or a denial.
Two jobs bring billers here. One is closing out an audit on an old date of service. The other is deciding what to bill instead. Both need the same three answers: the code’s original scope, its replacement codes, and the documentation a payer still expects.
J2503 billed one 0.3 mg injection of Macugen
J2503 was a HCPCS Level II J-code. The Centers for Medicare and Medicaid Services (CMS) maintains that family for injectable drugs a provider gives in an outpatient setting. One line of J2503 stood for a single 0.3 mg dose delivered into the vitreous.
Pegaptanib sodium binds selectively to vascular endothelial growth factor, or VEGF. Blocking VEGF slows the abnormal vessel growth behind wet AMD. The approved schedule was one 0.3 mg injection every six weeks, and each injection counted as a single unit of service.
Why J2503 now carries a deleted status
J2503 is deleted because the drug behind it left the market. CMS refreshes HCPCS Level II on a quarterly cycle.
A code with no commercially available product does not last long through those updates. CGS Medicare records confirm the deletion in the October 2025 quarterly update.
A deleted status does not erase the claims the code once sat on. Practices that injected Macugen during the active window can still get an audit request or a retrospective denial naming J2503.
The chart from that date of service is what settles the question, so keep those records easy to pull.
J3490 and J3590 are the crosswalk codes payers accept
When a specific J-code disappears, payers push billers toward an unclassified drug code. For J2503 that means J3490 or J3590. Which of the two applies is a payer-by-payer answer, not a national rule.
An unclassified code carries no descriptor, so the claim has to supply one. Put the following into the claim narrative or a supporting attachment:
- The generic name, pegaptanib sodium, and the brand name, Macugen
- The 11-digit NDC for the vial or syringe actually used
- The dose given, 0.3 mg, and the route, intravitreal
- The date of service and the eye that was treated
Some payers also want prior authorization before they will look at an unclassified drug line. Two questions decide which code goes out, and the diagram below follows both of them.

Medicare Part B paid J2503 only under LCD L36962
Medicare Part B pays for provider-administered injectable drugs, anti-VEGF agents included, when the record proves medical necessity. For pegaptanib sodium that proof came from the local coverage determination L36962 for VEGF inhibitors, which still governs the class today.
A J2503 claim had to clear all of these:
- A confirmed diagnosis of wet AMD, diabetic macular edema or retinal vein occlusion
- Medical necessity in the clinical record, including visual acuity measurements
- Intravitreal administration by a qualified provider in an appropriate setting
- Supporting ICD-10-CM diagnosis codes on the claim itself
- Prior treatment history, where the LCD criteria called for it
Part B generally pays provider-administered drugs at average sales price plus 6%, though the exact math shifts by drug, payer and policy year. Before you quote a number to the practice, pull the current rate for your crosswalk code from the CMS Physician Fee Schedule lookup.

ICD-10-CM codes carry the medical necessity
The diagnosis code is what tells the payer why the injection happened. L36962 names wet AMD, diabetic macular edema and retinal vein occlusion as the covered indications. Those same diagnoses support a crosswalk claim for any anti-VEGF drug still on the market.
Laterality is where these claims fall over. Medicare and most commercial plans reject an unspecified-eye code when a right, left or bilateral option exists. Descriptors also move every October, so check the current year’s ICD-10-CM codes before the claim goes out.
Units, modifiers and place of service cause most denials
Three fields account for most rejections on intravitreal drug claims. Each one fails in a different way, so it pays to take them one at a time.
One unit means one 0.3 mg dose
One unit of J2503 equals one 0.3 mg injection of pegaptanib sodium. The label schedule ran to one injection every six weeks, so a single encounter bills a single unit. Never split a 0.3 mg dose across several units to chase a higher payment.
The drug code never pays for the injection
A J-code pays for the drug and nothing beyond it. The injection itself is CPT 67028, intravitreal injection of a pharmacologic agent. CPT lists it as a separate procedure. It bundles into a larger intraocular surgery done at the same session. Otherwise it bills on its own. A claim carrying the drug line alone leaves the administration unpaid.
Modifiers that belong on an intravitreal claim
Route and laterality drive the modifier choice on a drug line. The first two below appear here because billers reach for them out of habit, and neither one fits an injection into the eye.
Place of service must match where the patient sat
Place of service changes the payment rate and can sink the claim on its own:
- POS 11 (office): the injection was given in the practitioner’s office, and Part B applies office rates.
- POS 22 (on-campus outpatient hospital): the facility bills separately, and the professional fee usually drops.
- POS 19 (off-campus outpatient hospital): an off-campus department, where the payment rules differ from POS 22.
Auditors compare the POS on the claim against the site on the encounter record. Bill the location where the patient physically received the injection, not the practice’s main address.
Pro Tip
Tag every historical J2503 claim in your billing system with the encounter date and the POS code. When an audit request lands, a tagged claim takes minutes to pull instead of an afternoon.
Documentation an auditor asks for first
Weak documentation, not the wrong code, drives most recoupments on anti-VEGF claims. The charge capture and the clinical record together have to prove medical necessity as it stood on the date of service.
L36962 sets out what that record contains:
- A confirmed covered indication, with its ICD-10-CM code
- Best corrected visual acuity for both eyes at the time of treatment
- The clinical finding behind the decision to treat, such as OCT or fluorescein angiography
- Drug name, dose, NDC, route and injection site in the procedure note
- Prior treatment history, where the coverage criteria call for it
- Provider credentials showing who performed the injection
- Patient consent for the intravitreal procedure, recorded in the chart
Capture these at the point of care rather than afterwards. Notes written up weeks later read as reconstruction to an auditor, and they weaken the record they were meant to support.

Prior authorization rules differ by payer
Medicare Fee-for-Service generally does not require prior authorization for an anti-VEGF drug covered under an active LCD. Medicare Advantage, commercial plans and Medicaid managed care often do.
Check each plan before the injection is scheduled, because a missing authorization is a denial you cannot argue away on clinical grounds.
Run this check before you submit
Six lines catch nearly every avoidable rejection on a drug claim:
- The date of service sits inside the window your chosen code was active
- The drug line and the administration code, CPT 67028, are both on the claim
- The NDC matches the vial or syringe named in the procedure note
- The diagnosis code states the eye, and the laterality modifier agrees with it
- The place of service matches where the patient actually sat
- Prior authorization is on file wherever the plan demands one
The anti-VEGF codes still active in ophthalmology
Pegaptanib sodium was one of the first anti-VEGF agents cleared for wet AMD. It is also the only one in the class whose code has since been retired. Ophthalmology billers now work with four active J-codes.
The claim goes out under the code that matches the drug named in the note. The AAPC HCPCS code lookup carries the current status of each.
Practices that moved patients from Macugen to a current agent should check two fields on every claim. The J-code and the NDC must both describe the drug given on that date, not the drug the patient started on.
Practices that switched to faricimab bill it under J2777, which has its own unit definition and payer rules.
How Pabau keeps HCPCS drug claims clean
Most ophthalmology practices run a drug claim across two systems. The acuity reading, the OCT finding and the drug details sit in the chart. Someone re-keys them into a billing screen later that day.
Every re-key is a chance for the NDC, the unit count or the treated eye to drift from what the note says.
Practice management software like Pabau keeps both halves in one record. The clinical note, the diagnosis code and the drug detail all attach to the same encounter.
The claim then gets built from that record, not from a second round of typing.
For a deleted code like J2503, Pabau’s claims management software lets the biller attach the drug name, NDC and dose to an unclassified line. The payer then gets the narrative the code itself cannot supply. That cuts the information requests that stall these claims for weeks.
Keep HCPCS drug billing and documentation in one system
Pabau’s claims management tools help ophthalmology practices capture intravitreal injection notes, attach the right diagnosis codes, and submit HCPCS drug claims accurately. Fewer information requests, less rework.
Conclusion
J2503 is a closed chapter with a long tail. The code will keep turning up in audit letters and old remittance files while those dates of service stay in scope. Practices that kept their charts organized clear those requests in an afternoon, and the rest spend a fortnight reconstructing them.
For anything current, the decision is small and it repeats every time. Match the drug in the note to its own active J-code, or bill the unclassified line with a full narrative behind it. Add CPT 67028, state the eye, and check the place of service. Get those four right and the claim rarely comes back.
Pabau pulls the clinical note and the claim into one record, so the details that decide an anti-VEGF claim stop getting re-typed. Book a demo to see how it handles ophthalmic drug billing end to end.
Continue your research
Need to understand how clearinghouse submissions work for injectable drug claims? Medical claims clearinghouse guide explains how claims move from practice to payer and where errors get caught.
Want to confirm coverage before an anti-VEGF injection is given? Insurance eligibility verification outlines the steps practices use to check Part B coverage ahead of the appointment.
Handling a retrospective audit on historical J2503 claims? Denial management in healthcare covers the appeals process and how to structure a reconsideration request.
Frequently asked questions
How do I report the NDC on a drug claim?
Use the N4 qualifier, then the 11-digit NDC in 5-4-2 format, then the unit of measure and the quantity given. On a CMS-1500 that string sits in the shaded area above the service line. A 10-digit NDC copied off the carton gets rejected.
Do the JW and JZ modifiers apply to intravitreal drug claims?
Yes, for any separately payable Part B drug drawn from a single-dose container. JW reports the amount discarded, and JZ attests that none was. The two are mutually exclusive, and JZ has been required since July 1, 2023.
How far back can Medicare reopen a paid J2503 claim?
A contractor may reopen an initial determination within one year for any reason. Four years applies where there is good cause, under 42 CFR 405.980. Good cause covers new evidence and obvious error, so keep the chart for the longer window.
How do I check whether a HCPCS code is still active?
Start with the current quarterly HCPCS Level II release from CMS, then check your MAC’s own code list. A code can be deleted mid-year, so a January file will miss an October change.
Who decides when a HCPCS code is added or deleted?
CMS runs the HCPCS Level II coding process and publishes decisions for drugs and biologicals on a quarterly cycle. Manufacturers apply for a code, and the code follows the product, so a drug pulled from supply eventually loses it.