Pabau Engage inbox

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

Learn more
Book a demo Book a demo
☰
HCPCS Code

HCPCS code S0140 – Saquinavir, 200 mg


Code Definition

HCPCS code S0140 bills saquinavir, 200 mg, an oral HIV protease inhibitor taken with ritonavir. It's an S-code, a temporary national code built for commercial insurers and Medicaid rather than Medicare.

That payer split is the fact to hold onto. Medicare gives S0140 coverage code I, so it won't pay the code at all. Send it to the wrong plan and the claim comes straight back. Units cause the next most common error, because one unit equals 200 mg. Below, we walk through both checks, then follow the claim from prescription to payment.

Level
S0000-S9999 Temporary national codes (non-Medicare)
Category
S0012-S0197 Non-Medicare drug codes
Status
Not payable by Medicare (coverage code I), effective 1 April 2003
Billable
No
Code also known as
Saquinavir (Invirase)
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 S0140 describes saquinavir, 200 mg, an oral HIV protease inhibitor taken with ritonavir.

Medicare doesn’t pay S0140 (coverage code I), so bill it only to plans that accept S-codes.

Each unit equals 200 mg, so a 1,000 mg dose bills as 5 units.

Pair the claim with B20 or Z21, matched to the patient’s documented HIV status.

Record the prescription, NDC, dose, quantity and days supply before the claim goes out.

HCPCS code S0140 bills oral saquinavir by the 200 mg unit

HCPCS code S0140 is the Level II code for saquinavir, 200 mg. Saquinavir is an HIV-1 protease inhibitor, best known by the brand name Invirase. Patients swallow it as a capsule or tablet, always alongside a low dose of ritonavir.

There’s no injection involved, and no J-code describes the drug. If a reference pairs S0140 with a steroid injection or a J-code, it’s describing a different drug.

CMS added S0140 on April 1, 2003, as one of its S-codes. These temporary national codes serve private insurers and Medicaid programs that need codes Medicare doesn’t use.

AAPC’s code listing places it in the non-Medicare drug codes range, S0012 to S0197. For the wider code set, see our HCPCS codes library.

Field Details
Code S0140
Official descriptor Saquinavir, 200 mg
Code set HCPCS Level II, S-series (temporary national codes)
Range S0012 to S0197, non-Medicare drug codes
Effective date April 1, 2003
Medicare coverage code I (not payable by Medicare)
Pricing indicator 00 (not separately priced by Part B)
Billing unit 200 mg of saquinavir
Drug class HIV-1 protease inhibitor, taken by mouth with ritonavir

Medicare won’t pay S0140, so confirm the payer first

Before you think about units or diagnoses, check who’s paying. Medicare assigns S0140 coverage code I, so it won’t pay the code. That holds across every Medicare payment system, and an appeal won’t change it.

For Medicare patients, oral HIV drugs run through Part D instead. Those are pharmacy claims, identified by the NDC rather than a HCPCS code. Antiretrovirals are also one of Part D’s protected drug classes.

Here’s how the main payer types usually handle S0140:

  • Commercial plans: acceptance depends on the contract and the plan’s fee schedule. Many still route oral drugs through the pharmacy benefit.
  • Medicaid: each state sets its own rules. Check the state fee schedule, because some process oral HIV drugs only as pharmacy claims.
  • Medicare Advantage: oral drugs usually sit in the plan’s Part D coverage, so the plan’s pharmacy rules apply.
  • Traditional Medicare: not payable. Don’t submit S0140 here at all.

In short, S0140 lives on medical claims for payers that ask for it. When a plan wants a pharmacy claim, the NDC does the work and S0140 isn’t used.

One S0140 unit equals 200 mg of saquinavir

The descriptor sets the billing unit at 200 mg. So you divide the milligrams dispensed by 200, and that’s your unit count.

Let’s walk through an example. The standard adult regimen on the Invirase label is 1,000 mg of saquinavir with 100 mg of ritonavir, twice daily.

  • One dose: 1,000 mg ÷ 200 mg = 5 units
  • One day: 2,000 mg = 10 units
  • A 30-day supply: 60,000 mg = 300 units

Tablets make the math messier. Saquinavir also came as a 500 mg tablet, and each tablet equals 2.5 units. Some payers want whole units, so ask how they round before you bill.

The NDC quantity is a separate number. It counts capsules or tablets, not milligrams. A 30-day supply of 500 mg tablets is 120 tablets, yet it’s 300 HCPCS units. Both figures belong on the claim, each in its own box, as the breakdown below shows.

Diagram of one 30-day saquinavir supply at 1,000 mg twice daily, 60,000 mg total
The unit count and the tablet count drift apart fast, so match each number to its own box before you submit. Figures follow the S0140 descriptor and the Invirase label dose.

Pro Tip

Ritonavir isn’t part of S0140, so it never adds to the unit count. Record it in the notes, because the payer may ask why saquinavir is dosed twice daily.

B20 or Z21 carries the medical necessity for S0140

Saquinavir treats HIV-1 infection, so every claim needs an HIV diagnosis. Two ICD-10-CM codes do most of the work.

  • B20, HIV disease: the patient has had an HIV-related illness or an AIDS diagnosis. See our guide to ICD-10 code B20.
  • Z21, asymptomatic HIV infection status: the patient is HIV positive with no HIV-related condition so far. See our guide to ICD-10 code Z21.

The sequencing rule trips people up. Once a patient has been coded B20, later encounters stay B20, even when symptoms settle. Don’t step back to Z21.

Pregnancy changes the order too. An O98.7- code comes first, followed by B20 or Z21. Whichever code you choose, the chart has to support it in plain words.

Six details every S0140 claim needs on file

Payers rarely deny S0140 for clinical reasons. Instead, they deny it because a detail is missing. Keep these six on file for every claim:

  • The prescription: drug, strength, form, directions, and the prescriber’s signature and NPI.
  • The HIV diagnosis: B20 or Z21, plus O98.7- in pregnancy, supported by the chart.
  • The dose: milligrams per dose and doses per day, with the ritonavir boost noted.
  • The quantity: capsules or tablets dispensed, and the HCPCS units they convert to.
  • The NDC: the 11-digit code from the package actually dispensed.
  • The days supply: how long the quantity lasts at the prescribed dose.

Some plans also want prior authorization for antiretrovirals. If so, keep the reference number with these records. Our guide to the prior authorization process explains the steps, and a medical prior authorization form keeps requests consistent.

How an S0140 claim moves from prescription to payment

With the records in place, the claim itself follows a fairly fixed path. On a CMS-1500, it runs like this:

  1. Check the benefit. Confirm eligibility, then ask whether the drug falls under the medical or the pharmacy benefit.
  2. Confirm the code. Make sure this plan accepts S0140 on a professional claim.
  3. Get authorization. Obtain prior authorization if the plan requires it, and record the number.
  4. Enter the code and units. Put S0140 in item 24D and the HCPCS units in item 24G.
  5. Add the NDC. In the shaded area of item 24A, enter N4, the 11-digit NDC, the unit qualifier UN and the tablet or capsule count. On an 837P, the NDC goes in loop 2410.
  6. Point to the diagnosis. Link the line to B20 or Z21 in item 24E.
  7. Submit and track. Watch the remittance, and work any denial inside the payer’s appeal window.

If a claim does come back, the remittance codes tell you why. Read them before you correct anything, so the resubmission fixes the field the payer flagged.

Common S0140 mistakes that send claims back

Most S0140 denials come from a short list of errors. Here’s what each one looks like, and the fix.

Mistake What happens Fix
Billing traditional Medicare Denied as non-covered Route Medicare patients’ oral HIV drugs through Part D
Units counted as capsules or tablets Underpaid or flagged Divide milligrams by 200 for HCPCS units
Wrong drug assumed Mismatch with the NDC S0140 is oral saquinavir, never a steroid injection
Missing or mismatched NDC Rejected on intake Use the 11-digit NDC from the dispensed package
Typo such as S140 Invalid code HCPCS codes have five characters, so enter S0140
Medical claim for a pharmacy benefit Denied or redirected Check which benefit covers oral drugs first
Z21 after a prior B20 Coding error on audit Keep B20 once it has been assigned

Run this checklist before every S0140 claim

Give each claim a final pass before it leaves. It takes two minutes and saves a resubmission.

  • The plan accepts S0140, and the drug sits under the medical benefit.
  • The patient isn’t on traditional Medicare.
  • Units equal total milligrams divided by 200.
  • The NDC matches the package dispensed, with N4 and UN entered.
  • The diagnosis pointer links to B20 or Z21.
  • Prior authorization is on file, if the plan requires it.
  • Days supply matches the dose and quantity on the prescription.

How claims software keeps S0140 claims clean

Oral drug claims rarely fail on medicine. They fail on small details, such as a missing NDC or a unit count off by a factor. Catching those by hand means rechecking each claim against the chart.

Pabau, the practice management and billing platform we build, pre-fills claims from the patient record. The diagnosis on file seeds the claim, and built-in ICD-10-CM and HCPCS libraries make each code quick to look up. Before a claim can be sent, Pabau also checks that required fields, like membership numbers and authorization codes, are complete.

In the US, claims go out through Claim.MD. Eligibility checks, claim-status tracking and electronic remittance posting all happen in the same place. See how it works in our claims management software.

Send complete drug claims the first time

Pabau pre-fills claims from the patient record and checks required fields before sending. US claims go out through Claim.MD, with eligibility checks and status tracking.

Pabau claims management dashboard

Conclusion

S0140 rewards billers who check two things first, the payer and the unit. Get the payer wrong, and no amount of documentation saves the claim. Get the unit wrong, and you’re either underpaid or flagged for overbilling.

Saquinavir is seldom prescribed today, so you may see S0140 only a few times a year. That’s exactly why it causes trouble. Write the 200 mg rule and the B20 or Z21 pairing into your workflow, so the claim stops depending on memory.

Book a demo to see how Pabau pre-fills drug claims from the record, so rarely used codes go out right the first time.

Continue your research

Continue your research

Fighting the same denials every month? Denial management in healthcare shows how to track denial patterns and fix their root causes.

Spending hours chasing authorizations? Prior authorization software compares tools that speed up approvals for drugs and procedures.

Billing Medicare patients alongside commercial plans? Medicare billing explains how Medicare claims differ, including the parts that don’t use S-codes.

Submitting to UnitedHealthcare? UnitedHealthcare prior authorization form gives you a ready-made request to fill in.

Frequently asked questions

Is saquinavir still available in the US?

The FDA Orange Book lists Invirase, the branded saquinavir, as discontinued. Roche also stopped making the 200 mg hard capsules in the UK in 2012. S0140 is still a valid HCPCS code, so it can still appear on older claims and audits.

Why is saquinavir always taken with ritonavir?

Saquinavir is poorly absorbed on its own. A low dose of ritonavir blocks CYP3A4, the liver enzyme that breaks saquinavir down. That keeps saquinavir levels high enough for twice-daily dosing.

What is the difference between Invirase and Fortovase?

Both delivered saquinavir. Invirase came as hard capsules, and later as 500 mg tablets. Fortovase was a soft gel capsule designed to improve absorption. Roche withdrew Fortovase in 2006 after demand fell.

Is saquinavir used for HIV prevention?

No. Saquinavir is approved only to treat HIV-1 infection, in combination with other antiretrovirals. HIV prevention uses different drugs, so a PrEP visit shouldn’t carry S0140.

What does pricing indicator 00 mean for S0140?

It means Medicare Part B doesn’t price the code separately. For S0140 that’s a formality, since Medicare doesn’t pay the code at all. Commercial and Medicaid rates come from your contracts and state fee schedules.

×