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.

CoverageEligibilityResponse — detail

Insurer's response to a CoverageEligibilityRequest. Contains benefit allowed/used detail, prior authorization requirements, annual caps, exclusions, copay/deductible. Cornerstone of real-time pricing for preadmission, third-party payer, patient estimation.

Outcome values

The outcome field indicates the processing result:

  • queued — receipt OK but async processing (complete response later).
  • complete — processing OK with complete result (positive or negative).
  • error — processing error (see error array for detail).
  • partial — partial processing (some items OK, others not).

Key fields

FieldCardinalityRole
status1..1active / cancelled / draft / entered-in-error.
purpose1..*Echo of request purpose.
patient1..1Evaluated patient.
request0..1Reference to CoverageEligibilityRequest.
outcome1..1queued / complete / error / partial.
disposition0..1Human message (free text status).
insurance0..*Detail by evaluated coverage.
insurance.inforce0..1Coverage active at requested date?
insurance.benefitPeriod0..1Benefit validity period.
insurance.item0..*Detail by requested procedure/product.
preAuthRef0..*Granted prior authorization reference(s).
form0..1Response format (PDF, legacy XML…).

benefitBalance (allowed/used)

The insurance.item.benefit element is the richness of this resource. Each benefit has:

  • type — benefit / copay / deductible / room / lifetime / visit-cap…
  • allowed[x] — allowed amount or quantity (Money, UnsignedInt, String).
  • used[x] — already consumed in the period.

Allows preadmission system to instantly compute patient out-of-pocket: OOP = unitPrice − benefit.allowed − used.

Example: hip prosthesis fully covered

Medicare responds to Bichat Hospital: prosthesis 100% covered, no prior auth required:

json coverageeligibilityresponse-orth.json
{
  "resourceType": "CoverageEligibilityResponse",
  "id": "elig-resp-orthopedie-marie-887",
  "status": "active",
  "purpose": ["validation", "benefits"],
  "patient": { "reference": "Patient/marie-durand-887" },
  "servicedDate": "2026-06-15",
  "created": "2026-05-19T17:30:08+02:00",
  "requestor": { "reference": "Organization/hopital-bichat" },
  "request": { "reference": "CoverageEligibilityRequest/elig-req-orthopedie-marie-887" },
  "outcome": "complete",
  "disposition": "Patient covered - hip replacement covered at 100% TIPS with no out-of-pocket.",
  "insurer": { "reference": "Organization/cms-medicare" },
  "insurance": [{
    "coverage": { "reference": "Coverage/cov-medicare-marie-887" },
    "inforce": true,
    "benefitPeriod": {
      "start": "2026-01-01",
      "end": "2026-12-31"
    },
    "item": [{
      "category": {
        "coding": [{
          "system": "http://terminology.hl7.org/CodeSystem/ex-benefitcategory",
          "code": "47"
        }]
      },
      "productOrService": {
        "coding": [{
          "system": "http://www.cms.gov/Medicare/Coding/ICD10",
          "code": "0SR9019"
        }]
      },
      "excluded": false,
      "network": {
        "coding": [{
          "system": "http://terminology.hl7.org/CodeSystem/benefit-network",
          "code": "in"
        }]
      },
      "unit": {
        "coding": [{
          "system": "http://terminology.hl7.org/CodeSystem/benefit-unit",
          "code": "individual"
        }]
      },
      "term": {
        "coding": [{
          "system": "http://terminology.hl7.org/CodeSystem/benefit-term",
          "code": "annual"
        }]
      },
      "benefit": [{
        "type": {
          "coding": [{
            "system": "http://terminology.hl7.org/CodeSystem/benefit-type",
            "code": "benefit"
          }]
        },
        "allowedMoney": { "value": 7500.00, "currency": "USD" }
      }, {
        "type": {
          "coding": [{
            "system": "http://terminology.hl7.org/CodeSystem/benefit-type",
            "code": "copay"
          }]
        },
        "allowedMoney": { "value": 0.00, "currency": "USD" }
      }],
      "authorizationRequired": false
    }]
  }]
}

Common pitfalls

  • inforce vs benefit missing — if inforce=true but no benefit, requesting system doesn't know what's covered. Incomplete responses frequent on third-party side.
  • preAuthRef required not provided — if authorizationRequired=true without preAuthRef, system must make a second `priorAuthorization` call.
  • Confusion allowedMoney vs request unitPrice — allowedMoney = what insurer will pay; unitPrice (request) = price asked. Difference = patient out-of-pocket.
  • No cache — static responses (plan benefits) can be cached 24h to reduce API costs. Check invalidation conditions.