Changelog

Introducing transaction enrollment tasks

You can now use Stedi’s Transaction Enrollment API or the Stedi portal to complete enrollment tasks.

What are enrollment tasks?

An enrollment task is any action that must be completed by the provider or the provider’s delegate to move an transaction enrollment forward. Examples include:

  • Electronic funds transfer (EFT) enrollment with ERA enrollment, which involves giving the payer the provider’s bank information

  • Completing an action in the payer’s portal

What's changing?

As part of this release, we’ve:

For more details and examples, check our announcement blog.

Stedi’s Claim Submission API now returns raw X12 277CA claim acknowledgments

Stedi’s Claim Submission API responses now include an X12 277CA claim acknowledgment from Stedi in the x12 field. The x12 field is returned by the JSON and X12 endpoints across professional, institutional, and dental claims. It’s returned for both accepted and rejected claims.

For example, a JSON Professional Claim Submission API response for a rejected claim:

{
  "status": "ERROR",
  "errors": [
    {
      "code": "33",
      "description": "The billing provider tax id (TIN), 1234567893, is invalid. The TIN must be ...",
      "followupAction": "Please Correct and Resubmit"
    }
  ],
  "x12": "ISA*00*          *00*          *ZZ*STEDITEST      *ZZ*284631039151 ...,
  "httpStatusCode": "400 BAD_REQUEST",
  ...
}

You can use the x12 field to debug errors from claim rejections or store Stedi’s claim acknowledgments for tracking. Previously, Claim Submission API responses only included errors as JSON in the errors array.

What’s a claim acknowledgment?

A 277CA claim acknowledgment tells you whether a claim has been accepted or rejected for processing.

Stedi returns a claim acknowledgment after initial validation. Payers also return one or more acknowledgments later in the claim lifecycle.

The x12 field contains Stedi’s initial acknowledgment, generated after validating the claim against our database of edits. These edits – the industry’s term for an automated validation rule – mirror the same edits payers apply later in the process.

Stedi’s edits help catch validation errors early and reduce downstream payer rejections, which can delay payment for providers.

Rejections

If Stedi rejects a claim, the API response’s x12 field includes a descriptive claim status category code, claim status code, and error message in the STC (Status Information) segments of Loop 2200B, 2200B, 2200C, 2200D, or 2220D.

For example:

STC*A7>128>85*[DATE]*U*[AMOUNT]********The billing provider tax id (TIN), 1234567893, is invalid. The TIN must be a string of exactly 9 numbers with no separators. Correct and resubmit.~

You can use this information to correct and resubmit the claim.

Accepted claims

If Stedi accepts a claim, the API response’s x12 field includes the following values in the STC segments of Loop 2200B, 2200C, 2200D, or 2220D:

For example:

STC*A0>17>AY*[DATE]*WQ*[AMOUNT]~

Other claim acknowledgements

Stedi’s initial acceptance of a claim doesn’t guarantee payer acceptance. Rejections may occur during downstream validation, including later rejections by Stedi or an intermediary clearinghouse.

Each acceptance or rejection returns a separate claim acknowledgment transaction. You can use a webhook to listen for these additional claim acknowledgments, poll for them using our Poll Transactions API, or monitor them manually in the Stedi portal.

Announcing 100% coverage for transaction enrollment timeframes

You can now see how long transaction enrollment takes – minutes, hours, days, or weeks – for all Stedi payers and transaction types that require enrollment.

For payers and transaction types that don’t require enrollment, no timeframe is shown.

You can view enrollment timeframes using the Payers API or the Stedi Payer Network. For example, in the Stedi Payer Network:

Enrollment timeline on Stedi Payer Network

In Payers API responses:

{
  "payer": {
    "displayName": "Blue Cross Blue Shield of Michigan",
    "primaryPayerId": "00710",
    "enrollment": {
      "ptanRequired": false,
      "transactionEnrollmentProcesses": {
        "claimPayment": {                  // This payer requires enrollment for ERAs.
          "timeframe": "INSTANT",          // ERA enrollment typically takes minutes.
          "type": "ONE_CLICK"
        }
      }
    },
    ...
  }
}

Enrollment timeframes are based on Stedi's operational data – using real enrollments completed through our platform – and payer-specific rules.

Previously, enrollment timeframes were available but not populated for every payer.

You can use enrollment timeframes to plan go-live dates and set realistic expectations with providers.

To learn more, see our Introducing timeframes for transaction enrollments blog post.

Claim edit: Invalid place of service code

Stedi now rejects 837P professional and 837D dental claims that contain invalid place of service codes.

How the edit works

Place of service codes are two-digit codes that indicate where a service was delivered. The Centers for Medicare and Medicaid Services (CMS) maintains a list of valid place of service codes. For example: 11 (Office) or 23 (Emergency Room – Hospital).

If a professional or dental claim includes an invalid place of service code, the payer may reject the claim. This can delay payment for the provider.

This edit – the industry term for an automated validation rule – catches the issue before the claim reaches the payer.

Rejection errors

If you submit a claim that fails the edit using Stedi’s Claim Submission API endpoints, you’ll get back an error response in real time. The response includes details in the errors array:

{
  "errors": [
    {
      "code": "33",
      "description": "Invalid Place of Service code. The submitted place of service code, A5, is invalid. Correct and resubmit.",
      "followupAction": "Please Correct and Resubmit"
    }
  ]
}

If you submit a claim that fails the edit using SFTP, Stedi will reject the claim with a 277CA claim acknowledgment. The acknowledgment will include a related claim status category code, claim status code, and error message:

STC*A7>249*[DATE]*U*[AMOUNT]********Invalid Place of Service code. The place of service code, A5, is not a valid two-digit number or is unassigned. Correct and resubmit.~

Introducing instant enrollment for test ERAs

Electronic Remittance Advice (ERA) enrollments for the Stedi Test Payer (Payer ID: STEDITEST) now go live automatically.

You can submit claims to the Stedi Test Payer to generate realistic ERAs as part of a test workflow. To receive these test ERAs, you must first submit an ERA enrollment request for the Stedi Test Payer.

Previously, these enrollments only went live after an ERA was generated, which required submitting a claim before enrollment was active.

Now, ERA enrollments for the test payer move to the LIVE enrollment status about a minute after you submit the enrollment request.

Batch eligibility CSVs now support MBI lookups

You can now run Medicare Beneficiary Identifier (MBI) lookups – with or without a Social Security Number (SSN) – using a CSV batch eligibility check.

Previously, batch eligibility CSVs didn't support some address or SSN fields required for MBI lookups. We've now added several new supported fields to batch eligibility CSVs.

New fields for batch eligibility CSVs

With this update, batch CSVs now support the following fields.

Provider:

  • providerReferenceIdentification

Subscriber:

  • subscriberSsn

  • subscriberGender

  • subscriberSuffix

  • subscriberAddress1

  • subscriberAddress2

  • subscriberCity

  • subscriberAddressState

  • subscriberPostalCode

Dependent:

  • dependentMiddleName

  • dependentSsn

  • dependentGender

  • dependentSuffix

  • dependentAddress1

  • dependentAddress2

  • dependentCity

  • dependentAddressState

  • dependentPostalCode

For more information, see our batch eligibility docs.

Required fields for MBI lookups

With Stedi, you run MBI lookups as eligibility checks with the respective MBILU (MBI Lookup with SSN) or MBILUNOSSN (MBI Lookup without SSN) payer IDs. You can now run these checks using batch eligibility CSVs.

Note: MBI lookups require setup through transaction enrollment. See our related documentation.

MBI lookup with an SSN

To run an MBI lookup with an SSN, you must provide:

  • The patient’s first name – subscriberFirstName or dependentFirstName

  • The patient’s last name – subscriberLastName or dependentLastName

  • The patient’s date of birth  – subscriberDateOfBirth or dependentDateOfBirth

  • The patient’s Social Security Number (SSN) – subscriberSsn or dependentSsn

MBI lookup without an SSN

To run an MBI lookup without an SSN, you must provide:

  • The patient’s first name – subscriberFirstName or dependentFirstName

  • The patient’s last name – subscriberLastName or dependentLastName

  • The patient’s date of birth  – subscriberDateOfBirth or dependentDateOfBirth

  • The patient’s U.S. state – subscriberAddressState or dependentAddressState

What to include in MBI lookups

In an eligibility check, the patient may be the subscriber or a dependent. Generally, if the dependent has their own member ID, we recommend providing their information as a subscriber.

We don't recommend including more patient demographic information, such as additional address data, than what's required. Doing so can lower MBI lookup success rates.

For more information, see our MBI lookup docs.

Claim edit: Missing subscriber address or demographics

Stedi now rejects 837P professional, 837D dental, and 837I institutional claims when the subscriber address or demographics are missing and the subscriber is the patient.

Subscribers and patients

In healthcare claims, the subscriber is the person who carries the insurance policy. They’re also called the insured or the primary policyholder.

The subscriber may be different from the patient – the person who receives care – or they may be the same person.

In healthcare claims, a person’s demographics are their date of birth and gender.

When the subscriber address and demographics are required

HIPAA-mandated X12 states that the subscriber’s address and demographics are required when the subscriber is the patient. Payers will use this information to verify the patient’s eligibility. If you submit a claim without this information, the payer may reject the claim, which can delay payment to the provider.

This edit – the industry term for an automated validation rule – catches the issue before the claim reaches the payer.

Note: If the subscriber is not the patient, the subscriber’s address and demographics are optional. 

Rejection errors

If you submit a claim that fails the edit using Stedi’s Claim Submission API, you’ll get back an error response in real time. The response includes details in the errors array:

{
  "errors": [
    {
      "code": "33",
      "description": "Missing subscriber address and/or demographics. When the patient is the subscriber (SBR02 = 18), the subscriber address and demographics are required. Correct and resubmit.",
      "followupAction": "Please Correct and Resubmit"
    }
  ]
}

If you submit a claim that fails the edit using SFTP, Stedi will reject the claim with a 277CA claim acknowledgment. The acknowledgment will include a related claim status category code, claim status code, and error message:

STC*A6>173*[DATE]*U*[AMOUNT]********Missing subscriber address and/or demographics. When the patient is the subscriber (SBR02 = 18), the subscriber address and demographics are required. Correct and resubmit.~

Introducing sorting for the List Enrollments API

You can now control how enrollment records are ordered in List Enrollments API responses using the sortBy query parameter.

Previously, List Enrollments API results were always ordered by createdAt in descending order. That remains the default.

With the new sortBy query parameter, you can now also sort by other fields and set a stable fallback when values are the same. For example, you can sort by statusLastUpdatedAt and fall back to id to ensure consistent, deterministic ordering:

https://enrollments.us.stedi.com/2024-09-01/enrollments?sortBy=statusLastUpdatedAt:desc&sortBy=id:asc

How the sorting works

Each sortBy value uses the property:direction format. If you provide multiple sortBy values, results are sorted in the order they appear.

When you provide a single sortBy value, Stedi automatically adds id as a secondary sort in the same direction. For example, if you provide ?sortBy=updatedAt:desc, Stedi automatically adds id:desc to the query to ensure deterministic results.

To see available sortBy properties, check out our API reference documentation.

Introducing warnings for missing member IDs in eligibility checks

You’ll now get a clear warning in eligibility responses when a required member ID is missing.

Why some payers require member IDs

For eligibility checks, payers can only return coverage when the patient information in the check matches exactly one member in the payer system. To enforce this, many payers require that checks include the patient’s member ID.

When the member ID is required but missing, the payer returns a AAA error, such as 72 (Invalid/Missing Subscriber/Insured ID). These errors are generic and don’t specifically indicate the payer requires a member ID.

Stedi’s new missing member ID warning

Stedi’s new warning indicates the payer requires a member ID for patients in eligibility checks, based on Stedi’s curated sources.

The warning is returned in the warnings array, alongside the AAA error, for eligibility responses from the following endpoints:

For example, the following warning indicates the payer requires the patient’s member ID:

{
  "warnings": [
    {
      "code": "request::270::member_id_required",
      "description": "This payer requires the patient's member ID to be included in eligibility requests."
    }
  ],
  "errors": [
    {
      "code": "72",
      "description": "Invalid/Missing Subscriber/Insured ID",
      ...
    }
  ],
  ...
}

The warning is also shown for eligibility responses in the Stedi portal.

Warning for eligibility responses in the Stedi portal

Eligibility check requirements vary by payer. If Stedi doesn't know if a payer requires a member ID for eligibility checks, no warning is returned.

For more tips and details, check out Stedi’s Eligibility troubleshooting docs.

Claim edit: ZIP or postal code required for U.S. and Canada addresses

Stedi now rejects 837P professional, 837D dental, and 837I institutional claims that include a U.S. or Canadian address without a ZIP or postal code.

X12 states that when an address is in the United States or Canada, a ZIP or postal code is required. If it isn’t, the payer may reject the claim, which can delay payment to the provider.

This edit – the industry term for an automated validation rule – catches the issue before the claim reaches the payer.

Rejection errors

If you submit a claim that fails the edit using Stedi’s JSON or X12 Claim Submission API endpoints, you’ll get back an error response in real time. The response includes details in the errors array:

{
  "errors": [
    {
      "code": "33",
      "description": "Missing Postal Code(s). For U.S. addresses, a postal code must also be included. The postal code is missing for the following address fields: Billing Provider. Correct and resubmit.",
      "followupAction": "Please Correct and Resubmit"
    }
  ]
}

If you submit a claim that fails the edit using SFTP, Stedi will reject the claim with a 277CA claim acknowledgment. The acknowledgment will include a related claim status category code, claim status code, entity identifier code, and error message:

STC*A6>500>HK*[DATE]*U*[AMOUNT]********Missing Postal Code(s). For U.S. and Canadian addresses, a postal code must also be included. The postal code is missing for the following address fields: [Subscriber]. Correct and resubmit.~

Addresses outside the U.S. and Canada

If an address is not in the U.S. or Canada, ensure the claim includes the correct country code for the address.

For example, for an 837P professional claim’s billing provider’s address, you can use the billing.address.countryCode field in JSON 837P Professional Claims API endpoint.