A claim moves through a deterministic state machine. Each transition is either driven by an API call you make, or by an external event (payer acknowledgement, ERA receipt) that we surface as a webhook.Documentation Index
Fetch the complete documentation index at: https://docs.have-foresight.app/llms.txt
Use this file to discover all available pages before exploring further.
State machine
| State | Set by | Description |
|---|---|---|
draft | POST /v1/claims | Created but not validated. |
validated | POST /v1/claims/{id}/validate | Passed structural validation. |
scrubbed | POST /v1/claims/{id}/scrub | Passed payer-specific edits + medical-necessity. |
submitted | (auto) clearinghouse send | Sent to clearinghouse. |
accepted | (auto) 277CA receipt | Payer acknowledged the claim. |
rejected | (auto) 277CA receipt | Front-end / clearinghouse rejection. |
denied | (auto) 835 receipt | Adjudicated and denied. |
paid | (auto) 835 receipt | Paid (full or partial). |
appealed | POST /v1/appeals | An appeal has been opened. |
reopened | (auto) appeal outcome | Outcome reversal; back into the lifecycle. |
Typical sequence
1. Create the draft
2. Validate
errors and warnings.
3. Check eligibility (optional but recommended)
4. Scrub
5. Apply suggested fixes
POST /v1/claims/{id}/apply-fix.
6. Submit
Submission is automatic when the claim transitions tosubmitted after
successful scrubbing, OR you can explicitly batch-submit a set of
encounters with:
7. Track to payment
Subscribe toclaim.accepted, claim.denied, and claim.paid webhooks.
Or poll list endpoints.