Pabau Engage inbox

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

Learn more
Book a demo Book a demo
Billing Codes

HCPCS Code S0137: Didanosine (ddI) 25 mg billing guide

Avatar photo Anja Dodevska
Last Updated: September 16, 2026

HCPCS Code S0137 is the Level II billing code for didanosine (ddI), 25 mg, an antiretroviral used in HIV and AIDS treatment regimens. Didanosine is a nucleoside analogue reverse transcriptase inhibitor, usually shortened to NRTI.

S0137 sits in the HCPCS S-series, a set of temporary national codes that Medicare Part B does not recognize. Medicaid programs and commercial payers set their own S-code policy, so acceptance varies by state and by plan.

Key takeaways
Found our content helpful?

Key takeaways

HCPCS Code S0137 covers didanosine (ddI) 25 mg, an NRTI antiretroviral used in HIV treatment regimens.

S-series codes are not covered by Medicare Part B. Medicaid and commercial acceptance varies by state and plan.

No HCPCS code exists for the other didanosine strengths, which are billed through NDC-based methods instead.

Claims need documented medical necessity, an HIV diagnosis such as ICD-10 B20 or Z21, and the prescription record.

Practice management software like Pabau applies payer-specific S-code rules when the claim is created.

What is HCPCS Code S0137?

HCPCS Code S0137 is a Level II temporary national code representing didanosine (ddI), 25 mg. It reports the dispensing or administration of that antiretroviral to a patient.

The code belongs to the HCPCS S-series, which runs from S0012 through S9999. These temporary codes sit within CMS’s HCPCS Level II framework, and AHIP administers them for Medicaid and private payers.

S-codes sit outside the CMS-maintained permanent national code set, so Medicare does not recognize or reimburse them. Coverage is decided at the payer level. Billers have to confirm acceptance before submitting a claim carrying S0137.

Field Detail
Code S0137
Short description Didanosine 25 mg
Long description Didanosine (ddI), 25 mg
Code series HCPCS Level II, S-series (temporary national)
Maintained by AHIP (America’s Health Insurance Plans)
Status (2026) Active (verify against current CMS annual HCPCS update file)
Medicare coverage Not covered under Medicare Part B

S0137 didanosine: Code description and drug information

S0137 didanosine refers specifically to the 25 mg strength formulation of didanosine, a nucleoside analogue reverse transcriptase inhibitor. The drug incorporates into viral DNA and terminates chain elongation, which blocks HIV replication.

It has been FDA-approved for HIV treatment since 1991, and it still appears in some regimens where other agents cause treatment-limiting toxicities.

The 25 mg strength is the only didanosine formulation with its own HCPCS code. No S-code exists for the 50 mg, 100 mg, 150 mg or 200 mg strengths.

The codes either side of S0137 belong to unrelated drugs, S0136 to clozapine and S0138 to finasteride. Where a payer needs a different didanosine strength reported, it reaches the claim through NDC-based methods rather than a second S-code.

Drug detail Information
Generic name Didanosine (ddI)
Drug class Nucleoside analogue reverse transcriptase inhibitor (NRTI)
Strength (this code) 25 mg
Clinical use HIV and AIDS treatment, typically in combination antiretroviral therapy (cART)
FDA approval 1991 (original approval); refer to current FDA labeling for prescribing information
Billing unit Per 25 mg (report actual quantity dispensed)

Payer coverage: Medicare, Medicaid, and commercial plans

Medicare Part B does not cover HCPCS S-series codes. CMS applies that across the whole series rather than code by code, so no S-code is a valid Medicare claim code. Submitting S0137 to a Medicare fee-for-service plan produces an automatic denial.

Running insurance eligibility verification before the claim is built catches Medicare patients ahead of submission. That check costs a minute and saves a denial that cannot be appealed on its merits.

Medicaid coverage varies by state program. Many state Medicaid plans do accept S-codes, particularly for HIV drugs the state formulary supports. Coverage is not universal, though, and some states use J-codes or NDC-based billing for antiretrovirals instead. Check the state Medicaid billing manual before assuming coverage.

Payer type S0137 coverage Notes
Medicare Part B Not covered S-codes are not recognized by Medicare, and submission results in denial
Medicare Part D May cover via pharmacy benefit Part D drug coverage is plan-specific, and it is not billed with HCPCS S-codes
Medicaid Varies by state Many state programs accept S-codes; verify the state billing manual first
Commercial / private payers Generally accepted Most commercial plans recognize S-codes; check the antiretroviral coverage policy
TRICARE Check benefit manual TRICARE uses HCPCS Level II codes; verify S-code acceptance in the current claims guide

S0137 reimbursement and pricing information

S0137 reimbursement rates are not set by a CMS fee schedule, because Medicare does not cover S-codes. Each accepting payer prices the drug individually. The basis is usually average wholesale price (AWP), wholesale acquisition cost (WAC), or a negotiated contract rate.

AWP figures move with the market, and the antiretroviral market has changed a great deal since didanosine launched. Verify any amount you find in a static reference against the payer’s current fee schedule or contract. Medicaid often pays a percentage of WAC, or a rebate-adjusted rate that differs by state.

Pro Tip

Before billing S0137, call the payer’s provider line or check the online portal to confirm the current allowable amount for didanosine 25 mg. AWP-based reimbursement can shift quarterly, and submitting at an outdated rate may trigger a recoupment request after payment.

How to bill S0137 on a claim

Billing S0137 correctly comes down to matching the claim form to what each accepting payer expects. The claims management software a practice uses should support HCPCS Level II S-code entry on the CMS-1500 form. Manual entry carries the highest risk of unit-quantity errors, a common denial trigger for drug-administration codes.

Pabau checkout screen raising a completed patient invoice billed to an insurer
Pabau raises the insurer invoice at checkout, so the S0137 line is captured while the dispensing record is still fresh.
  • Claim form: CMS-1500 for professional claims. Use UB-04 for outpatient facility claims where applicable.
  • Unit reporting: Report one unit per 25 mg dispensed. A 50 mg dose is two units of S0137, not a different code.
  • Place of service: Match the site of dispensing or administration, such as 11 for office or 22 for outpatient hospital.
  • Modifiers: Check the payer’s drug billing requirements. Some Medicaid programs want a modifier showing pharmacy or physician dispensing, and no universal modifier applies across all payers.
  • NDC number: Many Medicaid programs and some commercial payers want the National Drug Code on the claim line beside the HCPCS code. Use the 11-digit NDC with the N4 qualifier in Loop 2410 of the 837P EDI transaction.
  • Prior authorization: Verify prior authorization requirements with the payer before dispensing. HIV antiretrovirals frequently require it under Medicaid managed care plans.

Those checks only work in one order, because each one decides whether the next is worth doing. The sequence runs from eligibility check through to claim submission.

Five-stage flow for billing HCPCS Code S0137.
The eligibility check carries the only rule that cannot be fixed later, drawn from this article’s billing and documentation requirements.

Documentation requirements for S0137

Every S0137 claim has to be supported by a documented clinical record. Missing or vague documentation is the leading cause of post-payment audits and recoupments on antiretroviral drug claims.

  • HIV diagnosis documentation: The patient’s chart must confirm HIV-positive status or an AIDS diagnosis. This supports the ICD-10 co-billing requirement.
  • Prescription record: A valid prescription for didanosine 25 mg, signed by a licensed prescriber, must be on file.
  • Medical necessity justification: Clinical notes explaining why didanosine was chosen for this patient strengthen the claim under audit. Treatment history and tolerability problems with other NRTIs both count.
  • Dispensing record: Documentation of the quantity dispensed, the date, and the lot number where applicable.
  • Prior authorization records: Where prior authorization was obtained, retain the authorization number and put it on the claim if the payer asks for it.

Building these steps into the clinical workflow, rather than leaving them to the billing stage, keeps the record complete while the visit is still open. Records also have to be kept for the payer’s audit window, which runs to six years at the federal level.

ICD-10 diagnosis codes commonly billed with S0137

Every claim for S0137 must carry at least one ICD-10-CM diagnosis code establishing medical necessity. Didanosine is an HIV antiretroviral, so those codes almost always describe HIV disease or an HIV-related condition. An unsupported diagnosis code can trigger denial and, under payer audit, recoupment.

ICD-10-CM code Description When to use
B20 Human immunodeficiency virus (HIV) disease Patient has symptomatic HIV or AIDS; the most common primary diagnosis paired with antiretrovirals
Z21 Asymptomatic human immunodeficiency virus (HIV) infection status Patient is HIV-positive but asymptomatic, and on a treatment antiretroviral regimen
B20 (with complication codes) HIV disease with associated conditions, such as B20 plus B59 for Pneumocystis pneumonia Patient has HIV plus an HIV-related opportunistic infection; sequence per ICD-10-CM guidelines
Z79.899 Other long-term (current) drug therapy Secondary code marking ongoing antiretroviral therapy; some payers require it

ICD-10-CM guidelines tell coders to sequence B20 as the principal diagnosis when a patient is seen for an HIV-related condition. Z21 applies only while the patient is asymptomatic. Confirm HIV status with the treating clinician before submission, since miscoding it can cause payer disputes and reportable compliance findings.

Didanosine is one of several antiretrovirals with an HCPCS S-series code. Adjacency in the code set means nothing clinically, though, so a biller cannot reason from one S-code to its neighbor.

Our HCPCS codes hub groups the codes by family, and the AAPC HCPCS Level II lookup confirms a specific descriptor.

HCPCS code Drug or description Relationship to S0137
S0136 Clozapine Numerically adjacent only; an antipsychotic, not an antiretroviral
S0137 Didanosine (ddI), 25 mg The code this page covers; the only HCPCS code for didanosine
S0138 Finasteride Numerically adjacent only; a urology drug, not an antiretroviral
J-codes (selected) Certain injectable antiretrovirals, including long-acting HIV drugs Permanent national codes used when the regimen moves to injection

When a patient’s regimen switches from oral didanosine to a long-acting injectable, the applicable J-code replaces S0137 on the claim. The two series are not interchangeable, and payer coverage logic differs sharply between them.

How HCPCS S-codes differ from J-codes in drug billing

S-series codes and J-codes both report drugs on professional and facility claims. They differ in who maintains them, who covers them, and how reimbursement is set. Knowing the distinction prevents coding errors when a practice’s formulary holds both.

Characteristic S-codes (S-series) J-codes
Maintained by AHIP (America’s Health Insurance Plans) CMS (Centers for Medicare and Medicaid Services)
Code type Temporary national codes Permanent national codes
Medicare Part B coverage Not covered Generally covered, subject to medical necessity
Medicaid acceptance Varies by state program Generally accepted; fee schedule may vary
Reimbursement basis AWP, WAC, or payer contract rate ASP plus 6% under Medicare; payer-specific for commercial plans
Typical drug types Oral drugs and specialty drugs not otherwise classified Injectable drugs, infusions, some oral chemotherapy agents

For a practice billing both S0137 and J-coded injectable antiretrovirals, staff training on the distinction prevents one costly habit. That habit is submitting an S-code to Medicare and waiting for a payment that never arrives.

S0137 and the outpatient code editor (IOCE)

The Integrated Outpatient Code Editor (IOCE) is CMS’s claim-editing tool for hospital outpatient claims under the Outpatient Prospective Payment System (OPPS). It validates codes, assigns status indicators, and flags discrepancies before a claim is adjudicated.

For S0137 the consequence is short. Medicare does not cover S-series codes, so the IOCE flags the line on a Medicare outpatient claim as non-covered, and the claim generates no reimbursement.

On non-Medicare outpatient claims, processing depends on the payer’s own code editor configuration. Some commercial payers and Medicaid managed care organizations run IOCE-equivalent tools with different status indicators for S-codes. Confirm with each payer that their editor recognizes S0137 before submitting facility-based outpatient claims.

Pro Tip

Run a test claim for S0137 with each new Medicaid or commercial payer before activating the code in your billing workflow. A test remittance confirms whether the payer’s code editor accepts the S-code and at what allowable amount, saving costly retroactive corrections.

How Pabau handles payer rules for S-codes like S0137

In most practices, S-code knowledge lives in one biller’s head or in a shared spreadsheet. They remember which state Medicaid plan takes S0137 and which one wants the NDC, and the rest gets rechecked by phone. When that person is on leave, claims either sit in a queue or go out wrong.

Practice management software like Pabau stores those rules against the payer instead. A claim line picks up the payer’s S-code policy, the NDC requirement, and the prior authorization flag as the claim is built. Your biller sees the requirement before the claim leaves, not on the remittance three weeks later.

Denials land back in the same system. Pabau tracks denial reasons by code. A run of rejections on S0137 from one plan then reads as a pattern, not as a handful of separate write-offs. That is the difference between fixing a payer setup once and absorbing the same denial every month.

Streamline your HCPCS billing workflows

Pabau’s claims management tools store payer-specific rules, capture NDC requirements, and submit clean claims for HCPCS S-codes. Your billers stop rechecking the same payer policy by phone.

Pabau claims management dashboard

Conclusion

S0137 pays only where the payer has agreed to accept the S-series. That makes eligibility, not submission, the point where the outcome is decided.

Practices that treat the payer check as part of dispensing rarely see these claims come back. Practices that treat it as a billing task absorb the denials instead, and by then the drug has already left the shelf.

S-codes buy a precise drug descriptor at the cost of universal coverage, and that trade-off is not going to change. Keeping each payer’s policy current is what makes the descriptor worth using. Book a demo to see how Pabau keeps S-code policy, NDC requirements and denial history in one place.

Continue your research

Continue your research

Need a framework for reducing claim denials on drug codes? Denial management in healthcare covers strategies for identifying root causes and fixing upstream coding errors.

Want to see where HCPCS fits in the billing lifecycle? What is revenue cycle management explains the process from eligibility check to payment posting.

Running billing compliance for an HIV or specialty drug program? Medical billing compliance sets out the record-keeping that holds up during a payer audit.

Want fewer claims coming back at all? Clean claim submission explains what a payer needs on the claim line the first time.

Frequently asked questions

What is HCPCS Code S0137 used for?

HCPCS Code S0137 bills for didanosine (ddI), 25 mg, an antiretroviral NRTI. It covers the drug dispensed or administered as part of an HIV or AIDS treatment regimen. It is a temporary HCPCS Level II S-code, accepted by Medicaid programs and commercial payers that recognize the S-series.

Does Medicare cover HCPCS Code S0137?

No. Medicare Part B does not cover any HCPCS S-series codes, including S0137. Medicare does not recognize S-codes as valid claim codes, so submission to Medicare fee-for-service results in automatic denial. Patients with Medicare coverage for antiretrovirals may reach the drug under a Part D pharmacy benefit. That coverage is not billed using HCPCS S-codes.

Is S0137 a temporary or permanent HCPCS code?

S0137 is a temporary national HCPCS Level II code, not a permanent one. Temporary S-series codes are maintained by AHIP rather than CMS, which is why Medicare does not cover them. Their active status can change in annual HCPCS updates, so verify against the current CMS annual release file each year.

Is there a separate HCPCS code for other didanosine strengths?

No. S0137 is the only HCPCS code for didanosine, and it describes the 25 mg strength. The codes either side of it cover unrelated drugs, S0136 for clozapine and S0138 for finasteride. Other strengths reach the claim through NDC-based billing rather than through a second S-code.

Which payers accept HCPCS S-series codes?

Medicaid programs in many states and most commercial payers accept S-series codes such as S0137. Acceptance is not universal. Some state Medicaid programs use NDC-based billing or J-codes for antiretrovirals instead. Always verify with the payer or the state billing manual before submitting an S-code claim.

What documentation is required to bill S0137?

Five records support an S0137 claim. The chart must confirm the HIV diagnosis behind B20 or Z21 co-billing. A licensed prescriber must have signed a prescription for didanosine 25 mg. The dispensing record must note the quantity and the date. Clinical notes must establish medical necessity, and any prior authorization number must be retained. Medicaid payers may also require the NDC on the claim form.

How do S-codes differ from J-codes for drug billing?

S-codes are temporary national codes maintained by AHIP, and Medicare does not cover them. J-codes are permanent national codes maintained by CMS, and Medicare Part B generally covers them. They typically apply to injectable or infusible drugs, reimbursed at ASP plus 6% under Medicare. S-codes apply to oral specialty drugs and are reimbursed at AWP, WAC, or a payer contract rate where accepted.

Found our content helpful?
×