HCPCS code S0023 – Cimetidine hydrochloride injection
S0023 is the HCPCS Level II code for injection, cimetidine hydrochloride, 300 mg. One unit equals 300 mg of cimetidine, the H2 blocker given by intramuscular or intravenous injection.
S0023 is a temporary non-Medicare S-code, so traditional Medicare does not pay it. Commercial payers and some Medicaid programs accept it. A payer that rejects S-codes usually wants J3490 with the NDC instead.
- Level
- Level II
- Category
- S0012-S0197 Non-Medicare drug codes
- Status
- Active (HCPCS Action Code N — no CMS maintenance)
- Billable
- No
- Code also known as
- Cimetidine HCl injection, Tagamet injection
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 S0023 reports injection, cimetidine hydrochloride, 300 mg, and one billing unit equals 300 mg of the drug.
S0023 is a temporary non-Medicare S-code, so traditional Medicare does not pay it and commercial or Medicaid payer rules decide coverage.
No J-code describes cimetidine, so a payer that rejects S-codes usually wants J3490 with the NDC and drug name instead.
Bill the injection itself separately, with 96372 for an intramuscular shot or 96374 for an IV push.
What is HCPCS Code S0023?
HCPCS Code S0023 is the Level II code for injection, cimetidine hydrochloride, 300 mg. Cimetidine is an H2 receptor antagonist that lowers stomach acid, and this code covers the drug when it is given by intramuscular or intravenous injection. One unit of S0023 equals 300 mg.
S0023 sits in the S0012-S0197 range of non-Medicare drug codes. S-codes are temporary national codes that the Blue Cross Blue Shield Association and other private payers use where no permanent code fits. The CMS HCPCS quarterly file gives S0023 Medicare coverage code I, which means it is not payable by Medicare. The same range covers oral drugs, and tacrine hydrochloride, 10 mg, is billed under code S0014.
The code has been in the HCPCS set since January 1, 2000. Its action code in the October 2026 file is N, so CMS made no change to it in that update. It has no termination date.
S0023 code details at a glance
What injectable cimetidine is used for
Cimetidine blocks histamine at the H2 receptors of the stomach lining, which cuts acid output. The injectable form was used for patients who could not take the drug by mouth, or who needed it in hospital. The usual indications were:
- Active duodenal or gastric ulcers in patients who could not take tablets
- Pathological hypersecretory conditions such as Zollinger-Ellison syndrome
- Prevention of upper gastrointestinal bleeding in critically ill patients
- Gastroesophageal reflux disease when oral treatment was not possible
Prescribers also use H2 blockers alongside antihistamines in some allergic and infusion reaction protocols. That use is off-label, so check the payer’s policy before you bill it.
Injectable cimetidine is now hard to find in the United States. DailyMed, the National Library of Medicine database of FDA drug labels, lists cimetidine tablets and oral solutions but no current injectable product.
That makes every S0023 charge worth a second look. Before the claim goes out, confirm that the NDC in the record belongs to a cimetidine injection.
Medicare coverage for HCPCS Code S0023
Traditional Medicare does not pay S0023. The code carries coverage code I in the CMS file, and S-codes are not valid on claims to any Medicare payment system. A Medicare fee-for-service claim that carries S0023 comes back unpaid however well the visit is documented.
Medicare patients can still reach this drug through other routes:
- Medicare Advantage: a Part C plan writes its own billing rules and may accept S-codes, so check the plan before the visit.
- Unclassified drug code: Medicare has no specific code for injectable cimetidine. A Medicare administrative contractor will normally expect J3490 with the NDC, drug name and dose in the claim narrative.
- Secondary coverage: a commercial secondary plan may pay once Medicare has processed the primary claim. Keep the primary remittance with the file.
Pro Tip
Check the primary payer at scheduling, not at billing. A traditional Medicare patient needs J3490 and an NDC narrative for this drug, never S0023. Catching that at the front desk is quicker than correcting a returned claim.
Commercial and Medicaid payer rules
Commercial payers and state Medicaid programs set their own rules for S0023. Some accept it as written, while others want J3490 for the same drug. Knowing which version each payer expects is a core part of medical billing for drug codes.
Before the first claim to a payer, confirm four points:
- Code acceptance: whether the plan takes S0023 or wants J3490 for cimetidine injection
- Prior authorization: whether the plan needs one for an injectable acid suppressant given in the office
- NDC format: the 11-digit NDC, the unit qualifier and the quantity the plan expects on the claim line
- Rate basis: whether the plan pays from a fee schedule, a percentage of the average sales price or invoice cost
Medicaid rules vary by state. Check the state Medicaid fee schedule or provider manual for S0023 before you bill it, since some states use S-codes and others do not.
How to bill S0023 step by step
The first decision is which code goes on the drug line, and the primary payer settles it. The chart maps each payer type to its code, then the unit math and administration codes that follow.

- Confirm the payer accepts S-codes. If it does not, switch to the code it names, usually J3490.
- Record the drug and dose. Note the NDC, lot number, dose in milligrams, route and time in the patient record.
- Convert milligrams to units. Divide the dose by 300 and enter the result in the units field.
- Add the NDC to the claim line. Use the 11-digit format with the N4 qualifier, unit of measure and quantity.
- Add the administration code. Report the injection itself on its own line, as in the table below.
- Link the diagnosis. Point the line at the ICD-10-CM code that supports the drug.
The administration service is never part of S0023. Report it on its own line, with the CPT code that matches the route. An intramuscular shot takes 96372, and an IV push takes 96374. The table lists all three routes.
Codes 96401 and 96402 are for chemotherapy and other highly complex drugs. They do not apply to a cimetidine injection.
Billing units for S0023
One unit of S0023 equals 300 mg of cimetidine. The former FDA label for cimetidine injection gave 300 mg every six to eight hours, intramuscularly or intravenously. It set a daily ceiling of 2,400 mg. The table converts those doses into units.
Bill the dose given, not the vial size. If part of a single-dose container is discarded, record the amount wasted in the note, and ask the payer how it wants waste reported.
Modifiers and S0023
The JW and JZ modifiers come from a Medicare Part B policy on discarded drug from single-dose containers. CMS created JZ on January 1, 2023 and made it mandatory from July 1, 2023. Because Medicare does not pay S0023, that policy does not apply to it.
A commercial plan may still copy the Medicare drug waste rules into its own contract. Use JW or JZ on an S0023 line only when that payer’s policy asks for it. Otherwise the S0023 line needs no drug-specific modifier. A separately documented office visit on the same day may need modifier 25 on the visit code.
ICD-10-CM codes that support S0023
The diagnosis on the claim has to explain why the patient needed an injectable acid suppressant. These ICD-10-CM codes are the ones most often linked to it:
Common denial reasons for S0023 claims
Most S0023 denials come from the code choice or missing drug details, not from the clinical decision. Reviewing denial management workflows shows whether a denial is a one-off or a pattern worth fixing at the source.
When a denial arrives, read the reason codes on the remittance before you resubmit. Our guide to denial codes explains what each one points to. CO-4 is a modifier problem, so it applies only when a payer’s rules required a modifier you left off.
Documentation requirements for S0023 claims
Every S0023 claim needs a record that matches the claim line. A payer audit looks for these elements in the patient record:
- Order and indication: who ordered cimetidine, and the diagnosis it treats
- Reason for the injection: why the patient could not take an oral acid suppressant
- Drug details: the NDC, lot number, expiry date and dose in milligrams
- Route and timing: intramuscular or intravenous, push or infusion, with start and stop times for an infusion
- Administering clinician: name, credentials and NPI
- Waste: any amount discarded from a single-dose container
A record that holds all six lets the biller build a clean claim without going back to the clinician.
How Pabau supports S0023 billing
An S0023 claim depends on details that start in the treatment room. The NDC, lot, dose and route all have to reach the claim line unchanged, and the payer’s code rules have to be checked before submission.
In Pabau, the practice management and billing platform we build, the lot number and expiry are recorded against the patient and the appointment. The biller works from that record, so the drug details on the claim match the note. Prior authorizations are tracked on the case, with a warning when one is missing.
US claims go out as CMS-1500/837P claims through the Claim.MD clearinghouse, from Pabau’s claims management software. Eligibility checks, ERA remittances and secondary claims run from the same place, so a returned S0023 line shows up against the patient it belongs to.

Get drug injection claims right the first time
Pabau records the lot and dose at the visit, tracks prior authorizations, and submits claims through Claim.MD. See how it handles drug codes like S0023.

Conclusion
S0023 is a narrow code for a drug that few US practices still stock. That rarity is the reason to check it twice. A claim line carrying S0023 should match a cimetidine injection NDC in the record, and a payer that accepts S-codes.
Settle the payer question at scheduling and convert the dose to units at the visit. Report the injection on its own line. Book a demo to see how Pabau carries drug details from the treatment note to the claim.
Continue your research
Need a broader overview of how claims move from submission to payment? What is revenue cycle management explains the end-to-end billing workflow that underpins every drug injection claim.
Getting repeated denials without a clear pattern? Medical billing compliance covers the documentation and policy alignment practices need to reduce systemic denial rates.
Want to understand what happens after a claim is paid? Electronic remittance advice breaks down how to read ERA files and reconcile payments for drug injection codes.
Frequently asked questions
What is HCPCS Code S0023?
HCPCS Code S0023 is the Level II code for injection, cimetidine hydrochloride, 300 mg. It is a temporary national S-code in the S0012-S0197 non-Medicare drug range. One unit equals 300 mg of cimetidine.
Does Medicare cover S0023?
No. CMS gives S0023 coverage code I, which means it is not payable by Medicare. Medicare Advantage plans may accept it under their own rules. For traditional Medicare, injectable cimetidine is normally billed with J3490 and the NDC.
Is there a J-code for cimetidine injection?
No. The October 2026 HCPCS file has no J-code that describes cimetidine. A payer that does not accept S0023 will usually want J3490, the unclassified drug code, with the NDC, drug name and dose.
How many units of S0023 should I bill?
Divide the dose in milligrams by 300. A 300 mg injection is one unit, and 900 mg given by continuous infusion over 24 hours is three units. Most payers round a partial unit up to one.
Which administration code goes with S0023?
Bill the injection on its own line. Use 96372 for an intramuscular injection, 96374 for an IV push, or 96365 for an IV infusion of up to one hour. The chemotherapy codes 96401 and 96402 do not apply.
Do the JW and JZ modifiers apply to S0023?
Not by default. JW and JZ come from a Medicare Part B policy on discarded drug, and Medicare does not pay S0023. Add them only when a commercial payer’s own policy requires them.



