HCPCS code S0500 – Disposable contact lens
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
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 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.
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.
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.

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.
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.
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.
- Box 21 (diagnosis): Enter the supporting ICD-10-CM code, such as H52.10 for myopia, in position A.
- Box 24B (place of service): Use 11 for an office. If you dispense elsewhere, confirm the POS code with the payer.
- Box 24D (procedure and modifier): Enter S0500 on two lines, one with RT and one with LT, where the payer uses them.
- Box 24E (pointer): Point each line to the diagnosis letter from Box 21.
- Box 24G (units): Enter 30 on each line, one unit per lens. Some plans count boxes differently, so check before you key it.
- 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.
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.

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.

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
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.



