HCPCS code J2920 – Methylprednisolone sodium succinate injection
J2920 is the HCPCS Level II code for injection, methylprednisolone sodium succinate, up to 40 mg. It covers Solu-Medrol given by IV or IM injection in a provider setting, and each billing unit equals up to 40 mg of drug.
Getting it paid comes down to three checks. Divide the dose by 40 and round up for the unit count. Switch to J2930 when the dose is 125 mg or more. Report the 11-digit NDC wherever the payer asks for it, which includes Medicaid and many commercial plans.
- Level
- Level II
- Category
- J — Drugs administered other than oral method
- Status
- Active
- Billable
- No
- Code also known as
- Solu-Medrol injection, methylprednisolone succinate IV, methylprednisolone Na succinate infusion
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 J2920 bills methylprednisolone sodium succinate (Solu-Medrol) in units of up to 40 mg, so divide the dose by 40 and round up.
Match the code to the dose, with J2930 for doses of 125 mg or more and J2920 for doses of 40 mg or less.
Medicaid and many commercial payers require the 11-digit NDC with the N4 qualifier and unit of measure, and some MACs ask for it too.
Medicare Part B pays J2920 at ASP plus 6% in the office, and the injection or infusion bills separately with its own CPT code.
Pabau’s claims management tools support structured charge entry and claim submission, so the codes on the patient record carry onto the claim.
HCPCS code J2920 bills Solu-Medrol in 40 mg units
HCPCS code J2920 is the Level II code for an injection of methylprednisolone sodium succinate, up to 40 mg. Each billing unit covers any dose from 1 mg to 40 mg. The official CMS HCPCS Level II descriptor reads: Injection, methylprednisolone sodium succinate, up to 40 mg.
Methylprednisolone sodium succinate is a water-soluble corticosteroid, sold as Solu-Medrol. Providers give it by IV or IM injection for inflammatory and autoimmune flares, severe asthma and anaphylaxis. The acetate form, sold as Depo-Medrol, is a separate depot drug with its own code.
So the coding question comes down to the dose. At 40 mg or less, J2920 fits. From 125 mg up, its sister code J2930 fits better. Here are the key facts at a glance.
How to calculate J2920 units: divide by 40 and round up
Divide the dose given in milligrams by 40, then round up to the next whole number. The result is the unit count for the claim line.
The words “up to 40 mg” mean a partial unit still counts as a full one. A 40 mg injection is 1 unit, and a 41 mg injection is 2 units. Here is how common doses work out on J2920.
Note on 125 mg dosing: A 125 mg dose works out to 4 units of J2920, and 4 units describe up to 160 mg. J2930 (up to 125 mg) matches that dose at 1 unit, so it is the code that fits. Check the payer’s policy before you file, because it decides which code the plan prefers.
J2920 vs J2930: Match the code to the dose
J2920 and J2930 cover the same drug in different unit sizes. J2920 bills in 40 mg units, while J2930 bills in 125 mg units. Pick the wrong one and the unit count stops matching the dose in the record, which invites a quantity edit or a denial.
The practical rule is to match the code to the dose and the vial. Use J2930, at 1 unit per 125 mg, for doses of 125 mg or more. Use J2920 for doses of 40 mg or less, and for multiples of 40 mg where the payer’s policy allows it.
The payer’s policy decides which code it prefers, so read it before the first claim. The chart below lines up common doses against both codes.

Deleted acetate codes now bill as J1010
J2920 covers only the sodium succinate form. Three older codes for methylprednisolone acetate, the depot form, were deleted on April 1, 2024. J1010 (methylprednisolone acetate, 1 mg) replaced all three, and it bills 1 unit per milligram.
Keep the two forms apart on the claim, because they differ in solubility, route and use. A deleted code such as J1020, J1030 or J1040 gets an invalid-code rejection before the claim reaches the payer. You can check the status of any code in our HCPCS code library.
Medicare Part B pays J2920 at ASP plus 6% in the office
Medicare Part B covers J2920 as a provider-administered drug under the buy-and-bill model. The practice buys the drug, gives it, and bills both the drug and the administration service. In the office, payment follows the Average Sales Price plus 6% (ASP+6%) method. Hospital outpatient departments are paid under OPPS instead.
ASP rates update every quarter, so the J2920 payment limit changes four times a year. Check the CMS ASP pricing files at the start of each quarter before you rely on a cost-to-payment figure. Working from last quarter’s rate is a common cause of buy-and-bill shortfalls.
Place of service changes the payment. An office infusion usually earns a higher net drug payment than the same infusion in a hospital outpatient department.
Pro Tip
Verify J2920 payment rates at the start of each calendar quarter. Download the CMS ASP drug pricing file and filter by J2920 to confirm the current payment limit. A five-minute quarterly check stops small shortfalls from adding up over a year of billing.
What a clean J2920 claim line needs
A clean J2920 claim needs more than the drug code and a diagnosis. Payers check several data elements, and a missing one turns into an avoidable denial.
Record the dose, the vial’s NDC and the lot number in a superbill entry at the time of service. Your biller then has what it takes to build the NDC line and the unit count without guessing.
- J2920 on the claim line: Report the code once per administration, with units reflecting the full dose (dose in mg ÷ 40, rounded up).
- 11-digit NDC: Report it as N4, the 11-digit NDC with no hyphens, then the unit of measure and quantity. Example: N412345678901UN1. Medicaid and many commercial payers require it, and some MACs require or strongly recommend it.
- Supporting ICD-10 diagnosis code: It must reflect the clinical reason for the injection and support the dose given.
- Administration CPT code: Bill it on its own line, because J2920 covers the drug only.
- Provider NPI: The rendering provider must be enrolled with the payer at that location, with an ordering NPI where the payer asks for one.
- Date and place of service: Both must match when and where the patient received the drug.
- Medical necessity documentation: The note records the diagnosis, the reason for steroid therapy, the dose ordered and the route. A charge without that note fails medical necessity review on audit.
Once the charge is entered, the claim goes to a clearinghouse. Its edits catch invalid codes and malformed NDCs first. The payer then checks units against the dose and the diagnosis against its coverage policy.
Bill the administration code on its own line
J2920 pays for the drug only. The injection or infusion needs its own CPT administration code. Leave it off and the service goes unpaid, while the wrong one trips bundling edits.
An IM injection bills as 96372, and an IV push as 96374. Some payers bundle 96374 into a same-day office visit, so check the contract before you expect both to pay. Infusions billed with 96365 bundle less often, since the service is distinct from the visit.
Prior authorization for J2920 depends on the payer
Traditional Medicare Part B generally doesn’t require prior authorization (PA) for J2920. Commercial payers and Medicaid managed care plans work differently. Many of them require PA for J-code drugs, especially high-dose or repeat-infusion protocols.
Review the billing compliance requirements for each payer. Most PA requests ask for the diagnosis, any prior conservative treatment, the planned dose and schedule, and the prescriber’s attestation. Some Medicaid plans publish J-code PA lists each formulary year, so confirm them annually.
- Medicare Part B: No PA for J2920 under fee-for-service. Medicare Advantage plans may differ, so verify each plan.
- Commercial plans: Requirements vary. High-dose protocols of 500 mg or more are more likely to trigger PA review than standard office doses.
- Medicaid managed care: Many plans require PA for any J-code drug. Check the plan’s PA request process before you give the drug.
- Step therapy: Some payers want proof that oral steroids failed before they approve IV Solu-Medrol outside an emergency.
Common J2920 denials and how to prevent them
Most J2920 denials fall into a short list, and each one is preventable before the claim goes out. A good denial management process for J-codes starts at the chair, not when the remittance arrives.
ICD-10 codes that support J2920 medical necessity
The diagnosis on the claim has to justify an injected corticosteroid at that dose and route. A diagnosis that doesn’t support IV or IM steroid therapy is a common audit trigger.
These pairings are common, not exhaustive. Always code the most specific diagnosis the notes support. For MS, the FY2026 update split G35 into subcodes, so pick the one that matches the documented type. Check crosswalk rules with the AAPC HCPCS code reference and your MAC’s local coverage determination (LCD).
Before you submit: A seven-point J2920 claim check
Run this check at charge entry, while the administration record is still open. It covers each failure in the denial table above.
- The dose in mg comes from the administration record, not from the order.
- The code matches the dose, with J2930 for 125 mg or more and J2920 for 40 mg or less.
- Units are worked out from that code’s increment and rounded up.
- The NDC of the vial used is in N4 format wherever the payer requires it.
- A specific, billable ICD-10-CM code supports the dose and route.
- The administration CPT code sits on its own line.
- The POS, the rendering NPI and any PA reference number match the visit.
Capturing these at the point of injection takes seconds. Rebuilding them weeks later is where unit errors and NDC mismatches start.
How Pabau keeps J-code claims tied to the patient record
Many practices still write the dose on paper, key the charge into one system and submit claims from another. Each hand-off is another chance to drop the NDC or miscount the units.
Pabau, the practice management platform we build, includes built-in claims management for structured charge entry and claim submission. The code on the service and the diagnoses on the patient record pre-fill the claim. Required fields must be complete before the claim can be sent, and US claims go out through Claim.MD.
The result is fewer re-keyed charges and fewer claims bounced for missing fields, so your billers spend less time on rework.

Keep J-code claims tied to the record
Pabau’s claims management tools support structured charge entry and claim submission for provider-administered drugs. The codes on the patient record pre-fill the claim, so your team stops re-keying charges.

Conclusion
J2920 is simple arithmetic once the code matches the dose. Use J2920 for doses of 40 mg or less and J2930 from 125 mg up. For the doses in between, the payer’s policy settles it.
The bigger shift is where the work happens. Capture the dose, NDC and diagnosis at the point of injection, and your biller works from facts instead of memory. Skip that step, and each quarter’s denials trace back to the same few fields.
Book a demo to see how Pabau carries methylprednisolone charges from the patient record onto a clean claim.
Continue your research
Billing the higher-dose code instead? HCPCS code J2930 covers methylprednisolone sodium succinate in 125 mg units.
Giving the dose by IV push? CPT code 96374 explains how to bill the push that delivers the drug.
Need guidance on reducing claim denials systematically? Denial codes in medical billing explains the most common CARC and RARC codes and how to respond to each one.
Want to understand how medical billing errors affect revenue? Medical billing fundamentals covers the end-to-end claim lifecycle and where revenue leakage most commonly occurs.
Looking for a broader view of revenue cycle management? Understanding revenue cycle management walks through each RCM stage from eligibility verification through payment posting.
Frequently asked questions
What does HCPCS code J2920 cover?
J2920 covers an injection of methylprednisolone sodium succinate (Solu-Medrol), up to 40 mg per unit. It applies to IV and IM doses that a provider gives and bills under buy-and-bill.
Should I bill J2920 or J2930 for a 125 mg dose?
J2930 fits a 125 mg dose at 1 unit. J2920 fits doses of 40 mg or less, and multiples of 40 mg where the payer allows it. The payer’s policy decides which code it prefers.
Does a J2920 claim need an NDC?
Medicaid and many commercial payers require it, and some MACs require or strongly recommend it. Report N4, the 11-digit NDC and the unit of measure. To turn a 10-digit NDC into 11 digits, add a leading zero to the short segment for a 5-4-2 format.
Do I need the JW or JZ modifier with J2920?
For Medicare Part B, drugs from single-dose vials carry one of these modifiers. Use JW on a separate line for any amount discarded, or JZ when none was discarded. Check whether your vial is single-dose before you bill.
Can I bill J2920 for oral methylprednisolone?
No. J2920 covers the injectable sodium succinate form only. Oral methylprednisolone has its own code, J7509, billed per 4 mg. Most tablet prescriptions bill through the patient’s pharmacy benefit instead.



