ClaimResponse — Response to a Claim
The insurer's decision on a reimbursement request: outcome, adjudication, line-level amounts, payment. FHIR successor of X12 835.
Purpose of the resource
ClaimResponse carries the insurer's decision in response to a received Claim. It contains:
- the overall outcome (success, error, partial);
- the line-by-line decision (adjudication): submitted, eligible, copay, deductible, final benefit amounts;
- the associated payment (amount, date, transfer identifier);
- any errors or denial reasons.
ClaimResponse is the EOB on the provider side. The patient receives in
parallel a human-readable ExplanationOfBenefit. For pre-authorisations,
ClaimResponse carries the preAuthRef to be reused in the future
final Claim.
Key fields
| Field | Type | Cardinality | Role |
|---|---|---|---|
identifier | Identifier[] | 0..* | Response identifier. |
status | code | 1..1 | active, cancelled, draft, entered-in-error. |
type | CodeableConcept | 1..1 | Category (matching the Claim). |
use | code | 1..1 | claim, preauthorization, predetermination. |
patient | Reference(Patient) | 1..1 | Beneficiary patient. |
created | dateTime | 1..1 | Response date. |
insurer | Reference(Organization) | 1..1 | Issuing insurer. |
requestor | Reference(Practitioner | PractitionerRole | Organization) | 0..1 | Provider who had submitted the Claim. |
request | Reference(Claim) | 0..1 | Original Claim. |
outcome | code | 1..1 | queued, complete, error, partial. |
decision | CodeableConcept | 0..1 | denied, granted, partial, pending — overall decision. |
disposition | string | 0..1 | Human-readable disposition message. |
preAuthRef | string | 0..1 | Pre-authorisation reference (for use=preauthorization). |
item | BackboneElement[] | 0..* | Line-by-line detail (refers to Claim items + adjudication). |
addItem | BackboneElement[] | 0..* | Lines added by the insurer (rare, e.g. adjustments). |
adjudication | BackboneElement[] | 0..* | Adjudication at the whole-Claim level. |
total | BackboneElement[] | 0..* | Totals per adjudication category. |
payment | BackboneElement | 0..1 | Payment details. |
error | BackboneElement[] | 0..* | Structural or business errors (line pointing to Claim item). |
Line-by-line adjudication
Each item.adjudication[] describes an amount category for the
corresponding Claim line. Standard categories (CodeSystem
adjudication):
submitted— amount billed by the provider.copay— patient co-pay.eligible— eligible amount (after negotiated rates).deductible— share applied to the annual deductible.unallocdeduct— unallocated deductible.eligpercent— coverage percentage.tax— applicable taxes.benefit— final amount paid by the insurer (critical figure).
JSON example
Positive ClaimResponse to Claim professional-2026-001: Aetna accepts
USD 100 eligible, applies USD 20 co-pay, pays USD 80 to the provider on May 20:
{
"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+ human-readabledisposition.item[0].adjudication: 120 billed → 100 eligible → 20 copay → 80 benefit.totalechoes Claim-level totals.payment: USD 80 to provider via transferPMT-2026-05-20-123on 20 May 2026.
REST API
GET /ClaimResponse?request=Claim/professional-2026-001— response to a specific Claim.GET /ClaimResponse?patient=Patient/example&outcome=complete— patient processed responses.POST /ClaimResponse— create a response on the insurer side.GET /ClaimResponse?_include=ClaimResponse:request— response + source Claim.POST /ClaimResponse/$resubmit— composite operation to resubmit (per profile).GET /ClaimResponse?preAuthRef=PA-2026-04-15-998— search by pre-auth reference.
Profiles
| Profile | Regulator | Specifics |
|---|---|---|
| Da Vinci PAS ClaimResponse | HL7 Da Vinci Project | Prior Authorization Support — carries mandatory preAuthRef. |
| Da Vinci CRD ClaimResponse | HL7 Da Vinci Project | Coverage Requirements Discovery. |
| CARIN BB ClaimResponse | HL7 CARIN Alliance | For Blue Button 2.0 / CMS Patient Access API. |
| NCPDP Pharmacy ClaimResponse | NCPDP | US pharmacy format. |
Common pitfalls
outcome=queuednever finalised — a workflow must handle the transitionqueued→complete. A ClaimResponse stuck inqueuedblocks EOB creation.- Inconsistent adjudication —
submitted - copay - deductible = benefitmust add up (per contract). Otherwise provider-side accounting reconciliation fails. - No
request— without a reference to the source Claim, reconciliation cannot be rebuilt. Always carryrequest. - preAuthRef missing for
use=preauthorization— the insurer must provide a pre-auth identifier that the provider will carry in the final Claim. Otherwise, the future Claim is processed without pre-auth. - Payment without
identifier— the transfer number (ACH trace or SWIFT reference) is essential for provider-side bank reconciliation.
Related resources
- Claim — request being responded to.
- ExplanationOfBenefit — patient-readable version.
- Coverage — applied coverage.
- PaymentNotice / PaymentReconciliation — payment flow.
- X12 835 — legacy equivalent.
- Patient — subject.