Introducing the Claims Lifecycle API, Stedi's headless RCM engine
You can now use Stedi's Claims Lifecycle API endpoints to retrieve the same claim records that power the claims view in the Stedi portal. The endpoints return the claim's status, submission date, charge amounts, paid amounts, and full history, providing a powerful headless RCM engine that can drive external applications.
| Endpoint | What it does |
|---|---|
| List Claims | Returns a paginated list of claim records, newest first. Filter by status, patient control number, or submission time. |
| Retrieve Claim | Returns a single claim record for a claim ID. |
| Retrieve Claim Timeline | Returns a claim's full history: submissions, 277CA claim acknowledgments, and claim payment information from Electronic Remittance Advice (ERAs). |
Previously, the Stedi portal's claims view was the only place to see a claim's full lifecycle. Through the API, you received each response on its own – a 277CA claim acknowledgment here, an ERA there. You had to match each response back to the original claim, usually on the patient control number (PCN).
Now Stedi does the matching and returns the result. The new endpoints serve the same claim data that powers the claims view, so your dashboard can show what the portal shows.
Watch the 2026 Stedi Keynote announcement:
Claim records
A claim record holds summary information about a claim, including its current status. You can retrieve claim records using the List Claims or Retrieve Claim API endpoints.
A Retrieve Claim API response contains a single claim record:
{
"id": "clm_01K6XFP3TZ8RA9X84963NMW40N", // Stedi's claim ID
"patientControlNumber": "123456",
"patientName": { "firstName": "John", "lastName": "Doe" },
"type": "PROFESSIONAL",
"stediPayerId": "ABCDE",
"datesOfService": { "start": "2026-01-05" },
"submittedAt": "2026-01-16T10:00:00Z", // Time Stedi processed the most recent submission
"status": "PROCESSED",
"statusReportedBy": "PAYER", // PAYER or CLEARINGHOUSE
"totalClaimChargeAmount": "832.00",
"totalClaimPaidAmount": "200.00" // Sum of payments matched to the claim from ERAs. Includes reversals (negative amounts)
}
Claim IDs
Each claim record includes a claim ID. The ID stays the same for the life of the claim. A resubmission updates the record, but doesn't change the claim ID. One claim ID tracks the claim across every submission.
Where to get a claim ID
The Retrieve Claim and Retrieve Claim Timeline API endpoints both take a claim ID. You can get one from:
- The
items.idproperty in a List Claims API response. - The
claimIdproperty in a CMS-1500 Create Professional Claim Submission API response. Other claim submission endpoints don't return this property. - A claim's details page in the claims view.
Claim status
The claim record's status field uses the same claim processing statuses as the portal:
SUBMITTED– You submitted the claim to Stedi. Stedi hasn't received a 277CA claim acknowledgment from the payer for the claim submission yet.RECEIVED– Stedi or the payer acknowledged receipt of the claim. This doesn't mean the payer accepted the claim for adjudication.ACCEPTED– The payer accepted the claim into its adjudication system. The payer is adjudicating the claim now.REJECTED– Stedi or the payer rejected the claim before adjudication started. This can happen after the payer acknowledges receipt.PROCESSED– The payer adjudicated the claim. ChecktotalClaimPaidAmountto see how much the payer paid.DENIED– The payer denied the claim.UNKNOWN– Stedi can't determine a single status for the claim. This usually happens when the payer's responses are mixed or incomplete.
Filters and pagination
You can use the List Claims API endpoint to filter a list of claim records by:
status– Filter for one or more claim processing statuses. Repeat the parameter to filter for multiple statuses.patientControlNumbers– Filter for up to 20 patient control numbers (PCNs).submittedAfterandsubmittedBefore– Filter for a submission time range.
For example, this request returns denied claims submitted since January 1:
curl --request GET \
--url "https://claims.us.stedi.com/2025-03-07/claims?status=DENIED&submittedAfter=2026-01-01T00:00:00Z" \
--header 'Authorization: <api-key>'
You can page through responses using token-based pagination. Responses include a nextPageToken when more results are available. Pass that token as pageToken to get the next page.
For example, this request returns the next page of 50 claim records:
curl --request GET \
--url "https://claims.us.stedi.com/2025-03-07/claims?pageSize=50&pageToken=eyJsYXN0SWQiOiIwMUs2WEZQMyJ9" \
--header 'Authorization: <api-key>'
The pageSize parameter defaults to 100 claim records, up to a maximum of 500.
Claim timeline
The Retrieve Claim Timeline API endpoint returns one entry per event in the claim's history, newest first. Each entry holds exactly one property, and the property name tells you the entry type:
professionalClaimSubmission,institutionalClaimSubmission, ordentalClaimSubmission– A submission or resubmission.claimAcknowledgment– A 277CA claim acknowledgment from Stedi or the payer.claimPaymentInformation– A claim payment information record from an ERA.
{
"items": [
{
"claimPaymentInformation": {
"id": "clp_01K6XFP3TZ8RA9X84963NMW43R",
"statusCode": "PROCESSED_AS_PRIMARY",
"totalClaimChargeAmount": "250.00",
"claimPaymentAmount": "200.00",
"patientResponsibilityAmount": "50.00",
"checkOrEftTraceNumber": "TRN123456789",
"processedAt": "2026-01-16T10:00:00Z"
}
},
{
"claimAcknowledgment": {
"id": "ack_01K6XFP3TZ8RA9X84963NMW42Q",
"status": "ACCEPTED",
"reportedBy": "PAYER",
"sourceName": "ACME INSURANCE",
"processedAt": "2026-01-08T09:30:00Z"
}
},
{
"professionalClaimSubmission": {
"id": "sbm_01K6XFP3TZ8RA9X84963NMW41P",
"patientControlNumber": "123456",
"totalClaimChargeAmount": "250.00",
"processedAt": "2026-01-07T15:12:45Z"
}
}
],
"nextPageToken": "eyJsYXN0SWQiOiIwMUs2WEZQMyJ9"
}
A resubmitted claim carries every attempt on one timeline, along with the acknowledgments and payments tied to each attempt.
SDK support
The Stedi TypeScript and Python SDKs include operations that cover the three Claims Lifecycle API endpoints. The SDKs are available from npm and PyPI.
Availability and pricing
The Claims Lifecycle API endpoints are available on all Stedi production accounts. Claim retrieval is free.
Get started
To get started with Stedi, sign up for a free sandbox account. It takes less than two minutes. No credit card is required.
When you're ready to submit real claims, upgrade to production on our pay-as-you-go plan. There are no monthly minimums or setup fees. You only pay for the transactions you use.