How to track claims
Sep 11, 2025
Guide
Big takeaway: Use patient control numbers to track a claim from submission to remit.
A patient control number is a tracking ID for a claim.
You create a patient control number 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.
This guide gives you best practices for creating patient control numbers and where to find them in each transaction.
Patient control number locations
This table shows the location of patient control numbers across claim-related transactions in Stedi’s JSON API requests and responses.
837P, 837I, 837D claim submissions | 277CA claim acknowledgments | 835 ERAs | 276/277 claim status checks | |
JSON API endpoint | Professional Claims JSON | |||
Location of the patient control number | Request: | Response: | Response: |
Best practices for creating patient control numbers
Here's what we found works best in practice:
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.
Claim submission
You set the patient control number when you submit the claim.
For JSON-based claims submission endpoints, pass the patient control number in the patientControlNumber
field. For example, using the Professional Claims (837P) JSON endpoint:
Claim acknowledgments
A 277CA claim acknowledgment indicates whether the claim was accepted or rejected. Payers send claim acknowledgments to the clearinghouse that submitted the claim.
Listen for claim acknowledgments
Use a webhook or the Poll Transactions endpoint to listen for incoming 277 transactions. When a claim acknowledgment arrives, use the transaction ID to fetch the acknowledgment using Stedi’s Claims acknowledgment endpoint.
Retrieve claim acknowledgments
The claim’s claimStatus.patientAccountNumber
and claimStatus.referencedTransactionTraceNumber
fields contain the claim’s patient control number. You can use either of these fields in your application logic.
ERAs
An 835 ERA contains details about payments for a claim, including explanations for any adjustments or denials.
ERAs require transaction enrollment
Payers send ERAs to the provider's designated clearinghouse. The provider designates this clearinghouse through transaction enrollment. Providers can receive ERAs at one clearinghouse per payer.
Listen for ERAs
Use a webhook or the Poll Transactions endpoint to listen for incoming 835 transactions. When an ERA arrives, you can use the transaction ID to fetch the ERA using Stedi’s 835 ERA endpoint.
Retrieve ERAs
The endpoint’s response contains the patient control number in the claimPaymentInfo.patientControlNumber
field.
Claim status checks
Unlike claim acknowledgments or ERAs, you run 276/277 claim status checks in real time.
Claim status requests
The Real-Time Claim Status JSON endpoint doesn’t accept a patient control number as a request parameter. Instead, you pass in information for the payer, provider, patient, and date of service. For detailed guidance, see our recommended base JSON request.
Claim status responses
If the payer has multiple claims on file that match the information you provided, the response may include multiple claims. Each claim’s claimStatus.patientAccountNumber
field contains the claim’s patient control number.
Other tracking IDs
Tracking service line items
This guide covers tracking at the claims level. However, you can also track service line items from a claim in claim acknowledgments and ERAs. For details, check our docs:
Payer claim control numbers
Don’t use payer claim control numbers for tracking.
Payers use payer claim control numbers to internally track claims. You can use them when talking to a payer, but they can’t easily be matched to a claim submission.
Payer claim control numbers are returned in the following fields:
claimStatus.tradingPartnerClaimNumber
of claim acknowledgment responsesclaimPaymentInfo.payerClaimControlNumber
of ERA responses
X12 control numbers
If you’re using Stedi’s JSON APIs, you can safely ignore X12 control numbers.
X12 control numbers are used by Stedi and payers for general EDI file processing. If you’re using our JSON APIs, Stedi manages them for you. They’re not useful for tracking claims or individual transactions.
Process claims with Stedi
Stedi’s JSON Claims APIs are available on all paid Stedi developer plans.
To try it out, request a free trial. We get most teams up and running in less than a day.
Share
Automate healthcare transactions with developer-friendly APIs that support thousands of payers. Contact us to learn more and speak to the team.