Tool 1: Search for Payer
What It Does
Searches Stedi’s payer database to find the correct Payer ID for an insurance company. Use this before running an eligibility check when you have the insurance company name but need the Payer ID.When to Use
- Patient provides insurance company name but you need the Payer ID
- Patient gives insurance name with typos or partial name
- You need to verify a payer supports eligibility checks
- You need to find related payer IDs (e.g., Cigna vs Cigna Medicare)
Input Parameters
| Parameter | Required | Description | Example |
|---|---|---|---|
query | Yes | Insurance company name or partial name | "cigna" |
pageSize | No | Number of results to return (recommended: 5-10) | 5 |
Recommended Page Size
| pageSize | Use Case |
|---|---|
5 | Quick lookup, show top matches only |
10 | Standard search, good balance |
20 | Broader search when unsure of payer name |
_💡 Tip: Always set pageSizeto _ 5 by default to avoid returning too many results. If no good match is found, ask the user for more details and search again.
Example Request
Example Response
Response Fields
| Field | Description |
|---|---|
payerId | Unique Stedi Payer ID - use this for eligibility check |
payerName | Full insurance company name |
availableTransactions | What transactions this payer supports |
Tips for Best Results
- Use partial names:
"cigna"finds all Cigna plans - Works with typos:
"aetna"or"etna"both work - Be specific if needed:
"cigna medicare"vs just"cigna" - If multiple results, ask user to clarify which plan
Common Issues
| Issue | Fix |
|---|---|
| No results found | Try shorter search term or different spelling |
| Too many results | Ask user for more details (Medicare? Medicaid? Commercial?) |
| Wrong payer selected | Confirm with user before proceeding |
Tool 2: Eligibility Check
What It Does
Runs a real-time eligibility verification with an insurance payer. Returns coverage status, benefits information, copays, deductibles, and more.When to Use
- Patient wants to book appointment with insurance
- Need to verify active coverage before scheduling
- Need to get copay/deductible information
- Need to check if provider is in-network
Input Parameters
Required Parameters
| Parameter | Description | Example |
|---|---|---|
tradingPartnerServiceId | Payer ID from search_for_payer | "CIGNA" |
provider.npi | Provider’s 10-digit NPI number | "1234567890" |
provider.organizationName | Practice/Provider name | "Your Practice Name" |
subscriber.firstName | Patient’s legal first name | "Jane" |
subscriber.lastName | Patient’s legal last name | "Doe" |
subscriber.dateOfBirth | DOB in YYYYMMDD format | "19850215" |
subscriber.memberId | Insurance member ID | "XYZ123456789" |
encounter.serviceTypeCodes | Array of service type codes | ["30"] |
Optional Parameters
| Parameter | Description | Example |
|---|---|---|
subscriber.gender | M, F, or U | "F" |
subscriber.ssn | Social Security Number (for Medicare MBI lookup) | "123456789" |
encounter.dateOfService | Service date YYYYMMDD | "20260127" |
encounter.procedureCode | CPT code | "99214" |
encounter.productOrServiceIDQualifier | REQUIRED if procedureCode is set | "HC" |
dependents | Array for dependent patients | See example below |
Service Type Codes
| Code | Description | Use For |
|---|---|---|
30 | Health Benefit Plan Coverage | General benefits check |
MH | Mental Health | Therapy, counseling |
A4 | Psychiatric | Psychiatric services |
A6 | Psychotherapy | Psychotherapy sessions |
A8 | Psychiatric - Outpatient | Outpatient psych |
35 | Dental Care | Dental services |
88 | Prescription Drug | Pharmacy benefits |
98 | Physical Therapy | PT services |
UC | Urgent Care | Urgent care visits |
AL | Vision | Vision services |
BZ | Home Health | Home health services |
Product or Service ID Qualifiers
| Code | Description | Use For |
|---|---|---|
HC | HCPCS (includes CPT) | CPT codes like 99214, 90837 |
ID | ICD-10 | Diagnosis codes |
AD | American Dental Association | Dental procedure codes |
_⚠️ IMPORTANT: If you includeprocedureCode, you MUST include _productOrServiceIDQualifier
Example Requests
Basic Request
With CPT Code
With Dependent
Response Fields
Key Fields
| Field Path | Description |
|---|---|
id | Stedi Check ID (ec_xxxxx) |
meta.traceId | Trace ID for support inquiries |
subscriber.firstName | Patient first name |
subscriber.lastName | Patient last name |
subscriber.memberId | Member ID |
subscriber.dateOfBirth | Date of birth |
payer.name | Insurance company name |
planStatus[0].status | Coverage status (Active Coverage/Inactive) |
planStatus[0].statusCode | Status code (1=Active, 6=Inactive) |
planStatus[0].planDetails | Plan name |
planInformation.groupNumber | Group number |
planInformation.groupDescription | Group name |
planDateInformation.planBegin | Coverage start date (YYYYMMDD) |
planDateInformation.planEnd | Coverage end date (YYYYMMDD) |
Benefits Information Fields
| Field Path | Description |
|---|---|
benefitsInformation[].code | Benefit type code |
benefitsInformation[].name | Benefit type name |
benefitsInformation[].coverageLevelCode | IND (Individual) or FAM (Family) |
benefitsInformation[].benefitAmount | Dollar amount |
benefitsInformation[].benefitPercent | Percentage (for coinsurance) |
benefitsInformation[].inPlanNetworkIndicatorCode | Y=In-Network, N=Out-of-Network |
benefitsInformation[].timeQualifierCode | 23=Calendar Year, 29=Remaining, 27=Per Visit |
benefitsInformation[].authOrCertIndicator | Y=Auth Required, N=Not Required |
Benefit Type Codes
| Code | Name | What It Is |
|---|---|---|
1 | Active Coverage | Confirms coverage is active |
A | Co-Insurance | Percentage patient pays after deductible |
B | Co-Payment | Fixed copay amount per visit |
C | Deductible | Deductible amount |
G | Out of Pocket (Stop Loss) | Out-of-pocket maximum |
F | Limitations | Visit limits or restrictions |
CB | Coverage Basis | Prior authorization requirement |
Coverage Level Codes
| Code | Meaning |
|---|---|
IND | Individual |
FAM | Family |
CHD | Children Only |
DEP | Dependents |
EMP | Employee Only |
ESP | Employee and Spouse |
Time Qualifier Codes
| Code | Meaning |
|---|---|
23 | Calendar Year |
24 | Year to Date |
29 | Remaining |
27 | Per Visit |
7 | Per Day |
Network Indicator Codes
| Code | Meaning |
|---|---|
Y | In-Network |
N | Out-of-Network |
W | Not Applicable |
U | Unknown |
Error Codes
Connectivity Errors (Retry Automatically)
| Code | Description | What to Do |
|---|---|---|
42 | Unable to Respond at Current Time | Wait 15 seconds, retry up to 2 minutes |
79 | Invalid Request | Retry with same data |
80 | Unable to Respond | Retry, then offer manual verification |
Patient Not Found (Troubleshoot)
| Code | Description | What to Do |
|---|---|---|
72 | Invalid/Missing Subscriber ID | Verify member ID spelling, remove dashes |
75 | Subscriber/Insured Not Found | Try legal name, verify DOB, try without member ID |
Provider Errors (Escalate to Billing Team)
| Code | Description | What to Do |
|---|---|---|
41 | Authorization Restrictions | Billing team to follow up |
70 | Certification Info Not Found | Manual verification needed |
73 | Invalid/Missing Provider | Check NPI, billing team to verify |
Data Errors (Fix and Retry)
| Code | Description | What to Do |
|---|---|---|
15 | Required Data Missing | Ask for group number or additional info |
35 | Out of Date Information | Confirm current insurance card |
43 | Invalid/Missing Provider ID | Verify NPI number |
Common Issues and Fixes
| Issue | Fix |
|---|---|
"Missing conditional field: productOrServiceIDQualifier is required" | Add "productOrServiceIDQualifier": "HC" when using procedureCode |
"Subscriber Not Found" (Code 75) | Verify name matches card exactly, try legal name instead of nickname, try without member ID |
"Invalid Member ID" (Code 72) | Double-check for typos, remove dashes or spaces, try with leading zeros |
| Response missing copay/deductible | Try different service type code, some payers return limited data |
| Timeout or no response | Retry automatically, if persists offer manual verification |
| Multiple plan statuses returned | Check planStatus[0] for primary status, review all for complete picture |
Workflow Summary
| Step | Action | Details |
|---|---|---|
| 1 | Get Insurance Name | Ask patient for insurance company name |
| 2 | Search for Payer | Use search_for_payer tool, get payerId from response |
| 3 | Collect Patient Info | First name (legal), last name, DOB, member ID |
| 4 | Run Eligibility Check | Use eligibility_check with payer ID, provider info, patient info |
| 5 | Interpret Results | Check planStatus[0].status, extract benefits from benefitsInformation |
| 6 | Communicate to Patient | Share coverage status, copay amount, include disclaimer |
| 7 | Log Results | Save all verification details for billing team follow-up |
Best Practices
Data Collection
- Always use patient’s legal name as shown on insurance card
- Format DOB as YYYYMMDD (no dashes)
- Confirm member ID spelling with patient
- Ask clarifying questions if insurance name is ambiguous
Running Checks
- Use one service type code per request for clearest results
- Always include
productOrServiceIDQualifier: "HC"when using CPT codes - Retry connectivity errors automatically before alerting user
Communicating Results
- Always state this is a preliminary eligibility check
- Explain that billing team will confirm details
- Provide clear next steps for inactive or out-of-network results
Logging
- Save Stedi Check ID and Trace ID for all verifications
- Log complete benefits information for billing team
- Note any errors or missing data for follow-up
