Changelog

Introducing longer retry windows for batch CSV eligibility checks

You can now control how long Stedi retries checks that failed due to payer connectivity issues when submitting batch checks using a CSV upload in the Stedi portal.

When creating a new CSV batch from the portal’s Batch eligibility checks page, click Advance options to set the Retry duration.

Retry windows can be set from 8 to 24 hours. The default is 8 hours.

For details on how retries for batch eligibility checks work, see our Batch eligibility check docs.

Claim edit: Invalid patient control number

Stedi now rejects 837P professional, 837D dental, and 837I institutional claims that contain a patient control number (PCN) longer than 20 characters.

What is a patient control number?

A patient control number (PCN) is a tracking ID for a claim.

You create a PCN when you submit a claim. The payer sends the ID back in follow-up transactions: claim acknowledgments, Electronic Remittance Advice (ERAs), and claim status checks.

How the edit works

HIPAA-mandated X12 states that PCNs can be up to 20 characters. If you submit a claim with a PCN longer than 20 characters, 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": "Invalid Patient Control Number. The submitted patient control number, 123456789012345678901234567890, exceeds the maximum allowed length of 20 characters. 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>21*[DATE]*U*[AMOUNT]********Invalid Patient Control Number. The submitted patient control number, 123456789012345678901234567890, exceeds the maximum allowed length of 20 characters. Correct and resubmit.~

Resolution tips

Follow these best practices when creating PCNs:

  • Stick to 17 characters.
    X12 states patient control numbers can be up to 20 characters. But some payers cut off values longer than 17 characters in ERAs and claim acknowledgments.

  • Use a unique patient control number for each claim.
    If multiple claims have the same patient control number, you may match the claim to the wrong ERA or acknowledgment.

  • Use alphanumeric characters only.
    Patient control numbers can contain both letters and numbers. Avoid special characters. Many payers don’t handle them properly.

  • Use random strings.
    Predictable formats, like {patientInitials}-{DOS}, can create duplicates.

Our recommendation: Use nanoid or a similar library to create a strong, unique 17-character patient control number for each claim.

Filter eligibility checks by NPI in the Stedi portal

You can now filter eligibility checks – grouped as eligibility searches – by NPI on the Eligibility searches page in the Stedi portal.

A National Provider Identifier (NPI) is a unique 10-digit ID assigned to every U.S. healthcare provider by the Centers for Medicare & Medicaid Services (CMS). This filter lets you view eligibility checks associated with a specific provider.

You can now filter eligibility checks – grouped as eligibility searches – by NPI

Introducing API endpoints for enrollment documents

You can now programmatically upload, download, and delete documents for transaction enrollment requests using Stedi’s new Transaction Enrollment API endpoints:

Only PDF documents are supported.

What is transaction enrollment?

Transaction enrollment is the process of registering a provider to exchange a specific type of healthcare transaction with a payer.

Transaction enrollment is always required for Electronic Remittance Advice (ERAs). For other transaction types, like eligibility checks and claim submissions, enrollment requirements vary by payer.

Stedi offers fully managed, API-based transaction enrollment. You can submit and track enrollment requests using Stedi’s Transaction Enrollment API or the Stedi portal, which also supports bulk CSV imports.

When possible, Stedi handles all enrollment paperwork for you and your provider. When we can’t, we give you updates and clear next steps for what’s needed next.

What are enrollment documents?

Enrollment requirements vary by payer. Some payers require additional documents, such as:

  • A form with a wet signature

  • A practice W-9

  • A voided check

In these cases, Stedi updates the enrollment status to PROVIDER_ACTION_REQUIRED and notifies the submitter by email. You can then view next steps and upload the required documents through the Stedi portal or API.

Upload an enrollment document

Previously, you could only upload enrollment documents using the Stedi portal. Now, you can also upload them programmatically using the Upload Enrollment Document endpoint:

  1. Call the Upload Enrollment Document endpoint with the enrollment ID for the enrollment request.

    The enrollment ID is returned in the responses for the Create Enrollment and List Enrollments endpoints. It's also listed at the top of the enrollment's details page in the Stedi portal.

    Include the PDF’s file name, including the .pdf file extension, in the request body’s name field:

    curl --request POST \
      --url "https://enrollments.us.stedi.com/2024-09-01/enrollments/{enrollmentId}/documents" \
      --header "Authorization: <api_key>" \
      --header "Content-Type: application/json" \
      --data '{
        "name": "provider-license.pdf"
      }'

    The endpoint returns a pre-signed URL for uploading the PDF. The URL expires in 24 hours.

    {
      "enrollmentId": "db6675c5-7bg7-4af9-8c68-a54a336d2911",
      "uploadUrl": "https://s3.amazonaws.com/enrollment-documents/db6675c5-7bg7-4af9-8c68-a54a336d2911/provider-license.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=...",
      "documentId": "doc-123e4567-e89b-12d3-a456-426614174000"
    }
  2. Make a PUT request to the pre-signed URL to upload the PDF. Set the Content-Type HTTP request header to application/pdf.

    curl --request PUT \
    --url "<uploadUrl>" \
    --header "Content-Type: application/pdf" \
    --upload-file /path/to/provider-license.pdf

    Uploaded documents are listed on the enrollment's details page in the Stedi portal.

    Uploaded documents in the Stedi portal

Download and delete enrollment documents

In addition to uploading, you can also download and delete previously uploaded documents using the respective Download Enrollment Document and Delete Enrollment Document endpoints.

Get started

Stedi’s Transaction Enrollment API, including the new enrollment document endpoints, is available on Stedi production accounts.

For complete details, check out our API reference documentation.

Stedi now blocks claim attachments for unsupported payers

If you try to submit a claim with electronic attachments to a payer who doesn't support them, Stedi now blocks the request before it reaches the payer. This affects 837P professional, 837D dental, and 837I institutional claims.

Electronic claim attachments let you send supporting documents – like X-rays and medical records – alongside claims in Stedi. Stedi lets you submit claims and claim attachments electronically using JSON API, X12 API, or SFTP.

However, not every payer supports electronic claim attachments. Previously, if you submitted an attachment to a payer who didn’t support them, the payer would reject the attachment as an error downstream. This could delay payment for the provider.

Now, Stedi checks payer support upfront and catches the issue before the claim reaches the payer. That means faster turnaround times for errors – and faster payments for providers.

Errors

If you submit a claim with attachments to an unsupported payer using Stedi's JSON or X12 Claim Submission APIs, you'll receive an error response with a 400 Bad Request HTTP status code and an error message:

{
  "code": "TRANSACTION_TYPE_NOT_SUPPORTED",
  "message": "Payer 62308 (Stedi Payer ID HGJLR) is not configured for Unsolicited Claim Attachment (275). Please check our published payer list or contact Stedi support to resolve."
}

If you submit a claim with attachments to an unsupported payer using SFTP, Stedi will reject the claim with a 277CA claim acknowledgment:

STC*A7:N21*[DATE]*PR*[AMOUNT]********Payer 62308 (Stedi Payer ID HGJLR) is not configured for Unsolicited Claim Attachment (275). Please check our published payer list or contact Stedi support to resolve.~

Check payer support

To avoid errors, check whether a payer supports electronic claim attachments using the Stedi Payer Network site or Stedi’s Payers API.

For example, in a Search Payers API response:

{
  "items": [
    {
      "stediId": "HGJLR",
      "displayName": "Cigna",
      "primaryPayerId": "62308",
      "transactionSupport": {
        "unsolicitedClaimAttachment": "NOT_SUPPORTED", // Electronic claim attachments not supported
        ...
      },
      ...
    },
    ...
  ]
}

Claim edit: A sequela code can’t be the primary ICD-10-CM diagnosis code

Stedi now rejects 837P professional and 837I institutional claims that list a sequela code as the only or primary ICD-10-CM diagnosis code.

ICD-10-CM diagnosis codes

In healthcare claims, diagnosis codes describe what’s wrong with the patient. HIPAA requires that professional and institutional claims only use valid, billable ICD-10-CM codes as diagnosis codes. For example, M54.50 is the ICD-10-CM code for “Low back pain, unspecified.”

A claim can include multiple diagnosis codes, listed in order of importance. The primary diagnosis code is in position 1, the next is in position 2, and so on.

Sequela codes

A sequela code is an ICD-10-CM diagnosis code used to describe a condition that remains after an earlier injury or illness has healed.

For example, M48.40XS (Fatigue fracture of vertebra, site unspecified, sequela of fracture) is a sequela code. Sequela codes always have S as the seventh character.

How the edit works

ICD-10-CM guidelines disallow a sequela code from being used as the primary or only diagnosis on professional or institutional claims. If it is, the payer may reject the claim, which 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.

A sequela code can still be billed, as it provides additional context for the payer on why the patient has the current conditions. But those current conditions must be billed as the primary diagnosis, which describes the primary reason for service.

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 error details in the errors array:

{
  "errors": [
    {
      "code": "33",
      "description": "Invalid use of Sequela Diagnosis code. The submitted diagnosis code, M48.40XS, is a sequela diagnosis (7th character \"S\") and cannot be used as the primary or only diagnosis on a claim. 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>255*[DATE]*U*[AMOUNT]********Invalid use of Sequela Diagnosis code. The submitted diagnosis code, M4840XS, is a sequela diagnosis (7th character \"S\") and cannot be used as the primary or only diagnosis on a claim. Correct and resubmit.~

Resolution tip

In most cases, you can pass this edit by reordering the diagnosis codes so the current condition comes first and the sequela code(s) are listed afterward.

For example, M54.50 (Low back pain, unspecified) should be listed before the sequela, M48.40XS (Fatigue fracture of vertebra, site unspecified, sequela of fracture). Sequela codes should always accompany a preceding diagnosis code.

Claim edit: Missing billing provider tax ID

Stedi now rejects 837P professional, 837D dental, and 837I institutional claims that don't contain a tax ID for the billing provider.

Billing provider tax IDs

The billing provider is the person or organization, like a clinic or group practice, that will receive payment (if any) for the claim from the payer.

X12 standards require a tax ID for the billing provider on every professional, dental, and institutional claim. The tax ID is either an Employer Identification Number (EIN) or, for an individual provider, a Social Security Number (SSN).

Billing provider tax ID

Claim typeJSON API fieldX12 element
837P professionalbilling.employerId or billing.ssnREF02 of Loop 2010AA (Billing Provider Name), where REF01 = "EI" (Employer's Identification Number) or "SY" (Social Security Number)
837D dentalbilling.employerId or billing.ssnREF02 of Loop 2010AA (Billing Provider Name), where REF01 = "EI" (Employer's Identification Number) or "SY" (Social Security Number)
837I institutionalbilling.employerIdREF02 of Loop 2010AA (Billing Provider Name), where REF01 = "EI" (Employer's Identification Number)

How the edit works

If you submit a claim without a tax ID for the billing provider, the payer may reject the claim.

This edit catches the issue before the claim reaches the payer. It prevents payer rejections, which take longer to resolve and delay payment for the provider.

Rejection errors

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

{
  "errors": [
    {
      "code": "33",
      "description": "Missing Billing Provider Tax Identification Number (TIN). The Tax Identification is a required identifier for the billing provider. Correct and resubmit.",
      "followupAction": "Please Correct and Resubmit"
    }
  ]
}

If you submit a claim using SFTP and the claim fails the edit, 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>128*[DATE]*U*[AMOUNT]********Missing Billing Provider Tax Identification Number (TIN). The Tax Identification is a required identifier for the billing provider. Correct and resubmit.~

Related claim edits

Stedi has another edit for claims where the billing provider is missing an identifier other than the tax ID. See Claim edit: Missing billing provider identifier.

New claim edits: Invalid subscriber individual relationship codes

Stedi now rejects 837P professional, 837D dental, and 837I institutional claims that contain an invalid individual relationship code for the subscriber.

Individual relationship codes

In a healthcare claim, the subscriber is the person who holds the insurance policy. The subscriber is also called the policyholder or primary cardholder.

The subscriber is not always the patient. For example, a dependent, such as a spouse or child, may receive care through an employee’s insurance. In that case, the employee is the subscriber, even though they’re not receiving care.

Claims indicate the relationship between the subscriber and the patient using an individual relationship code in the subscriber’s section. This code tells the payer whether the patient is the subscriber themselves or a dependent covered under the same plan.

How the edits work

In a claim, if the subscriber’s individual relationship code is 18 (Self), it means the subscriber is the patient. In these cases, the claim must not include information for a dependent. Similarly, if a claim does not include a dependent’s information, the subscriber’s individual relationship code must be 18.

If a claim mixes the subscriber’s individual relationship code and dependent information incorrectly, payers 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.

Where to find the subscriber’s individual relationship code

The subscriber’s individual relationship code must not be 18

If you submit a claim with a dependent’s information and the subscriber’s individual relationship code is set to 18, Stedi’s JSON or X12 Claim Submission API endpoints return an error response in real time. The response includes details in the errors array:

{
  "errors": [
    {
      "code": "33",
      "description": "Invalid Subscriber Individual Relationship Code. Subscriber's individual relationship code cannot be '18' (Self) when subscriber is not the patient (as indicated by the dependent loop). 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:N156*[DATE]*IL*[AMOUNT]********Invalid Subscriber Individual Relationship Code. Subscriber's individual relationship code cannot be '18' (Self) when subscriber is not the patient (as indicated by the dependent loop). Correct and resubmit.~

The subscriber’s individual relationship code must be 18

If you submit a claim without a dependent’s information and the subscriber’s individual relationship code is missing or not set to 18, Stedi’s JSON or X12 Claim Submission API endpoints return an error response in real time. The response includes details in the errors array:

{
  "errors": [
    {
      "code": "33",
      "description": "Missing Subscriber Individual Relationship Code. Subscriber's individual relationship code must be '18' (Self) when subscriber is the patient (as indicated by the absence of dependent information). 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>156*[DATE]*IL*[AMOUNT]********Missing Subscriber Individual Relationship Code. Subscriber's individual relationship code must be '18' (Self) when subscriber is the patient (as indicated by the absence of dependent information). Correct and resubmit.~

Request to join existing accounts

Now, when you sign up for Stedi, we check if your email domain is already tied to an existing account. If it is, you can request to join that account instead of creating a new one.

For example, if you sign up with john.doe@example.com and your company already has a Stedi account for example.com, you’ll see the option to request to join it. This helps avoid duplicate Stedi accounts for the same organization.

Account already exists