ERAs
List ERAs
GET/api/v1/eras
The remittances (835) the payers sent to your organization in the key's mode, newest first, as summaries (read one for its claims and lines). Filter by state, payer or payment date. In test mode the sandbox sends one for a claim with member ID CH-PAID-ERA (paid in part) or CH-DENIED (denied), or to the test payer CHTEST (paid in full), 2 minutes after the payer accepts it.
Needs a key with read permission.
Request
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | integer | optional | How many items to return, from 1 to 100. Default 25.At least 1.At most 100. |
| cursor | string | optional | The next_cursor of the previous page, to get the page after it. Opaque: pass it back unchanged. |
| state | string | optional | Only ERAs in this state.One of: `needs_review`, `posted`. |
| payer_id | string | optional | Only ERAs from this payer (pyr_...). |
| paid_from | string (date) | optional | Only ERAs paid on or after this date (YYYY-MM-DD). |
| paid_to | string (date) | optional | Only ERAs paid on or before this date (YYYY-MM-DD). |
| received_from | string (date-time) | optional | Only ERAs received at or after this instant: the range a report adds up adjustments over (ISO 8601 with an offset, such as 2026-10-01T00:00:00Z). |
| received_to | string (date-time) | optional | Only ERAs received before this instant (ISO 8601 with an offset, such as 2026-10-01T00:00:00Z). |
Response
A page of ERA summaries. Status 200.
| Name | Type | Description |
|---|---|---|
| data | array of object | |
| data[].id | string | An ID that starts with era_. |
| data[].object | string | Always `era`. |
| data[].state | string | needs_review: received, not yet posted; posted: you posted it.One of: `needs_review`, `posted`. |
| data[].payer | object or null | The payer in the directory, when the remittance names one we know. |
| data[].payer.id | string | An ID that starts with pyr_. |
| data[].payer.payer_id | string | The payer's own payer ID. |
| data[].payer.name | string | |
| data[].payer_name | string | The payer's name as the remittance gives it. |
| data[].office_id | string or null | The office the payment was made to (the payee), when exactly one office of yours matches it. |
| data[].payment | object | |
| data[].payment.method | string | ACH (an electronic transfer), CHK (a check), NON (no payment) or another code as sent. |
| data[].payment.trace_number | string | The EFT trace or check number: matches the deposit in your bank account. |
| data[].payment.date | string (date) or null | |
| data[].payment.total | string | The amount paid.Matches `^-?\d+\.\d{2}$`. |
| data[].payment.provider_adjustments_total | string | Adjustments at provider level (a recoupment, a forward balance): a positive one reduced the payment.Matches `^-?\d+\.\d{2}$`. |
| data[].balanced | boolean | Whether the remittance adds up (the payment, each claim and each line). One that does not is flagged for review: only the claims that add up on their own were applied. |
| data[].counts | object | |
| data[].counts.claims | integer | At least -9007199254740991. |
| data[].counts.matched | integer | At least -9007199254740991. |
| data[].counts.unmatched | integer | At least -9007199254740991. |
| data[].received_at | string (date-time) | |
| data[].posted_at | string (date-time) or null | |
| next_cursor | value | Pass as cursor to get the next page; null when there is no next page. |
Errors
| HTTP status | Code | What it means |
|---|---|---|
| 401 | UNAUTHORIZED | A valid API key is required. Send it as "Authorization: Bearer <key>". |
| 403 | PERMISSION_DENIED | This API key is not allowed to do that. |
| 422 | INVALID_REQUEST | The request is not valid. |
| 504 | TIMEOUT | The request took too long to finish. It may still have taken effect: look it up before sending it again with a new Idempotency-Key. What it made is found with GET /api/v1/eligibility?request_id=<this request_id>, and the same filter on /api/v1/claims and /api/v1/attachments (a key with read permission). |
| 500 | INTERNAL | Something went wrong on our side. Quote the request ID if you contact us. |
Example
Example request
curl "https://sandbox.myclaimhouse.com/api/v1/eras?state=needs_review&limit=25" \
-H "Authorization: Bearer $CLAIMHOUSE_KEY"Example response: 200
{
"data": [
{
"id": "era_01JM000000E00800000000003G",
"object": "era",
"state": "needs_review",
"payer": {
"id": "pyr_01JM000000E008000000000004",
"payer_id": "00000",
"name": "Example Dental Plan"
},
"payer_name": "EXAMPLE DENTAL PLAN",
"office_id": "off_01JM000000E008000000000003",
"payment": {
"method": "ACH",
"trace_number": "SBXEFT000001042",
"date": "2026-09-24",
"total": "820.80",
"provider_adjustments_total": "0.00"
},
"balanced": true,
"counts": {
"claims": 2,
"matched": 1,
"unmatched": 1
},
"received_at": "2026-09-24T21:03:30.000000+00:00",
"posted_at": null
}
],
"next_cursor": null
}