Pabau Engage inbox

Pabau Engage is here: every patient conversation in one inbox.

Learn more
HCPCS Code

HCPCS code S0500 – Disposable contact lens


Code Definition

HCPCS code S0500 is the Level II code for a disposable contact lens, billed one unit per lens. It's an S-code, so commercial insurers and many Medicaid plans accept it, while traditional Medicare never does.

That payer split is the fact to check first. Send S0500 to Medicare fee-for-service and it comes back non-covered, though a vision plan may pay it. Getting the payer, code and units right protects your dispensing revenue and spares patients surprise bills. The sections below follow a claim from coverage check to payment, including the denials that trip S0500 up.

Level
Level II
Category
S Temporary national codes (non-Medicare)
Code range
S0500-S0596 Vision supplies
Billable
No
Code also known as
disposable contact lens
Save time. Improve accuracy. Get paid faster.
Automate coding with Pabau

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
Why practices choose Pabau
Save hours every week

Automate repetitive tasks and focus on what matters most—your patients.

Improve accuracy

Reduce coding errors and ensure compliance with the latest regulations.

Get paid faster

Clean claims, fewer denials, and faster reimbursements.

Grow with confidence

Powerful insights and reporting to help your practice thrive.

HIPAA compliant SOC 2 certified GDPR-compliant Trusted by 4,000+ clinics worldwide

Key takeaways

Key takeaways

HCPCS code S0500 bills a disposable contact lens per lens, so each lens dispensed is one unit.

Traditional Medicare never pays S0500 and covers contact lenses only after cataract surgery or for aphakia, using V-codes.

Commercial insurers and many Medicaid plans accept S0500, but units, quantity limits and modifiers vary by plan.

Specialty, color and rigid lenses take other codes, such as S0512, S0514 or the V2500 series.

Fittings, refractions and lens solutions are billed on their own lines or not at all, never inside S0500.

HCPCS code S0500 bills one disposable lens at a time

HCPCS code S0500 is the Level II code for a disposable contact lens, and its unit is a single lens. It sits in the S-code block of the HCPCS codes, which private insurers and Medicaid programs use for items without a national code. Traditional Medicare doesn’t recognize S-codes, so the payer decides whether S0500 is even an option.

CodeOfficial descriptorCode typeUnit
S0500Disposable contact lens, per lensHCPCS Level II (S-code)One lens

The descriptor is narrow on purpose. It names one lens type, disposable, and one unit, the lens. So a patient who leaves with a box for each eye generates a line per eye, and the units equal the lenses dispensed.

What S0500 covers, and when another code fits better

S0500 covers the disposable lens itself and nothing around it. In practice, the trouble starts when a dispense also includes a fitting, a specialty lens or a bottle of solution. Each of those has its own home, shown below.

Item on the orderHow to code it
Disposable contact lensS0500, one unit per lens
Daily wear specialty contact lensS0512, not S0500
Color contact lensS0514, not S0500
Gas permeable, scleral or toric lensThe matching V2500-series code, where the plan uses V-codes
Contact lens fitting92310 or 92311, or the plan’s evaluation code such as S0592
Refraction92015, billed separately
Lens modification92325, billed separately
Solutions and care productsPlan-specific supply code, or non-covered

The fitting is a separate service, so it gets its own line under 92310 rather than riding on the lens charge. Colored lenses work the same way. They bill under S0514, and many plans treat cosmetic tints as non-covered.

Lens solution trips up a lot of claims. Most payers treat it as a non-covered supply or want a separate code, so never fold it into the S0500 line.

S0500 or a V2500-series code? Let the payer decide

Choosing between S0500 and the V2500 family is the most common contact lens coding question. Start with the payer, then match the lens type to the descriptor. The chart below walks through both steps.

Decision chart for contact lens codes
The payer settles the code family before the lens type does. Based on CMS HCPCS descriptors and DME MAC LCD L33793.
CodeDescriptorPayer applicabilityUnit
S0500Disposable contact lens, per lensCommercial and many Medicaid plansPer lens
V2500Contact lens, PMMA, spherical, per lensMedicare (limited cases) and MedicaidPer lens
V2501Contact lens, PMMA, toric or prism ballast, per lensMedicare (limited cases) and MedicaidPer lens
V2510Contact lens, gas permeable, spherical, per lensMedicare (limited cases) and MedicaidPer lens
V2520Contact lens, hydrophilic, spherical, per lensMedicare (limited cases) and MedicaidPer lens
V2521Contact lens, hydrophilic, toric or prism ballast, per lensMedicare (limited cases) and MedicaidPer lens
V2530Contact lens, scleral, gas impermeable, per lensMedicare (limited cases) and MedicaidPer lens

Here’s the working rule. Medicare and Medicaid programs that follow Medicare policy expect a V-code, such as V2520 for a soft spherical lens. Commercial insurers and managed Medicaid plans with their own fee schedules often take S0500, but check the contract first.

Medicare pays for contact lenses only after cataract surgery

Traditional Medicare never pays S0500. S-codes aren’t valid for Medicare, and routine contact lenses are excluded from coverage anyway.

The exception is narrow. Under the DME MAC Refractive Lenses LCD (L33793), Medicare treats lenses as a prosthetic when the eye’s natural lens is missing. That means aphakia, congenital aphakia or pseudophakia after cataract surgery.

  • After cataract surgery with an IOL: Medicare covers one pair of eyeglasses or contact lenses after each surgery. Bill the V-code to the DME MAC.
  • Routine or cosmetic lenses: These are non-covered. An ABN isn’t required for an item Medicare excludes by law, but a voluntary notice still documents the patient’s cost.
  • Medicare Advantage: Some plans add a vision benefit that covers lenses. A few accept S0500, others want V-codes, so verify each plan.

The cheapest place to catch a Medicare mismatch is the front desk. A quick insurance eligibility verification at booking tells you which code family the claim needs before anyone orders lenses.

Medicaid and commercial plans each set their own S0500 rules

S0500 lives mostly in Medicaid and commercial billing. Coverage, quantity limits and fees shift by state and by plan, so treat the table below as a starting map.

Payer typeTypically covers S0500?Notes
Traditional Medicare Part BNoV-codes only, and only after cataract surgery or for aphakia
Medicare AdvantagePlan-dependentCheck the plan’s supplemental vision benefit
State Medicaid (fee-for-service)Varies by stateSome states use S0500, others require V-codes
Managed Medicaid (MCO)Often yesThe MCO contract sets the fee, so verify before billing
Commercial insuranceVaries by planVision riders often cover S0500, while the medical benefit may not

Because there’s no national fee, each payer sets its own rate. State Medicaid programs publish theirs in online fee schedules. Commercial rates sit in your provider contract, and the 835 remittance from recent paid claims shows what the plan actually allows.

Pro Tip

Pull the ERA remittance for every S0500 claim paid in the last 90 days and compare the allowed amount against your current fee schedule. If a managed Medicaid or commercial plan is paying below contract, you have grounds to appeal or renegotiate. Underpayments on supply codes like S0500 can run for months when nobody audits remittances.

Prior authorization usually hinges on quantity limits

No universal prior authorization (PA) rule applies to S0500. For a standard disposable lens, the trigger is usually quantity rather than the lens itself.

  • Benefit-period caps: Most plans allow one lens supply per benefit period or per year. Dispensing past that cap without PA leads to a denial.
  • Commercial vision riders: Many process S0500 without PA when the dispense falls inside the annual supply benefit.
  • Managed Medicaid: Plans may require PA for larger quantities or early replacements, so check the plan manual.

When PA is required, send a signed contact lens prescription, the latest refraction and the diagnosis code. Then record the authorization number in the chart, because it goes in Box 23 of the claim.

ICD-10 diagnosis codes that support an S0500 claim

Every S0500 claim needs an ICD-10-CM code in Box 21 of the CMS-1500. It should reflect why the patient needs contact lens correction, and it must be coded to full specificity.

ICD-10-CM codeDescriptionClinical context
H52.10Myopia, unspecified eyeThe most common pairing for a disposable soft lens
H52.209Unspecified astigmatism, unspecified eyeSupports correction where astigmatism is documented
H52.4PresbyopiaSupports lenses for near-vision correction
H18.10Bullous keratopathy, unspecified eyeTherapeutic lens use; confirm the plan’s code and PA rules first
H18.609Keratoconus, unspecified, unspecified eyeUsually calls for a specialty, gas permeable or scleral lens code, not S0500
Q12.3Congenital aphakiaMedicare covers lenses here, billed with V-codes to the DME MAC
Z96.1Presence of intraocular lensPost-cataract lenses; Medicare covers one pair per surgery with V-codes

Watch the laterality digit. Codes such as H52.20 and H18.60 are category headers, so a claim that stops there gets rejected. Some payers also limit covered diagnoses for vision supplies, so check the policy list before you submit.

Documentation to have in the chart before you bill

A clean claim starts with a complete record. If an auditor pulls an S0500 claim, these are the items they’ll look for.

  • A valid contact lens prescription: It shows the prescriber’s name, NPI, signature and date. Most payers want it dated within 12 months of the dispense.
  • Refraction findings: The latest exam’s refraction supports the lens power dispensed.
  • The dispense date: The date of service is the day the patient received the lenses, not the exam date.
  • The lens count per eye: Record how many lenses went to each eye, because that number becomes the units.
  • LT/RT modifiers: Where the payer asks for them, LT and RT show which eye each line covers.
  • The PA number: If the plan required authorization, the reference number goes in Box 23.

How an S0500 claim moves from dispense to payment

Take a patient who leaves with a 30-lens box of daily disposables for each eye. Here’s how that dispense becomes a CMS-1500 or 837P claim.

  1. Box 21 (diagnosis): Enter the supporting ICD-10-CM code, such as H52.10 for myopia, in position A.
  2. Box 24B (place of service): Use 11 for an office. If you dispense elsewhere, confirm the POS code with the payer.
  3. Box 24D (procedure and modifier): Enter S0500 on two lines, one with RT and one with LT, where the payer uses them.
  4. Box 24E (pointer): Point each line to the diagnosis letter from Box 21.
  5. Box 24G (units): Enter 30 on each line, one unit per lens. Some plans count boxes differently, so check before you key it.
  6. Box 23 (prior authorization): Add the PA number if one was issued, or leave it blank.

After submission, the claim passes the clearinghouse edits and reaches the payer’s adjudication queue. The remittance then tells you whether each line paid at contract. HCPCS Level II codes change every year, so confirm the descriptor in the CMS HCPCS files or the AAPC HCPCS lookup.

Before you submit: A five-point S0500 check

Run through this list before the claim leaves the practice. It takes a minute and catches the errors behind most rework.

  • The payer accepts S-codes. If it’s traditional Medicare, stop and switch to the V-code rules.
  • The lens is disposable. Specialty, color and rigid lenses need their own codes.
  • The units match the lenses dispensed per eye, and LT/RT is added where the plan asks.
  • The diagnosis is coded to the final digit and points to each line.
  • The dispense falls inside the plan’s quantity limit, or a PA number is on file.

Common S0500 denials and how to clear them

S0500 denials tend to repeat the same handful of causes. The table maps each one to its fix, so your billing team can triage faster.

Denial reasonResolution
Wrong payer (Medicare FFS)Don’t rebill S0500 to Medicare. If the patient is aphakic or post-cataract, bill the V-code to the DME MAC. Otherwise the lenses are non-covered and the patient pays.
Missing prior authorizationAsk for retroactive PA if the plan allows it. If PA wasn’t required, appeal with the plan policy attached.
Unsupported or incomplete diagnosisCode the diagnosis to full specificity and check it against the plan’s covered list, then resubmit.
Missing or incorrect modifierAdd LT or RT to each line where the payer requires them, then correct and resubmit.
Units exceed plan limitCheck the plan’s quantity rule and whether it counts lenses or boxes. Request PA before dispensing past the limit.
Non-covered lens typeConfirm the lens is disposable and not a specialty or color lens. If the plan excludes it, give the patient a cost notice before dispensing.

Two mistakes cause most of the rework. Teams bill two units for a pair when the plan wanted every lens counted, or they send S0500 to Medicare out of habit. Tracking denials by payer, part of good denial management in healthcare, shows which plans need a different setup.

How Pabau keeps contact lens claims complete before they’re sent

In many optical practices, S0500 claims are keyed by hand after the dispense. The lens count, the laterality and the PA number all live in different places, which is how units and authorizations go missing.

Pabau, the practice management platform we build, includes claims management software that pre-fills the claim form from the patient record. Its HCPCS and ICD-10 lookup libraries help staff confirm a descriptor quickly. The claim won’t send until required fields, such as the authorization number, are complete.

On the US pipeline through Claim.MD, Pabau also tracks claim status and posts ERA remittances. That turns the 90-day remittance check from earlier into a routine review rather than a spreadsheet project.

Pabau insurance remittance screen
Pabau’s remittance matching shows which payments are matched and which claims are unpaid, so an underpaid S0500 line stands out quickly.

Send complete contact lens claims the first time

Pabau pre-fills claim forms from the patient record, offers HCPCS and ICD-10 lookup libraries, and checks required fields before a claim is sent. Your S0500 claims leave the practice complete.

Pabau claims management dashboard

Conclusion

S0500 rewards one habit: confirm the payer before you count the lenses. Once you know the plan takes S-codes, the per-lens units and the laterality fall into place.

The trade-off is a little time at the front desk. A two-minute eligibility check and a look at the plan’s quantity rule cost far less than reworking a 60-unit claim.

Book a demo to see how Pabau pre-fills contact lens claims from the patient record and tracks them through to payment.

Continue your research

Continue your research

Billing the exam that comes before the lenses? HCPCS code S0592 covers the comprehensive contact lens evaluation and how it bills alongside the supply.

Fitting lenses for a presbyopic patient? ICD-10 code H52.4 explains the presbyopia diagnosis and the procedure codes it supports.

Handing patients an itemized record of the dispense? Superbill guide walks through the parts of a superbill that patients and payers accept.

Want the bigger picture of how claims get paid? What is medical billing follows the process from charge capture to payment posting.

Working a stack of vision supply denials? Denial codes in medical billing decodes the reason codes on your remittance and what each one asks you to fix.

Frequently asked questions

Can S0500 be billed on the same day as a contact lens exam?

Yes. The exam, the fitting and the lens supply are separate services, so each takes its own line. Bill the lenses under S0500 and the fitting under 92310, 92311 or the plan’s evaluation code. Some vision plans fold the fitting into the exam, so check the contract.

Can patients pay for S0500 lenses from an HSA or FSA?

Yes. The IRS treats prescription contact lenses as a qualified medical expense. Patients can pay any balance from a health savings account or flexible spending account. Give them an itemized receipt that shows the lens count and the dispense date.

What if a patient returns lenses after the claim is paid?

Correct the claim rather than keeping the overpayment. On the CMS-1500, resubmit with frequency code 7 to replace the claim with the right units, or code 8 to void it. Then refund any patient payment for the returned lenses.

Do S0500 refills need a current prescription?

Usually, yes. Federal rules give contact lens prescriptions a minimum one-year expiration, and most plans won’t pay a dispense against an expired one. Check the date on file before you reorder.

Who can bill HCPCS code S0500?

Any provider the plan has credentialed to dispense contact lenses, which usually means optometrists and ophthalmologists. Some plans also credential opticians or optical retailers. The billing NPI must match the plan’s provider file, or the line will deny.

Avatar photo
Monika Lazarevska
Content Writer

Monika Lazarevska writes content for owners and healthcare professionals who want clear, no-fluff content that actually helps them run their practice better. With a background in storytelling and SEO, she knows how to make even the driest topics worth reading. Off the clock, you'll find her in a café somewhere in Europe, probably with a good book and an even better coffee.
×