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
| Champ | Type | Cardinalité | Rôle |
|---|---|---|---|
identifier | Identifier[] | 0..* | Identifiant de la réponse. |
status | code | 1..1 | active, cancelled, draft, entered-in-error. |
type | CodeableConcept | 1..1 | Catégorie (matchant le Claim). |
use | code | 1..1 | claim, preauthorization, predetermination. |
patient | Reference(Patient) | 1..1 | Patient bénéficiaire. |
created | dateTime | 1..1 | Date de réponse. |
insurer | Reference(Organization) | 1..1 | Assureur émetteur. |
requestor | Reference(Practitioner | PractitionerRole | Organization) | 0..1 | Provider qui avait soumis le Claim. |
request | Reference(Claim) | 0..1 | Le Claim original. |
outcome | code | 1..1 | queued, complete, error, partial. |
decision | CodeableConcept | 0..1 | denied, granted, partial, pending — décision globale. |
disposition | string | 0..1 | Message de disposition humain. |
preAuthRef | string | 0..1 | Référence de pré-autorisation (pour les use=preauthorization). |
item | BackboneElement[] | 0..* | Détail ligne par ligne (référence aux items du Claim + adjudication). |
addItem | BackboneElement[] | 0..* | Lignes ajoutées par l'assureur (rare, ex: ajustements). |
adjudication | BackboneElement[] | 0..* | Adjudication au niveau du Claim entier. |
total | BackboneElement[] | 0..* | Totaux par catégorie d'adjudication. |
payment | BackboneElement | 0..1 | Détails du paiement. |
error | BackboneElement[] | 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 :
{
"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+dispositionhumain.item[0].adjudication: 120 facturé → 100 éligible → 20 co-pay → 80 benefit.totalreprend les totaux au niveau du Claim.payment: 80 USD versés au provider via virementPMT-2026-05-20-123le 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
| Profil | Régulateur | Particularité |
|---|---|---|
| Da Vinci PAS ClaimResponse | HL7 Da Vinci Project | Prior Authorization Support — porte la preAuthRef obligatoire. |
| Da Vinci CRD ClaimResponse | HL7 Da Vinci Project | Coverage Requirements Discovery. |
| CARIN BB ClaimResponse | HL7 CARIN Alliance | Pour Blue Button 2.0 / CMS Patient Access API. |
| NCPDP Pharmacy ClaimResponse | NCPDP | Format pharmacie US. |
Pièges courants
outcome=queuedjamais finalisé — un workflow doit gérer la transitionqueued→complete. Un ClaimResponse bloqué enqueuedrend la création de l'EOB impossible.- Adjudication incohérente —
submitted - copay - deductible = benefitdoit 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 porterrequest. - 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.