HCPCS H-codes
HCPCS H-codes are Level II HCPCS codes (H0001-H2037) used mainly for alcohol and drug services and other behavioral health programs, especially in Medicaid and state-funded settings. H-codes often represent per-diem or bundled services, such as residential, IOP, or withdrawal management, instead of single CPT units.
What it means
What HCPCS H-codes are
HCPCS H-codes are a subset of HCPCS Level II codes that start with the letter H (H0001 through H2037). They are defined by CMS at the national level but are used most heavily by state Medicaid programs, Medicaid managed care plans, and state substance use agencies.
In behavioral health, H-codes commonly describe structured treatment programs instead of individual clinician services. Examples include:
- H0001: Alcohol and/or drug assessment
- H0015: Alcohol and/or drug services, intensive outpatient treatment
- H0018: Behavioral health, short-term residential (per diem)
- H2036: Alcohol and/or other drug treatment, residential, long-term (per diem)
The key difference from CPT: CPT codes usually describe a single encounter or service (for example, 90837 for 60-minute therapy). H-codes often roll multiple services into one daily or program-level code.
Why HCPCS H-codes matter operationally
H-codes drive how you get paid for large blocks of behavioral health work. Many Medicaid and carve-out behavioral health contracts pay residential, IOP, PHP, or withdrawal management using a single H-code per day. If the wrong H-code is used, or the payer expects a different code set, claims will deny or underpay for entire days of care.
Because H-codes often represent bundled services, the payer contract and fee schedule must be crystal clear on what is included. Room and board, nursing, therapy groups, case management, and MAT visits might be rolled into one H-code or split across H-codes, revenue codes, and sometimes S- or CPT codes. Small setup errors in your charge master turn into thousands of dollars lost every month.
H-codes also intersect directly with authorization and utilization review. Many payers authorize a span of days at a specific H-code and ASAM or LOCUS level. If your billed H-code does not match the authorized code or level of care, you will see denials for all units past the mismatch date, even if the clinical care was appropriate.
How to use HCPCS H-codes correctly
Using H-codes correctly starts with knowing which payers want them and for which levels of care. Some Medicaid plans require H-codes for IOP, PHP, or residential, while commercial plans expect CPT or S-codes for the same service. Your billing system should drive payer-specific code mapping so that the same service line in the schedule does not go out with different codes by accident.
Operationally, you need to align four things:
- The code (which H-code) and the unit definition (per diem, per hour, per 15 minutes)
- The revenue code, place of service, and modifiers required by that plan
- The authorized service on the approval letter (for example, H2036 per diem for 14 days)
- The clinical documentation that supports the code and the level of care
Many payers also layer in modifiers for things like telehealth or specialty populations. For telehealth behavioral services, most payers use modifier 95 for audio-video and 93 for audio-only, and GT was largely retired in 2018. H-codes may be billable via telehealth for some services, but you must confirm payer rules, since state Medicaid policies vary widely.
Clean H-code billing means your vendors, EHR, and clearinghouse know that H-codes are not interchangeable with CPT codes for the same service. Edits should fire if an H-code is sent to a payer that is configured for CPT only, or if the revenue code, place of service, or modifiers do not match that payer's policy.
Common mistakes
- Billing H0015 (IOP per day) to a commercial plan that only recognizes S9480 or CPT psychotherapy codes, which triggers CO-16 or CO-97 denials for invalid or non-covered service and forces rework as corrected claims.
- Using H2036 (long-term residential per diem) for all residential stays without checking the contract, when the Medicaid MCO actually pays short-term stays under H0018 and reserves H2036 for longer ASAM levels, leading to CO-50 or CO-197 denials when the stay does not meet the defined criteria.
- Setting H-codes in the charge master with a 15-minute unit definition because therapy is documented in 15-minute increments, even though the payer fee schedule is per diem, which causes underbilling and makes it look like length of stay revenue is lower than contracted.
- Submitting H-codes without the required revenue code (for example, 0901 or 1002 for certain residential stays) for a specific Medicaid plan, causing systematic CO-16 denials until someone notices the pattern and updates the billing configuration.
- Letting clinicians document "residential" or "IOP" in generic terms, then coding everything to a single H-code, instead of matching documentation to the correct ASAM or state-defined level that the authorization and payer policy require, which increases audit risk and retroactive recoupments.
Why it matters in behavioral health
Behavioral health is where H-codes really live. Many state Medicaid programs and state substance abuse agencies use H-codes as the primary way to pay for substance use disorder and mental health programs. That includes assessment, group services, care coordination, and full-day program codes for residential, IOP, PHP, and withdrawal management.
Carve-out behavioral health vendors often sit between Medicaid and your center. They may have their own H-code fee schedules and coverage rules that do not match medical benefits. If your eligibility and benefits checks do not catch that a member's behavioral health benefits are carved out to a different payer with H-code-specific rules, you can deliver weeks of treatment under the wrong code set and then watch entire episodes deny.
H-codes are also tightly coupled with concurrent authorization and long episodes of care. A typical pattern: the plan authorizes 7 days of H0018 for short-term residential, then continues a different code (for example, H2036) after concurrent review. If billing keeps sending H0018 while clinical moves the patient to a different level of care, claims for later days will deny as not authorized, even though the member stayed in treatment.
Because H-codes often roll many services into one per-diem payment, medical necessity auditing can be harsher. If auditors decide that the ASAM or LOCUS level was not supported, they can recoup entire days coded under an H-code. That is a much larger hit than losing payment on a single CPT session.
How AI can help with HCPCS H-codes
AI agents can track which payers accept which H-codes, crosswalk internal service definitions to payer-specific code requirements, and catch mismatches before claims go out. For example, an agent can look at payer ID, plan type, and authorization, then verify that the billed H-code, revenue code, place of service, and units match the rule set for that payer and state Medicaid program.
Supabill's claim-scrubbing agent can hold state and payer-specific H-code rules, flag when a residential stay is billed with the wrong H-code for the level of care or contracted rate, and catch when a claim uses H-codes for a payer that expects CPT or S-codes. Supabill's denials agent can read every 835, classify CO-50 and CO-197 denials that cluster around specific H-codes, and surface patterns that signal a contract, coding, or auth-mismatch problem. Humans still need to interpret contract language, adjust clinical and documentation workflows, and run peer-to-peer or appeal strategies when payers dispute the level of care.
FAQ
Are HCPCS H-codes only for Medicaid?
H-codes are used most heavily by Medicaid and state-funded programs, but some commercial and Medicare Advantage plans also recognize them in certain markets. Always check each payer's fee schedule and billing guidelines to see whether they expect H-codes, CPT, or S-codes for your programs.
What is the difference between an H-code and a CPT code for the same service?
CPT codes usually describe a single service or visit, such as one therapy session. H-codes often represent a bundled program or a per-day level of care, such as a full day of IOP or residential treatment that includes multiple services.
Can I use H-codes and CPT codes together on the same day?
Sometimes, but it depends on payer rules and how the H-code is defined. If the H-code is a true per-diem that includes all services, billing separate CPT codes on the same day can trigger denials or audits for unbundling. Check payer policies and contract language before combining them.
Where can I see the official descriptions for HCPCS H-codes?
Official short and long descriptions for H-codes are part of the national HCPCS Level II file published by CMS. You can access HCPCS information on the CMS HCPCS general information page. Source
Do HCPCS H-codes have to match ASAM or LOCUS levels of care?
Many Medicaid and managed care plans informally map certain H-codes to ASAM or LOCUS levels, especially for residential, withdrawal management, and IOP. Even if the mapping is not written into the code description, your documentation and auth should support the level of care the payer expects for that H-code. Source
Related terms
A HCPCS code is a standardized alphanumeric code used to bill medical procedures, supplies, and services to Medicare, Medicaid, and many commercial payers, especially for non-physician and facility services. Behavioral health programs rely on HCPCS codes for per-diem levels of care, Medicaid-specific services, and many state-defined benefits.
A CPT code is a standardized five-character code that describes medical, surgical, and diagnostic services for billing and reporting. Behavioral health claims use CPT codes to describe services like therapy, psychiatry, and evaluation services so payers know what was done and how to pay it.
A Medicaid Managed Care Organization (MCO) is a private or nonprofit health plan that contracts with a state Medicaid agency to deliver Medicaid-covered services to enrolled members, usually for a fixed per-member-per-month payment. In behavioral health revenue cycle, a Medicaid MCO is the billed payer and follows plan-specific coverage, authorization, and billing rules that differ from fee-for-service Medicaid.
Residential Treatment (RTC) is a 24-hour behavioral-health level of care where patients live on site and receive structured clinical services but do not require acute inpatient hospital care. In revenue cycle terms, residential treatment usually bills on a per-diem basis and sits between inpatient hospitalization and partial hospitalization or intensive outpatient care.
Related denial codes
Not deemed a medical necessity
Precertification, authorization, or notification absent
Benefit included in another service already adjudicated
Charge exceeds fee schedule or contracted amount
Claim lacks information or has a submission error
