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.

InsurancePlan — Health insurance product

The insurer-side product catalog: the "Premium Health 2026" contract with its benefits, network, pricing. Not to be confused with Coverage which is the policy a patient subscribes to.

Purpose

InsurancePlan describes a product: "Premium Health 2026", its coverages (medical, dental, vision), its network (partner Organizations), its tiers (gold, silver, bronze), its contacts. Where Coverage is the policy subscribed by a given patient, InsurancePlan is the product catalog.

Key fields

FieldTypeCardinalityRole
identifierIdentifier[]0..*Product identifiers.
statuscode0..1draft, active, retired, unknown.
typeCodeableConcept[]0..*Insurance type (medical, dental, vision, drug, hearing).
namestring0..1Commercial name.
aliasstring[]0..*Synonyms.
periodPeriod0..1Validity period.
ownedByReference(Organization)0..1Owner.
administeredByReference(Organization)0..1Administrator.
coverageAreaReference(Location)[]0..*Geographic coverage area.
contactBackboneElement[]0..*Contacts.
endpointReference(Endpoint)[]0..*Technical endpoints.
networkReference(Organization)[]0..*Provider network.
coverageBackboneElement[]0..*Coverages: type, network, benefit[].
planBackboneElement[]0..*Pricing tiers: identifier, type, coverageArea, network, generalCost, specificCost.

JSON example

Premium Health 2026 plan with in-network no-upfront hospitalization:

json insuranceplan-premium.json
{
  "resourceType": "InsurancePlan",
  "id": "ip-premium-2026",
  "identifier": [{
    "system": "urn:oid:1.2.34",
    "value": "PLAN-PREMIUM-2026"
  }],
  "status": "active",
  "type": [{
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/insurance-plan-type",
      "code": "medical"
    }]
  }],
  "name": "Premium Health 2026",
  "alias": ["Premium Santé 2026"],
  "period": {
    "start": "2026-01-01",
    "end": "2026-12-31"
  },
  "ownedBy": { "reference": "Organization/insurer-x" },
  "administeredBy": { "reference": "Organization/insurer-x-admin" },
  "coverageArea": [{ "reference": "Location/usa" }],
  "contact": [{
    "purpose": {
      "coding": [{
        "system": "http://terminology.hl7.org/CodeSystem/contactentity-type",
        "code": "PATINF"
      }]
    },
    "telecom": [{
      "system": "phone",
      "value": "1-800-555-PLAN"
    }, {
      "system": "url",
      "value": "https://insurer-x.example.org/premium-2026"
    }]
  }],
  "coverage": [{
    "type": {
      "coding": [{
        "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
        "code": "MEDC"
      }]
    },
    "network": [{ "reference": "Organization/network-premium" }],
    "benefit": [{
      "type": {
        "coding": [{
          "system": "http://terminology.hl7.org/CodeSystem/insurance-plan-type",
          "code": "hospitalization"
        }]
      },
      "requirement": "No upfront payment at in-network hospitals",
      "limit": [{
        "value": { "value": 100, "unit": "%" },
        "code": {
          "coding": [{
            "system": "http://terminology.hl7.org/CodeSystem/benefit-type",
            "code": "annual"
          }]
        }
      }]
    }]
  }]
}

Common pitfalls

  • Confusing with Coverage — InsurancePlan = product catalog, Coverage = patient-subscribed policy.
  • No period — a plan without effective/expiration dates is timeless, which is never the case.
  • Missing coverageArea — a plan sold in France does not cover Germany; specify via coverageArea.
  • Vague benefits — without precise limit[], the patient doesn't know the reimbursement amount.
  • No network — a plan without a network is unsellable: the patient doesn't know where to go.