How to pick the right STC (when there isn’t one)

Jul 21, 2025

Healthcare

Most payers expect a Service Type Code (STC) in eligibility requests. It tells the payer what kind of benefits you want back – mental health, urgent care, vision, and so on.

But not every healthcare service maps cleanly to an STC.

Take medical nutrition or ABA therapy. There’s no obvious STC. Which one should you use?

The answer depends on the payer. The only way to know which STCs a payer supports – and return the benefits you need – is to test them.

This guide shows how to test for STC support and includes a cheat sheet of STCs to try for services that don't have a clear match. It also gives a quick primer on how STCs work in 270/271 eligibility checks.

Just want the cheat sheet? Scroll to the bottom.

Note: This guide is for medical STCs only. It doesn't cover dental STCs or dental-only payers.

What’s an STC?

A Service Type Code (STC) is a two-character code that groups similar healthcare services into standard categories. For example:

  • 47 – Hospital

  • AL – Vision

  • UC – Urgent care

In eligibility requests, STCs tell the payer what type of benefits you're asking about. In responses, they indicate what type of service each returned benefit entry relates to.

The standard STC list

HIPAA standardizes the list of valid STCs in X12 version 005010. Medical payers should only send these STCs in responses – but they aren’t required to support every code in the list.

For the full set of X12 005010 STCs, see Service Type Codes in the Stedi docs.

Note: X12 maintains a broader Service Type Codes list for later X12 versions. X12’s list includes codes that aren’t part of 005010 and shouldn’t be used by medical payers.

STC 30 - The fallback

If you only send STC 30 (Health Benefit Plan Coverage) in the eligibility request and the patient’s plan covers it, HIPAA requires the payer to return benefits for the following STCs:

STC

Description

1

Medical Care

33

Chiropractic

47

Hospital

86

Emergency Services

88

Pharmacy

98

Professional (Physician) Visit - Office

AL

Vision (Optometry)

MH

Mental Health

UC

Urgent Care

The payer may include benefits for other STCs as well.

How to use STCs in eligibility requests

If you’re using Stedi’s JSON-based Eligibility APIs, include an STC in the request’s encounter.serviceTypeCodes array:

"encounter": {
  "serviceTypeCodes": ["30"]
}

If you don’t include an STC in the request, Stedi defaults to 30 (Health Benefit Plan Coverage).

The array supports multiple STCs, but payer support varies. Unless you’ve tested a payer specifically, only send one STC per request.

To learn how to test for multi-STC support, see How to avoid eligibility check errors.

How STCs show up in eligibility responses

Most benefit details are in the benefitsInformation object array. Each object in the array includes a serviceTypeCodes field:

{
  ...
  "benefitsInformation": [
    {
      "code": "1",                        // Active coverage
      "serviceTypeCodes": ["CF"],         // Mental Health Provider - Outpatient
      "timeQualifierCode": "23",          // Calendar year
      "inPlanNetworkIndicatorCode": "Y",  // Applies to in-network services
      "additionalInformation": [
        {
          "description": "INCLUSIONS SPEECH/PHYSICAL/OCCUPATIONAL THERAPY; APPLIED BEHAVIOR ANALYSIS (ABA)"
        }
      ]
    },
    {
      "code": "C",                        // Deductible
      "serviceTypeCodes": ["CF"],         // Mental Health Provider - Outpatient
      "benefitAmount": "1000",            // $1000 annual deductible
      "timeQualifierCode": "23",          // Calendar year
      "inPlanNetworkIndicatorCode": "N"   // Applies to out-of-network services
    },
    {
      "code": "D",                        // Benefit Description
      "serviceTypeCodes": ["CF"],         // Mental Health Provider - Outpatient
      "additionalInformation": [
        {
          "description": "EXCLUSIONS: DEVELOPMENTAL TESTING, EDUCATIONAL THERAPY"
        }
      ]
    }
  ],
  ...
}

Responses may include entries for STCs you didn't request. And you'll typically see the same STC repeated across multiple benefit entries. That's normal – each entry covers a different aspect of benefits, like coverage status, co-pays, or deductibles.

Payers also use multiple entries to describe different subsets of services within an STC. For example, the MH STC might have one entry for standard therapy and another that notes coverage for other treatments. Descriptions typically appear in entries with code: "1" (Active Coverage) or code: "D" (Benefit Description), but they can appear in other entries as well. To get the full picture of benefits for a service, check all entries with the same serviceTypeCodes value.

For more information on interpreting eligibility responses, see How to read a 271 eligibility response in plain English.

Picking an STC

When sending an eligibility request, use the most specific STC you can. It narrows the response to the benefits you care about and reduces guesswork. For example, if you send a request for STC 33 (chiropractic) instead of STC 30, you’ll get specific benefits related to chiropractic care.

However, some services, like remote therapeutic monitoring (RTM) or speech therapy, don’t map cleanly to well-supported STCs.

In these cases, your best option is to systematically test the STCs that seem most appropriate and compare the responses to see if you get the benefits information you need.

How to test for STC support

  1. Send a baseline eligibility request.
    Submit an eligibility check to the payer using STC 30 (Health Benefit Plan Coverage). This gives you a fallback response to compare against.

  2. Test your specific STC.
    Send a second request to the payer for the same patient with the STC that best matches the benefit type you’re targeting. Use the STCs in the cheat sheet as a starting point.

  3. Compare the specific STC response to the baseline response.
    If responses change based on the STC, the payer likely supports the specific STC.

If responses are identical, the payer may not support the specific STC – or the patient’s plan might not cover that service. When that happens, medical payers are required to return a fallback response using STC 30.

Example: Testing STC support for ABA therapy

Start with a baseline eligibility request using STC 30 (Health Benefit Plan Coverage):

{
  "encounter": {
    "serviceTypeCodes": ["30"]
  }
}

Then try a more specific STC like BD (mental health):

{
  "encounter": {
    "serviceTypeCodes": ["BD"]
  }
}

If the BD response includes benefitsInformation objects with a serviceTypeCodes field value of BD, the payer supports STC BD. Use this response if it includes the benefits information you need.

If the responses are identical, the payer or plan likely doesn't support the BD STC. You continue testing other related STCs, such as MH (Mental Health).

If you've already tried other STCs and no others seem appropriate, use the response for STC 30. If STC 30 doesn't include the benefits information you need, you may need to call the payer or visit the payer portal.

Tip: Automate your STC tests
To speed up testing, script your requests. Loop through candidate STCs and compare the responses against the baseline STC 30 response, using the same patient. Save the benefitsInformation array for each STC and diff them. This helps you spot what changes, if anything, between requests.

The STC cheat sheet

If you’re testing STC support for a service without a clear mapping, use the following table as a starting point. This list isn’t exhaustive and it isn’t payer-specific, but it’s a starting point for what we’ve seen work in production.

Try the STCs in the order shown – from the most specific to more general alternatives.

For a complete list of STCs, see Service Type Codes in the Stedi docs. For help mapping procedure codes to STCs, see How to map procedure codes to STCs.

Type of Care

STCs to Try

ABA Therapy

BD, MH

Acupuncture

64, 1

Chemotherapy

ON, 82, 92

Chemotherapy, IV push

82, 92

Chemotherapy, additional infusion

82, 92

Chronic Care Management (CCM) services

A4, MH, 98, 1

Dermatology

3, 98

Durable Medical Equipment

DM, 11, 12, 18

IV push

92

IV Therapy/Infusion

92, 98

Maternity (professional)

BT, BU, BV, 69

Medical nutrition therapy

98, MH, 1

Medical nutrition follow-up

98, MH, 1

Mental health

MH ,96, 98, A4, BD, CF

Neurology

98

Newborn/facility

65, BI

Occupational Therapy

AD, 98

Physical therapy

PT, AE

Podiatry

93, 98

Primary care

96, 98, A4, A3, 99, A0, A1, A2, 98

Psychiatry

A4, MH

Psychological testing evaluation

A4, MH

Psychotherapy

96, 98, A4, BD, CF

Rehabilitation

A9, AA, AB, AC

Remote Therapeutic Monitoring (RTM) services

A4, 98, MH, 92, DM, 1

Skilled Nursing

AG, AH

Speech Therapy

AF, 98

Substance Abuse/Addiction

AI, AJ, AK, MH

Telehealth

9, 98

Transcranial magnetic stimulation

A4, MH

Share

Twitter
LinkedIn

Get started with Stedi

Get started with Stedi

Automate healthcare transactions with developer-friendly APIs that support thousands of payers. Contact us to learn more and speak to the team.

Get updates on what’s new at Stedi

Get updates on what’s new at Stedi

Get updates on what’s new at Stedi

Get updates on what’s new at Stedi

Backed by

Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.

Get updates on what’s new at Stedi

Backed by

Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.

Get updates on what’s new at Stedi

Backed by

Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.