Revora Health home RevoraHealth
Interoperability

X12 5010 and FHIR R4, natively.

Payers and clearinghouses speak X12; EHRs and apps speak FHIR. Revora keeps one record and speaks both, so nothing is re-keyed and nothing is lost in translation.

X12 5010

Every transaction a practice exchanges with payers.

Delimiters are read from each partner's ISA header, control numbers are unique per trading partner, and test or production usage is set per connection.

TransactionImplementation guideDirectionWhat Revora does with it
270 / 271005010X279A1Out / inEligibility at booking, before the visit and at check-in; benefits parsed into copay, deductible, coinsurance and out-of-pocket
837P005010X222A1OutBuilt from the signed note or a FHIR Claim, validated, then sent; corrected claims as frequency 7 with REF*F8
999005010X231A1InSyntax acceptance or rejection, tied to the exact interchange and claim
277CA005010X214InClaim-level acceptance with the payer claim number, or rejection with STC category, status and entity
276 / 277005010X212Out / inAutomatic status checks for claims the payer has not decided
835005010X221A1InBalanced line by line, auto-posted, compared with the contract; reversals handled

Every interchange is validated before it is sent (envelopes and counts, plus the guide rules that matter: dates, NPI check digits, ICD-10 format, diagnosis pointers, claim totals, 835 balancing) and stored verbatim in the EDI log.

FHIR R4

The same records as FHIR resources.

For EHRs, patient apps, partner marketplaces and payers that have moved to FHIR.

ResourceInteractionsNotes
Patient, Practitioner, Organizationread, searchUS Core-shaped; NPI and tax ID identifiers
Coverageread, searchMember ID, plan class, subscriber relationship
Schedule, Slot, Appointmentread, search, createPublished calendars and booking for partner apps
Encounter, Conditionread, searchICD-10-CM encounter diagnoses
CoverageEligibilityRequest / Responsecreate, readRuns a real-time 270/271 under the hood
Claimread, search, $submituse = claim sends an 837P; use = preauthorization runs prior authorization
ClaimResponse, ExplanationOfBenefitread, searchFrom the 277CA and 835, with CARC/RARC reasons and adjudication amounts
Patient/$everythingoperationThe patient's record as a Bundle

FHIR R4 (4.0.1), application/fhir+json, OperationOutcome on errors, CapabilityStatement at /fhir/metadata. Resources are validated against the FHIR structure definitions.

Developers

Two calls to get started.

Authenticate with a bearer token; every request is written to the audit log.

# Check eligibility over FHIR: Revora sends the 270 and returns the 271 as a CoverageEligibilityResponse

curl -X POST https://your-practice.revora.health/fhir/CoverageEligibilityRequest \

  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/fhir+json" \

  -d '{"resourceType":"CoverageEligibilityRequest","status":"active","purpose":["benefits"],

      "patient":{"reference":"Patient/pt-0042"},"created":"2026-10-14","insurer":{"reference":"Organization/py-apex"}}'

# Submit a claim: scrubbed, auto-fixed, sent as an 837P; the ClaimResponse carries the 277CA result

curl -X POST https://your-practice.revora.health/fhir/Claim/\$submit -H "Authorization: Bearer $TOKEN" -d @claim.json

Onboarding

Connecting your trading partners.

Most practices are live in two to three weeks.

1. Enrollment

We file EDI and ERA enrollment with each payer and your clearinghouse, and set your submitter ID.

2. Test

Interchanges go out with usage T until each partner confirms them; the interop console shows every one.

3. Production

Switch to P per partner. History, rules and work queues carry over unchanged.

Get started

Send us a sample file.

Paste any 837, 835 or 271 into the interop console and see it validated and converted to FHIR.