ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

ExplanationOfBenefit — Relevé de prestations

Le récapitulatif patient des prestations remboursées, refusées ou ajustées par l'assureur. La pièce maîtresse du CMS Patient Access API.

Objet de la ressource

ExplanationOfBenefit (EOB) est le relevé patient produit par l'assureur après traitement d'un Claim. C'est ce que reçoit le patient pour comprendre :

  • quels actes ont été facturés ;
  • quel montant a été remboursé ;
  • quel reste à charge il doit payer (co-pay, deductible, non couvert) ;
  • quel paiement a été émis au provider.

En 2026, l'EOB est devenu central dans l'écosystème US : le règlement CMS 9115-F (depuis 2021, étendu en 2024 sous CMS-0057-F) impose à tout payor public et privé de mettre à disposition les EOB historiques de leurs assurés via une Patient Access API conforme à CARIN BB 2.0.

Champs clés

ChampTypeCardinalitéRôle
identifierIdentifier[]0..*Identifiant métier de l'EOB.
statuscode1..1active, cancelled, draft, entered-in-error.
typeCodeableConcept1..1Catégorie (matchant le Claim source).
usecode1..1claim, preauthorization, predetermination.
patientReference(Patient)1..1Bénéficiaire.
billablePeriodPeriod0..1Période de service.
createddateTime1..1Date de génération de l'EOB.
insurerReference(Organization)1..1Assureur émetteur.
providerReference(Practitioner | PractitionerRole | Organization)1..1Provider de l'acte.
outcomecode1..1queued, complete, error, partial.
dispositionstring0..1Disposition humaine.
claimReference(Claim)0..1Lien vers le Claim original.
claimResponseReference(ClaimResponse)0..1Lien vers la ClaimResponse.
diagnosisBackboneElement[]0..*Diagnostics.
procedureBackboneElement[]0..*Actes.
insuranceBackboneElement[]1..*Coverage(s) appliquée(s).
itemBackboneElement[]0..*Lignes facturées avec adjudication.
totalBackboneElement[]0..*Totaux par catégorie d'adjudication.
paymentBackboneElement0..1Paiement réalisé.
benefitBalanceBackboneElement[]0..*Solde de prestations (deductible consommé / restant, out-of-pocket).

Différences avec ClaimResponse

AspectClaimResponseExplanationOfBenefit
Destinataire principalProvider (B2B)Patient (B2C, via Patient Access API)
FormatTechnique, focalisé sur paiementLisible, contextualisé, historique
CycleÉmis dès traitement du ClaimÉmis périodiquement (ex : tous les 7 jours)
PersistanceSouvent transitoireConservé en archive (souvent 7 ans+ par la loi)
Champ benefitBalanceNonOui — soldes annuels (deductible, OOP)

Exemple JSON

EOB pour le Claim professional-2026-001 remboursé : facturé 120, co-pay 20, payé 80 au provider. Le patient reçoit ce relevé une semaine après sa visite :

json eob-paid.json
{
  "resourceType": "ExplanationOfBenefit",
  "id": "eob-2026-001",
  "status": "active",
  "type": {
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/claim-type",
      "code": "professional"
    }]
  },
  "use": "claim",
  "patient": { "reference": "Patient/example" },
  "billablePeriod": {
    "start": "2026-05-14",
    "end": "2026-05-14"
  },
  "created": "2026-05-21T08:00:00+01:00",
  "insurer": { "reference": "Organization/aetna" },
  "provider": { "reference": "Practitioner/dr-jones" },
  "outcome": "complete",
  "disposition": "Processed.",
  "claim": { "reference": "Claim/professional-2026-001" },
  "claimResponse": { "reference": "ClaimResponse/response-2026-001" },
  "insurance": [{
    "focal": true,
    "coverage": { "reference": "Coverage/primary-aetna" }
  }],
  "item": [{
    "sequence": 1,
    "productOrService": {
      "coding": [{
        "system": "http://www.ama-assn.org/go/cpt",
        "code": "99213"
      }]
    },
    "servicedDate": "2026-05-14",
    "adjudication": [{
      "category": {
        "coding": [{
          "system": "http://terminology.hl7.org/CodeSystem/adjudication",
          "code": "submitted"
        }]
      },
      "amount": { "value": 120.00, "currency": "USD" }
    }, {
      "category": {
        "coding": [{
          "system": "http://terminology.hl7.org/CodeSystem/adjudication",
          "code": "copay"
        }]
      },
      "amount": { "value": 20.00, "currency": "USD" }
    }, {
      "category": {
        "coding": [{
          "system": "http://terminology.hl7.org/CodeSystem/adjudication",
          "code": "benefit"
        }]
      },
      "amount": { "value": 80.00, "currency": "USD" }
    }]
  }],
  "total": [{
    "category": {
      "coding": [{
        "system": "http://terminology.hl7.org/CodeSystem/adjudication",
        "code": "submitted"
      }]
    },
    "amount": { "value": 120.00, "currency": "USD" }
  }, {
    "category": {
      "coding": [{
        "system": "http://terminology.hl7.org/CodeSystem/adjudication",
        "code": "benefit"
      }]
    },
    "amount": { "value": 80.00, "currency": "USD" }
  }],
  "payment": {
    "amount": { "value": 80.00, "currency": "USD" }
  }
}
  • claim + claimResponse tracent le lien complet vers les ressources amont.
  • L'item[0].adjudication recopie le détail de la ClaimResponse pour que le patient comprenne en autonomie.
  • payment.amount indique au patient combien a été versé au provider.
  • billablePeriod documente la période de service (ici, une journée unique).

API REST

  • GET /ExplanationOfBenefit?patient=Patient/example&_sort=-created — relevés patient triés.
  • GET /ExplanationOfBenefit?patient=Patient/example&billable-period-start=ge2026-01-01 — relevés 2026.
  • GET /ExplanationOfBenefit/eob-2026-001 — relevé spécifique.
  • GET /ExplanationOfBenefit?coverage=Coverage/primary-aetna — relevés liés à une coverage.
  • GET /ExplanationOfBenefit?_include=ExplanationOfBenefit:claim&_include=ExplanationOfBenefit:claim-response — relevé + amont complet.
  • POST /Patient/example/$everything?_type=ExplanationOfBenefit — historique financier complet patient.

Profils

ProfilRégulateurParticularité
CARIN BB EOB Inpatient InstitutionalHL7 CARIN AlliancePour CMS Patient Access API — hospitalisations.
CARIN BB EOB Outpatient InstitutionalHL7 CARIN AllianceSoins ambulatoires institutionnels.
CARIN BB EOB Professional NonClinicianHL7 CARIN AllianceSoins professionnels (cabinet, spécialistes).
CARIN BB EOB PharmacyHL7 CARIN AlliancePharmacie.
CARIN BB EOB OralHL7 CARIN AllianceDentaire.
Da Vinci PDex EOBHL7 Da VinciPatient Data Exchange (payor-to-payor).

Pièges courants

  • EOB sans claim ni claimResponse — un EOB déconnecté de ses pièces sources n'est ni auditable ni rapprochable.
  • Profil CARIN BB non respecté — pour l'usage CMS Patient Access API, il faut choisir le bon profil parmi les six CARIN BB et porter les éléments imposés (types, identifiants, adjudication categories).
  • benefitBalance manquant — pour permettre au patient de suivre son out-of-pocket, ce bloc doit être renseigné (deductible-met, out-of-pocket-met, etc.).
  • Disposition technique en clair — éviter d'exposer des codes internes assureur (denial reason codes propriétaires) sans traduction lisible.
  • Item adjudication categories non standard — utiliser strictement le CodeSystem adjudication + extension CARIN adjudicationDenialReason selon le profil.

Ressources liées

  • Claim — source amont.
  • ClaimResponse — décision interbancaire / B2B.
  • Coverage — couverture appliquée.
  • PaymentReconciliation — réconciliation des paiements multiples.
  • Patient — bénéficiaire.
  • X12 835 — équivalent legacy interbancaire.