HCPCS code J7631 – Cromolyn sodium inhalation solution (unit dose)
J7631 is the HCPCS Level II code for cromolyn sodium, inhalation solution, FDA-approved final product, non-compounded, administered through DME, unit dose form, per 10 milligrams.
One unit equals 10 mg, so a standard 20 mg/2 mL ampule bills as two units. Its look-alike is J7632, the compounded version, which the Medicare nebulizer LCD denies as not reasonable and necessary.
- Level
- Level II
- Category
- J — Drugs administered other than oral method
- Status
- Active, effective 1 January 2008
- Billable
- No
- Code also known as
- Cromolyn sodium noncomp unit, cromolyn sodium nebulizer solution
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 J7631 bills FDA-approved, non-compounded cromolyn sodium inhalation solution given through a DME nebulizer, in unit dose form.
One unit equals 10 mg, so a standard 20 mg/2 mL ampule is two units.
The compounded version is J7632, and the Medicare nebulizer LCD denies it as not reasonable and necessary.
Medicare covers cromolyn under LCD L33370 for obstructive pulmonary disease, using the Group 8 diagnosis codes in policy article A52466.
Albuterol is not J7631, so bill albuterol unit dose solution with J7613 instead.
HCPCS code J7631 is cromolyn sodium, billed per 10 mg
HCPCS code J7631 is the Level II code for FDA-approved, non-compounded cromolyn sodium inhalation solution, given through DME in unit dose form, per 10 mg.
In plain terms, it’s the cromolyn ampule a patient puts in a home nebulizer. Medicare’s nebulizer LCD L33370 lists cromolyn (J7631) among the inhalation drugs it can cover for obstructive pulmonary disease.
The code catches people out for one reason. Its neighbors in the J7600 range look almost identical, and it is easy to mix up with the albuterol codes. Albuterol unit dose solution has its own code, and cromolyn has this one.
The current non-compounded wording dates from 1 January 2008, when CMS split cromolyn into J7631 and the compounded J7632. The code itself is older, so you may see an earlier date in some lookup tools.
A 20 mg ampule bills as two units of J7631
Unit math is where most J7631 lines go wrong, so work it out first. Divide the total milligrams dispensed by 10. A cromolyn ampule holds 20 mg in 2 mL, so each one counts as two units.
Here’s a worked example for a 30-day supply at four 20 mg treatments a day:
- Per treatment: 20 mg ÷ 10 mg = 2 units.
- Per day: 4 treatments × 2 units = 8 units.
- Per 30 days: 8 units × 30 days = 240 units, or 2,400 mg.
L33370 sets a maximum for cromolyn of 2,480 mg a month, which is 248 units. That’s the same regimen over a 31-day month. Claims above that are denied as not reasonable and necessary. Check the exact wording in the current LCD.

The most common slip is billing the ampule count as the unit count. Sixty ampules is 120 units, not 60.
J7631 and its look-alike codes bill different drugs
Once the units are right, check the code itself. These are the codes most often confused with J7631, and each one bills something different.
If the dispensing record says albuterol, stop and recode. A cromolyn code on an albuterol claim fails on both the drug and the unit, because albuterol bills per 1 mg.
Coverage depends on the nebulizer LCD and its Group 8 diagnoses
Medicare doesn’t cover cromolyn on its own terms. It covers it as a nebulizer drug, so the claim stands or falls on the nebulizer policy. L33370 says cromolyn (J7631) is reasonable and necessary for managing obstructive pulmonary disease. The matching diagnoses are the Group 8 codes in policy article A52466.
Group 8 includes J41–J47 (asthma, COPD, chronic bronchitis, emphysema), J60–J70.9 and two COVID-19 codes. Common examples are J45.909 for unspecified asthma and J44.9 for COPD. Check the exact code on the list.
The drug and the equipment are tied together, too. The LCD says that if none of the nebulizer drugs are covered, the nebulizer compressor and its accessories are denied as well. A J7631 denial can therefore pull an E0570 nebulizer claim down with it.
Commercial and Medicaid plans write their own policies. Many follow the Medicare logic, but confirm prior authorization and quantity rules with each payer.
How a J7631 claim moves from order to payment
For a home nebulizer patient, the DME supplier bills the DME MAC, not the prescriber’s practice. Here’s the path a clean claim takes.
- The prescriber writes the order. It names cromolyn inhalation solution, the dose, the frequency and the nebulizer. The chart supports an obstructive pulmonary disease diagnosis.
- The supplier dispenses. They record the product, the number of ampules and the supply period.
- The supplier codes the lines. The drug goes on J7631 with units in 10 mg steps. The dispensing fee goes on its own line.
- Modifiers go on. KO marks a single drug in a unit dose container. KX goes on only when every LCD criterion is met.
- The DME MAC adjudicates. It checks the diagnosis against Group 8, the units against the monthly maximum, and the modifiers.
- Refills repeat the cycle. A52466 allows a refill dispensing fee no sooner than 10 days before the current supply runs out.
Medicare pays one dispensing fee per covered drug period. That’s G0333 for the initial fee, Q0513 for 30 days or Q0514 for 90 days. Q0513 and Q0514 can’t go on the same date of service.
Modifiers on J7631 come down to KO and KX
Billers ask the same few modifier questions about this code. Here are the short answers from policy article A52466.
- Does J7631 take KO? Yes. KO goes on a unit dose code when the container holds a single drug, and a cromolyn ampule does.
- What about KP or KQ? No. A52466 lists J7631 among the unit dose codes that are rejected with KP or KQ.
- When does KX apply? Only when every criterion in the LCD’s coverage section is met. The supplier adds it to the nebulizer, drug, supply and dispensing fee lines.
- And if the criteria aren’t met? Use GA when a valid Advance Beneficiary Notice (ABN) is on file, or GZ when it isn’t.
Your DME MAC’s own pages carry the details for your jurisdiction, so follow them where they add to the policy article.
Run this checklist before you submit a J7631 claim
- The product dispensed is FDA-approved cromolyn, not a compounded solution.
- Units equal total milligrams divided by 10.
- The monthly total sits at or under 248 units (2,480 mg).
- The diagnosis is on the A52466 Group 8 list.
- KO is on the drug line, and KP or KQ is not.
- KX is only on lines where every LCD criterion is met, with GA or GZ otherwise.
- One dispensing fee code covers the supply period.
- A refill isn’t dispensed more than 10 days before the current supply ends.
Common mistakes that get J7631 claims denied
- Using J7631 for albuterol. The code describes cromolyn only. Albuterol unit dose bills on J7613.
- Counting ampules as units. Each 20 mg ampule is two units, so the line doubles.
- Billing a compounded product on J7631. J7631 is for FDA-approved final products only. Compounded cromolyn is J7632, or J7699 where no specific code fits, and Medicare denies both under the LCD.
- A diagnosis outside Group 8. A cough or allergy code alone won’t support the drug.
- Adding KX by default. KX is an attestation, so it needs the record behind it.
- Stacking dispensing fees. One fee per period, and never Q0513 with Q0514 on the same date.
When a denial does land, read the remittance codes first. Our guide to denial codes in medical billing explains what each one means.
How Pabau supports billing for inhalation drug claims
When nebulizer orders live in a chart, a spreadsheet and a payer portal, details drift between them. A 20 mg dose becomes 20 units on the claim, and nobody notices until the denial arrives.
Pabau’s practice software keeps the clinical record and the billing in one system. Pabau supports insurance billing through claims management, and US claims run through Claim.MD. The order, the diagnosis and the claim sit on the same patient record, so your team checks them in one place.
The coding judgment stays with your billers. Pabau gives them the record to check it against, which makes the pre-submission checklist faster to run.
Keep nebulizer claims and records together
Pabau keeps the patient record, the diagnosis and the insurance claim in one system, with US claims sent through Claim.MD. Your billers check each line against the chart before it goes out.

Conclusion
Treat J7631 as a cromolyn code first and a units problem second. Confirm the drug is FDA-approved cromolyn, then divide the milligrams by 10, and most of the risk is gone.
The rest is policy hygiene. Match the diagnosis to Group 8, use KO and KX as A52466 describes, and recheck L33370 whenever it’s revised. Book a demo to see how Pabau keeps the record and the claim side by side for your billing team.
Continue your research
Billing the nebulizer itself? HCPCS code E0570 covers the compressor nebulizer that J7631 depends on.
Was the drug albuterol, not cromolyn? HCPCS code J7613 is the albuterol unit dose code, billed per 1 mg.
Billing a second nebulizer drug? HCPCS code J7644 explains ipratropium bromide unit dose billing.
No specific code for the inhalation drug? HCPCS code J7699 covers the not-otherwise-classified inhalation drug code.
Working a denied claim? Denial codes in medical billing decodes the remittance codes behind a rejection.
Frequently asked questions
Is cromolyn sodium a rescue medication?
No. Cromolyn is a preventive controller for asthma. It’s labeled as a prophylactic agent and has no role in treating an acute attack, so patients still need a separate rescue inhaler.
Does J7631 cover cromolyn nasal spray or oral cromolyn?
No. J7631 describes an inhalation solution given through a DME nebulizer only. Nasal sprays and oral cromolyn are different products and don’t bill on this code.
Which Medicare benefit pays for cromolyn inhalation solution?
When it’s given through a home nebulizer, the DME MAC processes it as a Part B claim. Inhalation drugs not given through DME aren’t billed to the DME MAC. Policy article A52466 notes they may fall under Part D instead.
Do private insurers follow LCD L33370?
Not automatically. LCDs bind Medicare contractors only. Commercial and Medicaid plans set their own rules, so check each payer’s drug policy and prior authorization list.
Can J7631 be billed for an inhaler instead of a nebulizer?
No. The descriptor requires administration through DME, which means a nebulizer. A metered-dose inhaler isn’t DME, so it doesn’t bill on J7631.



