Submit professional claims
Use Stedi to send 837P (Professional) claims to payers. You can also check the status of existing claims in real time.
Stedi automatically configures the necessary settings to send test and production claims and receive 277 and 835 responses from payers.
Some payers require enrollment before you can start sending them claims.
Submit claims manually
Manual claim submission can be useful for testing, QA, and debugging your pipeline. You can submit 837P professional claims manually through the Create manual claim page in the Stedi app.
The in-app form is adapted from the National Uniform Claim Committee (NUCC) 1500 Claim Form. As you build the claim, Stedi validates provider NPIs, diagnosis codes, and other key information to reduce payer rejections. You can also review a live preview of the autogenerated JSON payload for the Professional Claims API to understand how the form relates to the request structure.
Submit claims through the API
Call one of the following endpoints to submit 837 professional claims:
- Professional Claims to send requests in JSON
- Professional Claims Raw X12 to send requests in X12 EDI
The endpoint returns a synchronous response from Stedi in JSON format. Later, the payer will respond with a Claim Acknowledgment (277CA).
Headers
When constructing the request, you must include the following information in HTTP headers:
Authorization
: Generate an API key to use for authentication.Content-Type
: Set toapplication/json
.
Enhanced validation
You can optionally set the Stedi-Validation
header to snip
for enhanced validation on your claim submission.
Enhanced validation uses hundreds of additional edits (the industry term for validation rules) to increase claim acceptance rates. These include Strategic National Implementation Process (SNIP) validations. Stedi also automatically fixes common errors and monitors payer rejections to proactively build out new rules.
There is an additional cost per claim submission when you use enhanced validation. Please reach out to support for access and pricing information.
Body
The information you submit for a claim depends on your use case. Refer to the Professional Claims endpoint for a complete list of properties. However, all claims require the following high-level information:
Information | Description |
---|---|
tradingPartnerServiceId | This is the Payer ID. Visit the Payer Network for a complete list. |
tradingPartnerName | This is the payer’s business name, like Cigna or Aetna. |
submitter object | Information about the entity submitting the healthcare claim. This can be either an individual or an organization, such as a doctor, hospital, or insurance company. |
receiver object | Information about the payer, such as an insurance company or government agency. |
subscriber and/or dependent objects | Information about the patient who received the medical services. Note that if a dependent has their own, unique member ID for their health plan, you should submit their information in the subscriber object and omit the dependent object from the request. You can check whether the dependent has a unique member ID by submitting an Eligibility Check to the payer for the dependent. The payer will return the member ID in the dependents.memberId field, if present. |
claimInformation object | Information about the claim, such as the patient control number, claim charge amount, and place of service code. It also includes information about each individual service line included in the claim. |
billing object | Information about the billing provider, such as the NPI, taxonomy code, and organization name. |
Character restrictions
Only use the X12 Basic and Extended character sets in request data. Using characters outside these sets may cause validation and HTTP 400
errors.
In addition, the following characters are reserved for delimiters in the final X12 EDI transaction to the payer: ~
, *
, :
, and ^
. X12 doesn’t support using escape sequences to represent delimiters or special characters. Stedi returns a 400
error if you use these restricted characters improperly.
- JSON endpoint: Don’t include delimiter characters anywhere in your request data.
- Raw X12 endpoint: You can use these characters as delimiters, but not in the body of the request data.
Identify service lines
A claim can contain multiple service lines. Since the payer may accept, reject, or pay a subset of those lines, you can receive an 835 response that references a patientControlNumber
, but only pertains to some of the service lines.
However, the claimInformation.serviceLines.providerControlNumber
serves as a unique identifier for each service line in your claim submission. This value appears in the 277CA and 835 ERA responses as the lineItemControlNumber
, allowing you to correlate these responses to specific service lines from the original claim. If you don’t set the providerControlNumber
for a service line, Stedi uses a random UUID.
Stedi returns service line identifiers in the claimReference.serviceLines
object of the synchronous API response.
Sample request
The following example sends a professional claim.
Test claims
All claims you submit through this endpoint are sent to the payer as production claims unless you explicitly designate them as test data.
To send test claims, set the usageIndicator
property in the test claim body to T
. This allows you to filter for test claims on the Transactions page in the Stedi app.
Note that you will receive a 277 Claim Acknowledgment in response to test claims, allowing you to test your workflow end to end, but you will not receive a test 835 (ERA) response.
Cancel or resubmit claims
You may need to resubmit claims for several reasons, including changes to the patient’s coverage, errors in the original claim’s information, or appealing a denied claim. You may also need to cancel duplicate claims or claims that were submitted in error.
We recommend the following for resubmitting or canceling claims:
- Correct or replace claims: Set
claimInformation.claimFrequencyCode
to7
- Replacement of Prior Claim. We also recommend setting a new, uniquepatientControlNumber
. The payer includes this value in their 835 ERA response, allowing you to easily correlate that response with your resubmission. - Cancel claims : Set
claimInformation.claimFrequencyCode
to8
- Void/Cancel of Prior Claim.
In both cases, identify the original claim by setting claimInformation.claimSupplementalInformation.claimControlNumber
to the Payer Claim Control Number (sometimes called the ICN). This is different from the patientControlNumber
you sent in the claim and the Stedi-generated controlNumber
returned in the API response. You can retrieve the Payer Claim Control Number from one of the payer’s 277 responses under the key transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.claimStatus.tradingPartnerClaimNumber
.
View submitted claims
You can view the files that Stedi sends and receives in the Files page of the Stedi app.
On the Transactions page, you can review and filter claims by Usage - production or test. Click any claim submission to review its details, including the full request and response payload, processing events, and a link to download the auto-generated 1500 Claim Form PDF.
1500 claim form PDF
Stedi automatically generates a PDF 1500 claim form for each professional claim you submit.
You can manually download the form on the transaction details page for the claim in the Stedi app. You can also retrieve the PDF through the NUCC 1500 Claim Form PDF endpoint. The endpoint returns a base64 encoded string of the NUCC 1500 Claim Form PDF.
You should be aware of the following behavior and recommendations if you plan to send the generated PDFs to payers or retain them for your records:
The PDF may truncate claim data.
The maximum length for many fields in the 1500 claim form is less than the maximum length for the corresponding properties in the claim request.
Recommendation: Ensure that your claim data is within the maximum length for claim form fields. We especially recommend using USPS abbreviations to avoid truncated addresses in the generated PDF.
The PDF may omit the second line of some addresses.
Some NUCC 1500 items contain address fields that can only be mapped to a single address line. So if you include the address2
JSON property (X12 EDI N302
) in your claim submission, that information may not appear in the PDF.
Recommendation: Put all street address line data into the address1
JSON property (X12 EDI N301
), ensuring that you adhere to the claim form length constraints.
The PDF won’t populate Item 7 when the patient is a dependent.
Stedi validates the claim data you submit to the API and uses it to generate a compliant X12 EDI transaction to send to the payer. The PDF is generated from the final X12 EDI transaction.
The X12 EDI standard specifies that claims should only contain the insured’s address when the patient is the subscriber. To maintain compliance, Stedi doesn’t include the insured’s address information in the generated X12 EDI transaction when the patient is a dependent, even if you provided the subscriber’s address in the original API request. Since this address information isn’t present in final X12 EDI claim, it’s also not added to Item 7 (Insured’s Address) in the generated PDF.
Was this page helpful?