How to map procedure codes to Service Type Codes (STCs)

Jun 24, 2025

Products

Most payers don’t support procedure codes in 270 eligibility requests.

This guide explains how to work around that using Stedi's Eligibility Check APIs. It covers how to test a payer for procedure code support and common procedure-to-STC mappings.

Why procedure codes don't work for eligibility

A procedure code is a billing code for a specific healthcare service or product – like a dental cleaning or an ambulance ride. It’s what you use to submit claims. It tells the payer what service was performed.

You'd think procedure codes would also work with eligibility requests. Procedure codes are specific. They’re the same codes you use to bill. And they’re supported by the 270 X12 format.

But most payers ignore them in eligibility requests.

Instead, payers expect a Service Type Code (STC) like 30 (General Medical Care) or MH (Mental Health). STCs are broad categories that group related procedures. This makes things simpler for payers. There are thousands of procedure codes. There are fewer than 200 STCs.

If you send a procedure code anyway, most payers just send a fallback response for STC 30 (General Medical) or 35 (General Dental) – or nothing at all.

While common patterns exist, there's no standard way to match procedures to STCs. Each payer has their own mapping, and they don't document how they do it. Even for a single procedure code, the right STC might vary based on the provider type, place of service, or other modifiers.

Common types of procedure codes

There are a few types – or sets – of procedure codes. Major ones include:

  • Current Procedural Terminology (CPT) codes – Used for most medical services. Maintained by the American Medical Association (AMA).

  • Healthcare Common Procedure Coding System (HCPCS) codes – Used for things like medical equipment, ambulance rides, and certain drugs. Includes CPT codes as Level I.

  • Current Dental Terminology (CDT) codes - Used for dental services. Maintained by the American Dental Association (ADA).

How to use a procedure code or STC in a 270 request

You can send either a procedure code or an STC in an eligibility request - not both. If you’re using Stedi’s JSON eligibility API endpoints, you include them in the encounter object:

// Example using a procedure code (CPT 97802)
"encounter": {
  "productOrServiceIDQualifier": "HC",	// CPT/HCPCS codes
  "procedureCode": "97802"			    // CPT code for medical nutrition therapy
}

// Example using an STC
"encounter": {
  "serviceTypeCodes": ["30"] 		    // STC for general medical care
}

If using STCs, send one per request. Some payers accept multiple STCs, but test first. See How to avoid eligibility check errors for testing tips.

Note: Technically, you can send both a procedure code and STC using encounter.medicalProcedures and encounter.serviceTypeCodes respectively. However, no payer in our Payer New other than CMS HETS supports both properties.

Where to find procedure-level info in 271 responses

Even if a payer doesn’t support procedure codes in 270 requests, they might include procedure details in the 271 response.

If you’re using Stedi’s JSON eligibility API endpoints, most benefits information is in the response’s benefitsInformation objects. Here’s what to look for:

The compositeMedicalProcedureIdentifier field

This means the payer tied benefits to a specific procedure:

{
  "code": "B",			                      // Co-pay
  "benefitAmount": "50",		              // $50 co-pay
  "serviceTypeCodes": ["35"],	              // General dental care
  "compositeMedicalProcedureIdentifier": {
    "productOrServiceIDQualifierCode": "AD",  // American Dental Association (ADA)
    "procedureCode": "D0120"     // Periodic Oral Evaluation - established patient
  },
  ...
}

Check additionalInformation.description

Some payers stuff procedure codes into the free-text notes in additionalInformation.description:

{
  "code": "B",
  "serviceTypeCodes": ["35"],	// General dental care
  ...
  "additionalInformation": [
    {
      "description": "Benefit applies to D0150 - Comprehensive oral evaluation"
    }
  ]
}

How to test a payer for procedure code support

There’s no definitive list of which payers support procedure codes in eligibility checks. The only way to find out is to test.

Here’s our recommended approach:

  • Send a 270 request with your procedure code.

  • Send another 270 with the likely STC. See common mappings below.

  • Compare the 271 responses.

Do this for your most common procedures and payers. Create your own mapping to keep track of what works for each payer.

Common mappings to try

These mappings are starting points. Test them with your payers.

For a complete list of STCs, check out Service Type Codes in the Stedi docs.

Medical procedures (CPT/HCPCS)

Procedure

Description

STCs to try

90867

Transcranial magnetic stimulation

MH, A4

96130

Psychological testing evaluation

MH, A4

96375

IV push

92

96493

Chemotherapy, IV push

82, 92

96494

Chemotherapy, additional infusion

82, 92

97802

Medical nutrition therapy

1, 98, MH

97803

Medical nutrition follow-up

1, 98, MH

99214

Psychiatry visits

MH, A4

E1399

Durable medical equipment, miscellaneous

11, 12, 18

Dental procedures (CDT)

For CDT codes, industry bodies like the ADA and NDEDIC have published recommended CDT-to-STC mappings. These are useful starting points – but they’re not enforced. Payers can ignore them.

You can find the recommended mappings in:

You can buy those documents or contact Stedi for help with a specific code.In addition to the guides, you can try the mappings below.

Procedure

Description

STCs to try

D4210

Gingivectomy or gingivoplasty

25

D4381

Local delivery of antimicrobial agent

25

D5110

Complete maxillary (upper) denture

39

Get expert help fast

Want help figuring out the right STC for a specific code? Reach out – Stedi’s eligibility experts have seen a lot. We’re happy to help.

Most payers don’t support procedure codes in 270 eligibility requests.

This guide explains how to work around that using Stedi's Eligibility Check APIs. It covers how to test a payer for procedure code support and common procedure-to-STC mappings.

Why procedure codes don't work for eligibility

A procedure code is a billing code for a specific healthcare service or product – like a dental cleaning or an ambulance ride. It’s what you use to submit claims. It tells the payer what service was performed.

You'd think procedure codes would also work with eligibility requests. Procedure codes are specific. They’re the same codes you use to bill. And they’re supported by the 270 X12 format.

But most payers ignore them in eligibility requests.

Instead, payers expect a Service Type Code (STC) like 30 (General Medical Care) or MH (Mental Health). STCs are broad categories that group related procedures. This makes things simpler for payers. There are thousands of procedure codes. There are fewer than 200 STCs.

If you send a procedure code anyway, most payers just send a fallback response for STC 30 (General Medical) or 35 (General Dental) – or nothing at all.

While common patterns exist, there's no standard way to match procedures to STCs. Each payer has their own mapping, and they don't document how they do it. Even for a single procedure code, the right STC might vary based on the provider type, place of service, or other modifiers.

Common types of procedure codes

There are a few types – or sets – of procedure codes. Major ones include:

  • Current Procedural Terminology (CPT) codes – Used for most medical services. Maintained by the American Medical Association (AMA).

  • Healthcare Common Procedure Coding System (HCPCS) codes – Used for things like medical equipment, ambulance rides, and certain drugs. Includes CPT codes as Level I.

  • Current Dental Terminology (CDT) codes - Used for dental services. Maintained by the American Dental Association (ADA).

How to use a procedure code or STC in a 270 request

You can send either a procedure code or an STC in an eligibility request - not both. If you’re using Stedi’s JSON eligibility API endpoints, you include them in the encounter object:

// Example using a procedure code (CPT 97802)
"encounter": {
  "productOrServiceIDQualifier": "HC",	// CPT/HCPCS codes
  "procedureCode": "97802"			    // CPT code for medical nutrition therapy
}

// Example using an STC
"encounter": {
  "serviceTypeCodes": ["30"] 		    // STC for general medical care
}

If using STCs, send one per request. Some payers accept multiple STCs, but test first. See How to avoid eligibility check errors for testing tips.

Note: Technically, you can send both a procedure code and STC using encounter.medicalProcedures and encounter.serviceTypeCodes respectively. However, no payer in our Payer New other than CMS HETS supports both properties.

Where to find procedure-level info in 271 responses

Even if a payer doesn’t support procedure codes in 270 requests, they might include procedure details in the 271 response.

If you’re using Stedi’s JSON eligibility API endpoints, most benefits information is in the response’s benefitsInformation objects. Here’s what to look for:

The compositeMedicalProcedureIdentifier field

This means the payer tied benefits to a specific procedure:

{
  "code": "B",			                      // Co-pay
  "benefitAmount": "50",		              // $50 co-pay
  "serviceTypeCodes": ["35"],	              // General dental care
  "compositeMedicalProcedureIdentifier": {
    "productOrServiceIDQualifierCode": "AD",  // American Dental Association (ADA)
    "procedureCode": "D0120"     // Periodic Oral Evaluation - established patient
  },
  ...
}

Check additionalInformation.description

Some payers stuff procedure codes into the free-text notes in additionalInformation.description:

{
  "code": "B",
  "serviceTypeCodes": ["35"],	// General dental care
  ...
  "additionalInformation": [
    {
      "description": "Benefit applies to D0150 - Comprehensive oral evaluation"
    }
  ]
}

How to test a payer for procedure code support

There’s no definitive list of which payers support procedure codes in eligibility checks. The only way to find out is to test.

Here’s our recommended approach:

  • Send a 270 request with your procedure code.

  • Send another 270 with the likely STC. See common mappings below.

  • Compare the 271 responses.

Do this for your most common procedures and payers. Create your own mapping to keep track of what works for each payer.

Common mappings to try

These mappings are starting points. Test them with your payers.

For a complete list of STCs, check out Service Type Codes in the Stedi docs.

Medical procedures (CPT/HCPCS)

Procedure

Description

STCs to try

90867

Transcranial magnetic stimulation

MH, A4

96130

Psychological testing evaluation

MH, A4

96375

IV push

92

96493

Chemotherapy, IV push

82, 92

96494

Chemotherapy, additional infusion

82, 92

97802

Medical nutrition therapy

1, 98, MH

97803

Medical nutrition follow-up

1, 98, MH

99214

Psychiatry visits

MH, A4

E1399

Durable medical equipment, miscellaneous

11, 12, 18

Dental procedures (CDT)

For CDT codes, industry bodies like the ADA and NDEDIC have published recommended CDT-to-STC mappings. These are useful starting points – but they’re not enforced. Payers can ignore them.

You can find the recommended mappings in:

You can buy those documents or contact Stedi for help with a specific code.In addition to the guides, you can try the mappings below.

Procedure

Description

STCs to try

D4210

Gingivectomy or gingivoplasty

25

D4381

Local delivery of antimicrobial agent

25

D5110

Complete maxillary (upper) denture

39

Get expert help fast

Want help figuring out the right STC for a specific code? Reach out – Stedi’s eligibility experts have seen a lot. We’re happy to help.

Most payers don’t support procedure codes in 270 eligibility requests.

This guide explains how to work around that using Stedi's Eligibility Check APIs. It covers how to test a payer for procedure code support and common procedure-to-STC mappings.

Why procedure codes don't work for eligibility

A procedure code is a billing code for a specific healthcare service or product – like a dental cleaning or an ambulance ride. It’s what you use to submit claims. It tells the payer what service was performed.

You'd think procedure codes would also work with eligibility requests. Procedure codes are specific. They’re the same codes you use to bill. And they’re supported by the 270 X12 format.

But most payers ignore them in eligibility requests.

Instead, payers expect a Service Type Code (STC) like 30 (General Medical Care) or MH (Mental Health). STCs are broad categories that group related procedures. This makes things simpler for payers. There are thousands of procedure codes. There are fewer than 200 STCs.

If you send a procedure code anyway, most payers just send a fallback response for STC 30 (General Medical) or 35 (General Dental) – or nothing at all.

While common patterns exist, there's no standard way to match procedures to STCs. Each payer has their own mapping, and they don't document how they do it. Even for a single procedure code, the right STC might vary based on the provider type, place of service, or other modifiers.

Common types of procedure codes

There are a few types – or sets – of procedure codes. Major ones include:

  • Current Procedural Terminology (CPT) codes – Used for most medical services. Maintained by the American Medical Association (AMA).

  • Healthcare Common Procedure Coding System (HCPCS) codes – Used for things like medical equipment, ambulance rides, and certain drugs. Includes CPT codes as Level I.

  • Current Dental Terminology (CDT) codes - Used for dental services. Maintained by the American Dental Association (ADA).

How to use a procedure code or STC in a 270 request

You can send either a procedure code or an STC in an eligibility request - not both. If you’re using Stedi’s JSON eligibility API endpoints, you include them in the encounter object:

// Example using a procedure code (CPT 97802)
"encounter": {
  "productOrServiceIDQualifier": "HC",	// CPT/HCPCS codes
  "procedureCode": "97802"			    // CPT code for medical nutrition therapy
}

// Example using an STC
"encounter": {
  "serviceTypeCodes": ["30"] 		    // STC for general medical care
}

If using STCs, send one per request. Some payers accept multiple STCs, but test first. See How to avoid eligibility check errors for testing tips.

Note: Technically, you can send both a procedure code and STC using encounter.medicalProcedures and encounter.serviceTypeCodes respectively. However, no payer in our Payer New other than CMS HETS supports both properties.

Where to find procedure-level info in 271 responses

Even if a payer doesn’t support procedure codes in 270 requests, they might include procedure details in the 271 response.

If you’re using Stedi’s JSON eligibility API endpoints, most benefits information is in the response’s benefitsInformation objects. Here’s what to look for:

The compositeMedicalProcedureIdentifier field

This means the payer tied benefits to a specific procedure:

{
  "code": "B",			                      // Co-pay
  "benefitAmount": "50",		              // $50 co-pay
  "serviceTypeCodes": ["35"],	              // General dental care
  "compositeMedicalProcedureIdentifier": {
    "productOrServiceIDQualifierCode": "AD",  // American Dental Association (ADA)
    "procedureCode": "D0120"     // Periodic Oral Evaluation - established patient
  },
  ...
}

Check additionalInformation.description

Some payers stuff procedure codes into the free-text notes in additionalInformation.description:

{
  "code": "B",
  "serviceTypeCodes": ["35"],	// General dental care
  ...
  "additionalInformation": [
    {
      "description": "Benefit applies to D0150 - Comprehensive oral evaluation"
    }
  ]
}

How to test a payer for procedure code support

There’s no definitive list of which payers support procedure codes in eligibility checks. The only way to find out is to test.

Here’s our recommended approach:

  • Send a 270 request with your procedure code.

  • Send another 270 with the likely STC. See common mappings below.

  • Compare the 271 responses.

Do this for your most common procedures and payers. Create your own mapping to keep track of what works for each payer.

Common mappings to try

These mappings are starting points. Test them with your payers.

For a complete list of STCs, check out Service Type Codes in the Stedi docs.

Medical procedures (CPT/HCPCS)

Procedure

Description

STCs to try

90867

Transcranial magnetic stimulation

MH, A4

96130

Psychological testing evaluation

MH, A4

96375

IV push

92

96493

Chemotherapy, IV push

82, 92

96494

Chemotherapy, additional infusion

82, 92

97802

Medical nutrition therapy

1, 98, MH

97803

Medical nutrition follow-up

1, 98, MH

99214

Psychiatry visits

MH, A4

E1399

Durable medical equipment, miscellaneous

11, 12, 18

Dental procedures (CDT)

For CDT codes, industry bodies like the ADA and NDEDIC have published recommended CDT-to-STC mappings. These are useful starting points – but they’re not enforced. Payers can ignore them.

You can find the recommended mappings in:

You can buy those documents or contact Stedi for help with a specific code.In addition to the guides, you can try the mappings below.

Procedure

Description

STCs to try

D4210

Gingivectomy or gingivoplasty

25

D4381

Local delivery of antimicrobial agent

25

D5110

Complete maxillary (upper) denture

39

Get expert help fast

Want help figuring out the right STC for a specific code? Reach out – Stedi’s eligibility experts have seen a lot. We’re happy to help.

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.