CoverageEligibilityRequest — detail
Real-time request to an insurer to verify a patient's coverage before a procedure: hospital preadmission, expensive device prescription (DME), prosthesis, costly drugs. Mandatory response via CoverageEligibilityResponse. FHIR equivalent of X12 270 (US claims/eligibility).
Purpose types — 4 modes
The purpose field (1..*) specifies what the requester wants to know:
auth-requirements— what prior authorizations are needed?benefits— what reimbursement level for this procedure?discovery— what coverages exist for this patient?validation— is coverage active on the planned date?
Multiple purposes can be combined in a single request to minimize round-trips.
Key fields
| Field | Cardinality | Role |
|---|---|---|
status | 1..1 | active / cancelled / draft / entered-in-error. |
priority | 0..1 | stat / normal / deferred (processing priority). |
purpose | 1..* | auth-requirements / benefits / discovery / validation. |
patient | 1..1 | Beneficiary patient. |
serviced[x] | 0..1 | Date or period of procedure (Period or Date). |
created | 1..1 | Request creation date. |
enterer | 0..1 | Person who entered the request. |
provider | 0..1 | Provider who will perform the procedure. |
insurer | 1..1 | Insurer organization queried. |
insurance | 0..* | Coverage reference(s) at stake, with focal order. |
item | 0..* | Procedures or products to verify (CCAM, GHS, ATC, ICD-10-PCS). |
Real-time vs batch
In US and France, two modes coexist:
- Real-time — synchronous response < 1 sec. Used at preadmission, pharmacy counter. Typical X12 270/271 SLA: 99.5% of responses < 1s.
- Batch — asynchronous response by batches (typically nightly). Used for planned preadmission client stock verifications.
FHIR doesn't prescribe the mode but servers generally implement both via priority.
Example: orthopedic preadmission
Bichat Hospital asks Medicare if the hip replacement planned for Marie DURAND is covered:
{
"resourceType": "CoverageEligibilityRequest",
"id": "elig-req-orthopedie-marie-887",
"status": "active",
"priority": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/processpriority",
"code": "normal"
}]
},
"purpose": ["validation", "benefits"],
"patient": { "reference": "Patient/marie-durand-887" },
"servicedDate": "2026-06-15",
"created": "2026-05-19T17:30:00+02:00",
"enterer": { "reference": "Practitioner/admin-hosp-bichat" },
"provider": { "reference": "PractitionerRole/orth-bichat-paris" },
"insurer": { "reference": "Organization/cms-medicare" },
"facility": { "reference": "Location/hopital-bichat" },
"supportingInfo": [{
"sequence": 1,
"information": { "reference": "Condition/coxarthrose-droite-887" },
"appliesToAll": true
}],
"insurance": [{
"focal": true,
"coverage": { "reference": "Coverage/cov-medicare-marie-887" },
"businessArrangement": "AUTH-PREAD-887"
}],
"item": [{
"category": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/ex-benefitcategory",
"code": "47",
"display": "Hospital - inpatient"
}]
},
"productOrService": {
"coding": [{
"system": "http://www.cms.gov/Medicare/Coding/ICD10",
"code": "0SR9019",
"display": "Replacement of Right Hip Joint with Synthetic Substitute"
}]
},
"provider": { "reference": "Practitioner/dr-orthopediste-bichat" },
"quantity": { "value": 1 },
"unitPrice": { "value": 7500.00, "currency": "USD" },
"facility": { "reference": "Location/hopital-bichat-bloc-3" },
"diagnosis": [{
"diagnosisCodeableConcept": {
"coding": [{
"system": "http://hl7.org/fhir/sid/icd-10",
"code": "M16.0",
"display": "Primary osteoarthritis of hip, bilateral"
}]
}
}]
}]
} Common pitfalls
- Multiple purpose not handled backend — many insurers only support one purpose at a time. Test before prod.
- item without diagnosis — for chronic care procedures, diagnosis is mandatory (full coverage depends on diagnosis).
- insurance.focal missing — in multi-coverage, focal=true indicates primary. Without it, calculation ambiguity.
- serviced missing — without planned date, insurer cannot verify coverage (coverage evolves over time).