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 |
| Transcranial magnetic stimulation |
|
| Psychological testing evaluation |
|
| IV push |
|
| Chemotherapy, IV push |
|
| Chemotherapy, additional infusion |
|
| Medical nutrition therapy |
|
| Medical nutrition follow-up |
|
| Psychiatry visits |
|
| Durable medical equipment, miscellaneous |
|
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:
The NDEDIC’s Companion to ASC X12 270/271
Table 6 in the ADA’s Technical Report No. 1102
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 |
| Gingivectomy or gingivoplasty |
|
| Local delivery of antimicrobial agent |
|
| Complete maxillary (upper) denture |
|
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 |
| Transcranial magnetic stimulation |
|
| Psychological testing evaluation |
|
| IV push |
|
| Chemotherapy, IV push |
|
| Chemotherapy, additional infusion |
|
| Medical nutrition therapy |
|
| Medical nutrition follow-up |
|
| Psychiatry visits |
|
| Durable medical equipment, miscellaneous |
|
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:
The NDEDIC’s Companion to ASC X12 270/271
Table 6 in the ADA’s Technical Report No. 1102
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 |
| Gingivectomy or gingivoplasty |
|
| Local delivery of antimicrobial agent |
|
| Complete maxillary (upper) denture |
|
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 |
| Transcranial magnetic stimulation |
|
| Psychological testing evaluation |
|
| IV push |
|
| Chemotherapy, IV push |
|
| Chemotherapy, additional infusion |
|
| Medical nutrition therapy |
|
| Medical nutrition follow-up |
|
| Psychiatry visits |
|
| Durable medical equipment, miscellaneous |
|
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:
The NDEDIC’s Companion to ASC X12 270/271
Table 6 in the ADA’s Technical Report No. 1102
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 |
| Gingivectomy or gingivoplasty |
|
| Local delivery of antimicrobial agent |
|
| Complete maxillary (upper) denture |
|
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
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.