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.

ClaimResponse — Réponse à un Claim

La décision de l'assureur sur une demande de remboursement : outcome, adjudication, montants par ligne, paiement. Successeur FHIR de l'X12 835.

Objet de la ressource

ClaimResponse porte la décision de l'assureur en réponse à un Claim reçu. Elle contient :

  • l'outcome global (succès, erreur, partiel) ;
  • la décision ligne par ligne (adjudication) : montant soumis, éligible, co-pay, deductible, benefit final ;
  • le paiement associé (montant, date, identifiant de virement) ;
  • les éventuelles erreurs ou raisons de refus.

ClaimResponse est l'EOB côté provider (Explanation of Benefits). Le patient reçoit en parallèle une ExplanationOfBenefit lisible. Pour les pré-autorisations, la ClaimResponse porte le preAuthRef à utiliser dans le futur Claim final.

Champs clés

ChampTypeCardinalitéRôle
identifierIdentifier[]0..*Identifiant de la réponse.
statuscode1..1active, cancelled, draft, entered-in-error.
typeCodeableConcept1..1Catégorie (matchant le Claim).
usecode1..1claim, preauthorization, predetermination.
patientReference(Patient)1..1Patient bénéficiaire.
createddateTime1..1Date de réponse.
insurerReference(Organization)1..1Assureur émetteur.
requestorReference(Practitioner | PractitionerRole | Organization)0..1Provider qui avait soumis le Claim.
requestReference(Claim)0..1Le Claim original.
outcomecode1..1queued, complete, error, partial.
decisionCodeableConcept0..1denied, granted, partial, pending — décision globale.
dispositionstring0..1Message de disposition humain.
preAuthRefstring0..1Référence de pré-autorisation (pour les use=preauthorization).
itemBackboneElement[]0..*Détail ligne par ligne (référence aux items du Claim + adjudication).
addItemBackboneElement[]0..*Lignes ajoutées par l'assureur (rare, ex: ajustements).
adjudicationBackboneElement[]0..*Adjudication au niveau du Claim entier.
totalBackboneElement[]0..*Totaux par catégorie d'adjudication.
paymentBackboneElement0..1Détails du paiement.
errorBackboneElement[]0..*Erreurs structurelles ou métiers (ligne pointant vers item Claim).

Adjudication ligne par ligne

Chaque item.adjudication[] décrit une catégorie de montant pour la ligne du Claim correspondante. Les catégories standard (CodeSystem adjudication) :

  • submitted — montant facturé par le provider.
  • copay — co-pay à la charge du patient.
  • eligible — montant éligible (après application des tarifs négociés).
  • deductible — partie imputée au déductible annuel.
  • unallocdeduct — déductible non alloué.
  • eligpercent — pourcentage de couverture.
  • tax — taxes applicables.
  • benefit — montant final payé par l'assureur (la donnée critique).

Exemple JSON

ClaimResponse positive au Claim professional-2026-001 : Aetna accepte 100 USD éligibles, applique 20 USD de co-pay, paie 80 USD au provider le 20 mai :

json claimresponse-paid.json
{
  "resourceType": "ClaimResponse",
  "id": "response-2026-001",
  "status": "active",
  "type": {
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/claim-type",
      "code": "professional"
    }]
  },
  "use": "claim",
  "patient": { "reference": "Patient/example" },
  "created": "2026-05-16T09:00:00+01:00",
  "insurer": { "reference": "Organization/aetna" },
  "requestor": { "reference": "Practitioner/dr-jones" },
  "request": { "reference": "Claim/professional-2026-001" },
  "outcome": "complete",
  "disposition": "Claim settled as per contract.",
  "preAuthRef": "PA-2026-04-15-998",
  "payeeType": {
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/payeetype",
      "code": "provider"
    }]
  },
  "item": [{
    "itemSequence": 1,
    "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": "eligible"
        }]
      },
      "amount": { "value": 100.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": {
    "type": {
      "coding": [{
        "system": "http://terminology.hl7.org/CodeSystem/ex-paymenttype",
        "code": "complete"
      }]
    },
    "date": "2026-05-20",
    "amount": { "value": 80.00, "currency": "USD" },
    "identifier": {
      "system": "http://aetna.com/payments",
      "value": "PMT-2026-05-20-123"
    }
  }
}
  • outcome=complete + disposition humain.
  • item[0].adjudication : 120 facturé → 100 éligible → 20 co-pay → 80 benefit.
  • total reprend les totaux au niveau du Claim.
  • payment : 80 USD versés au provider via virement PMT-2026-05-20-123 le 20 mai 2026.

API REST

  • GET /ClaimResponse?request=Claim/professional-2026-001 — réponse à un Claim spécifique.
  • GET /ClaimResponse?patient=Patient/example&outcome=complete — réponses traitées d'un patient.
  • POST /ClaimResponse — créer une réponse côté assureur.
  • GET /ClaimResponse?_include=ClaimResponse:request — réponse + Claim source.
  • POST /ClaimResponse/$resubmit — opération composite pour relancer (selon profil).
  • GET /ClaimResponse?preAuthRef=PA-2026-04-15-998 — recherche par référence pré-autorisation.

Profils

ProfilRégulateurParticularité
Da Vinci PAS ClaimResponseHL7 Da Vinci ProjectPrior Authorization Support — porte la preAuthRef obligatoire.
Da Vinci CRD ClaimResponseHL7 Da Vinci ProjectCoverage Requirements Discovery.
CARIN BB ClaimResponseHL7 CARIN AlliancePour Blue Button 2.0 / CMS Patient Access API.
NCPDP Pharmacy ClaimResponseNCPDPFormat pharmacie US.

Pièges courants

  • outcome=queued jamais finalisé — un workflow doit gérer la transition queuedcomplete. Un ClaimResponse bloqué en queued rend la création de l'EOB impossible.
  • Adjudication incohérentesubmitted - copay - deductible = benefit doit tomber juste (selon contrat). Sinon les réconciliations comptables côté provider échouent.
  • Pas de request — sans référence au Claim source, on ne peut pas reconstituer le rapprochement. Toujours porter request.
  • preAuthRef manquant pour use=preauthorization — l'assureur doit fournir un identifiant de pré-autorisation que le provider portera dans le Claim final. Sinon, le futur Claim est traité hors pré-auth.
  • Payment sans identifier — le numéro de virement (équivalent ACH trace ou SWIFT reference) est essentiel pour la réconciliation bancaire côté provider.

Ressources liées

  • Claim — demande à laquelle on répond.
  • ExplanationOfBenefit — version lisible patient.
  • Coverage — couverture appliquée.
  • PaymentNotice / PaymentReconciliation — flux paiement.
  • X12 835 — équivalent legacy.
  • Patient — sujet.