Get and correlate acknowledgments and ERAs
After you submit a professional, dental, or institutional claim, you may receive asynchronous 277 Claim Acknowledgment (277CA) and Electronic Remittance Advice (835 ERA) responses.
If you submitted the claims through the API or UI, there are two steps to retrieve claim responses from Stedi:
- Discover responses by polling for processed transactions or listening for event-driven webhooks.
- Call Stedi’s APIs to retrieve processed responses from Stedi.
Once you have the responses, you can correlate them with the original claim and specific service lines.
If you’re using a Stedi SFTP connection, you don’t need to poll or call Stedi’s APIs to retrieve responses. Instead, you can download them from the from-stedi
directory.
Response types
You can receive two types of responses after you submit a professional, institutional, or dental claim.
Claim Acknowledgment (277CA)
The 277CA indicates whether the claim was accepted or rejected and (if relevant) the reasons for rejection. Though it can contain claim status information, the 277CA is different from the synchronous 277 Claim Status response you receive after submitting a real-time claim status request.
You may receive multiple separate 277CAs for each claim you submit.
- You’ll receive the first 277CA from Stedi within about 30 minutes of submitting the claim. This 277 may contain rejection message(s) and warnings, if applicable.
- You may receive additional 277CAs from intermediary clearinghouses.
- You’ll receive one or more 277CAs from the payer. Typically, there is one 277CA that indicates receipt of the claim and a second 277CA that contains summary counts of transactions received, information about accepted transactions, and details for rejected transactions.
You can determine whether a 277CA is from a clearinghouse or the payer from the transactions.payers
array in the report. The organizationName
property contains the name of the sender (for example, CIGNA
) and the identityIdentifierCodeValue
contains either Clearinghouse
or Payer
.
This information is also available at the top of the 277CA’s transaction details page in the Stedi portal.
Electronic Remittance Advice (835 ERA)
The 835 ERA, also known as a claim payment, contains details about payments for specific services and explanations for any adjustments or denials.
Processing 835 ERAs almost always requires enrollment with the payer.
277CA claim status details
The 277CA response contains two main objects for claim status information:
-
informationClaimStatuses
: This is the primary section to examine for detailed acceptance/rejection status of a claim. It contains information that would be useful to the submitter of the claim regarding acceptance/rejection, including:- Payer-specific rejection reasons
- Claim charge amount details
- The
patientControlNumber
from the claim (returned aspatientAccountNumber
) - All granular claim processing details
-
providerClaimStatuses
: This section contains more generic information that would be useful to the provider regarding rejection/acceptance. It typically only includes basic status information like “accepted for processing” or “denied” without the granular information ininformationClaimStatuses
.
Discover processed responses
You can discover processed responses by either listening for webhooks or polling for transactions.
Listen for webhooks
Instead of polling for transactions, you can set up webhooks that automatically send events for processed 277CAs and 835 ERAs to your endpoint. You can either create a single webhook for all inbound transactions or create a separate webhook for each transaction type.
These webhooks are triggered by the processing events Stedi emits after it successfully receives and processes a response from the payer or intermediary clearinghouse.
As these events are emitted, you can:
- Determine the transaction type from the
x12.transactionSetIdentifier
property:277
(Claim Acknowledgment) or835
(ERA). - Use either the
transactionId
to retrieve the transaction in JSON format or thefileExecutionId
to retrieve the transaction in X12 EDI format. Visit Retrieve responses from Stedi for more information.
If your webhook doesn’t respond within 5 seconds, Stedi marks that as a failure and then automatically retries up to 5 times. This can result in duplicate deliveries, so we strongly recommend implementing ways to manage duplicates delivered through webhooks.
Poll for transactions
Call the Poll Transactions endpoint to return a list of transactions in your Stedi account.
You must include the following information in the request:
- Your Stedi API key as the
Authorization
header. - Either the
startDateTime
orpageToken
query parameters. To retrieve a list of transactions after a specific date, usestartDateTime
. To retrieve the next page of transactions, usepageToken
(you can find this value in thenextPageToken
field in the response).
The following example shows an API call to retrieve transactions after a specific date:
Filter for 277CA and 835 ERA transactions
The response includes all transactions that have been sent or received, including all 837 claims you have submitted and all 277CA and 835 ERA responses you have received from payers. You must filter for transactions that match the following criteria:
direction
:INBOUND
- This indicates that the transaction came from the payer or intermediary clearinghouse.x12.transactionSetIdentifier
:277
or835
The following example shows a response containing a processed 277CA transaction:
For each matching transaction, extract the x12.transactionSetIdentifier
type and either the transactionId
or the fileExecutionId
to use when mapping the data. You’ll use the transactionId
to retrieve the transaction in JSON format or the fileExecutionId
to retrieve the transaction in X12 EDI format. Visit Retrieve responses from Stedi for more information.
Stedi does not allow you to delete transactions, so make sure you track which transaction and/or file execution IDs you’ve already processed.
Retrieve responses from Stedi
You can retrieve the 277CA and 835 ERA responses from Stedi in either JSON format or X12 EDI format.
JSON format
Follow these steps to retrieve responses in JSON format:
- Either set up webhooks to listen for transaction processed events or poll for transactions. This step allows you to discover when a new 277CA or 835 ERA is ready for retrieval.
- Retrieve the transaction ID from the configured webhook or the Poll Transactions response. This value is available in the
transactionId
property. - Call the following endpoints to retrieve 277CA and 835 ERA responses from Stedi. In each request, you must include your Stedi API key in the
Authorization
header and thetransactionId
query parameter containing the ID of the transaction you want to retrieve.- Get 277CA Report: Retrieve 277CA responses
- Get 835 ERA Report: Retrieve 835 ERA responses
X12 EDI format
Follow these steps to retrieve the responses in X12 EDI format:
- Either set up webhooks to listen for transaction processed events or poll for transactions. This step allows you to discover when a new 277CA or 835 ERA is ready for retrieval.
- Retrieve the file execution ID from the configured webhook or the Poll Transactions response. This value is available in the
fileExecutionId
property. - Call the Get Execution Input endpoint to retrieve the 277CA or 835 ERA in X12 EDI format. In the request, you must include your Stedi API key in the
Authorization
header and theexecutionId
query parameter containing the file execution ID for the response you want to retrieve.
Correlate responses with original claim
You can use the following identifiers from the original claim to correlate the 277CA and 835 ERA responses.
Entire claim
Use the claimInformation.patientControlNumber
from the original claim.
- In the 277CA response, this number is returned as the
transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.claimStatus.patientAccountNumber
. - In the 835 response, this number is returned as the
transactions.detailInfo.paymentInfo.claimPaymentInfo.patientControlNumber
.
Specific service lines
The professional and institutional claim types use different names for the same identifier:
- Professional: Use
claimInformation.serviceLines.providerControlNumber
from the original claim, if provided. - Institutional: Use
claimInformation.serviceLines.lineItemControlNumber
from the original claim, if provided.
Location in responses:
-
In the 277CA response, this number is sometimes returned as the
transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.serviceLines.lineItemControlNumber
.This is because a 277CA only contains a
serviceLines
object (which contains thelineItemControlNumber
) if it was rejected because of issues with the information provided for the service line. The following snippet shows aserviceLines
object for a rejected claim containing thelineItemControlNumber
property.
- In the 835 response, this number is always returned as the
transactions.detailInfo.paymentInfo.serviceLines.lineItemControlNumber
. The following snippet shows aserviceLines
object from an 835 ERA response that contains thelineItemControlNumber
.
Crossover claims
A claim is called a crossover claim when it is adjudicated by one payer and then forwarded to another payer for additional processing. This is common in coordination of benefits (COB) situations, where a patient has multiple insurance policies. For example, a patient may have coverage through both Medicare and private supplemental insurance. Once Medicare adjudicates the claim, it “crosses over” electronically to the secondary payer. This process helps reduce paperwork for providers and ensures the patient is billed correctly for any remaining balance.
You’ll know a claim has been sent to a crossover payer when you receive an ERA with the transactions.detailInfo.paymentInfo.claimPaymentInfo.claimStatusCode
property set to either 19
, 20
, or 21
. The ERA should also include information about the crossover payer in the transactions.detailInfo.paymentInfo.crossoverClaim
object.
Sometimes, the different payers are separate legal entities within the same parent corporation. If not, you’ll need to enroll the provider separately with the crossover payer before they can process the claim. The payer may pause claim processing until the enrollment is complete or reject the claim. If the claim is rejected, you’ll need to manually resubmit it once the enrollment is live. Stedi support can help you determine when you need to enroll with a crossover payer and determine the status of crossover claims while the enrollment is in progress.
You may receive an additional 835 ERA and/or 277CAs from the crossover payer. You may also be able to use the information from any 277CAs to submit real-time claim status requests for the crossover claim.
ERA code lists
You may need to refer to the following code lists while evaluating the 835 ERA. Note that this page doesn’t list all possible code lists, only those that are too long to properly represent within the API documentation.
Claim Adjustment Group Code
This code is returned in the transactions.detailInfo.paymentInfo.claimAdjustments.claimAdjustmentGroupCode
property. It categorizes the adjustment reason codes returned in the claimAdjustments
object.
Claim Filing Indicator Code
This code is returned in the transactions.detailInfo.paymentInfo.claimPaymentInfo.claimFilingIndicatorCode
property. It identifies the type of claim submitted.
Claim Status Code
This code is returned in the transactions.detailInfo.paymentInfo.claimPaymentInfo.claimStatusCode
property. It identifies the status of an entire claim as assigned by the payer, claim review organization, or repricing organization.
Codes 19
, 20
, and 21
indicate that the claim is a crossover claim that has been forwarded to an additional payer for processing. This practice is common in coordination of benefits (COB) scenarios. You may need to enroll the provider with the additional payer before they can process the claim.
Credit or Debit Flag Code
This code is returned in the transactions.financialInformation.creditOrDebitFlagCode
property. It indicates whether the payment is a credit or a debit.
C
- Credit | The payer uses this code to indicate a credit to the provider’s account and a debit to the payer’s account, initiated by the payer. In the case of an EFT, no additional action is required of the provider. The payer also uses this code when a check is issued for the payment.D
- Debit | The payer uses this code to indicate a debit to the payer’s account and a credit to the provider’s account, initiated by the provider at the instruction of the payer.
Payment Method Code
This code is returned in the transactions.financialInformation.paymentMethodCode
property. It identifies the payment format. Note that the remaining properties in the financialInformation
object contain additional requirements and information about the payment.
Transaction Handling Code
This code is returned in the transactions.financialInformation.transactionHandlingCode
property. It indicates the actions taken by both the sender and the receiver.
Was this page helpful?