ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

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

FieldCardinalityRole
status1..1active / cancelled / draft / entered-in-error.
priority0..1stat / normal / deferred (processing priority).
purpose1..*auth-requirements / benefits / discovery / validation.
patient1..1Beneficiary patient.
serviced[x]0..1Date or period of procedure (Period or Date).
created1..1Request creation date.
enterer0..1Person who entered the request.
provider0..1Provider who will perform the procedure.
insurer1..1Insurer organization queried.
insurance0..*Coverage reference(s) at stake, with focal order.
item0..*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:

json coverageeligibilityrequest-orth.json
{
  "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).