Financial Workflow Resources
So Bob has anemia. Dr. Alice diagnosed him, prescribed iron supplements. Bob’s feeling better already! But here’s the thing - while Bob was focused on getting better, there was a whole other workflow happening behind the scenes.
Who’s paying for all this? The lab tests, the doctor’s visit, the medications, that endoscopy procedure?
This is where FHIR’s financial resources come in. They handle the complex dance between healthcare providers (like hospitals) and insurance companies (called payers in healthcare lingo).
Let’s follow the money trail in Bob’s healthcare journey!
The Cast of Characters
Before we dive into the resources, let’s understand who’s involved:
- Patient: Bob (who has insurance)
- Provider: Springfield Family Practice (where Bob got care)
- Payer: Acme Health Insurance (Bob’s insurance company)
Starting with Coverage: Bob’s Insurance Card
The Coverage resource is like Bob’s insurance card in digital form. It tells us what insurance plan Bob has.
{
"resourceType": "Coverage",
"id": "cov-1",
"status": "active",
"beneficiary": { "reference": "Patient/bob-patient" },
"payor": [ { "reference": "Organization/payer-1" } ],
"class": [ { "type": { "text": "plan" }, "value": "Gold" } ]
}
Bob has the “Gold” plan from Acme Health Insurance. Nice choice, Bob! This is important because different plans cover different things.
Step 1: Is Bob’s Insurance Valid?
Before doing anything expensive, the hospital wants to make sure Bob’s insurance is active. They don’t want surprises later!
CoverageEligibilityRequest: “Hey, is Bob covered?”
The hospital sends a CoverageEligibilityRequest to the insurance company:
{
"resourceType": "CoverageEligibilityRequest",
"id": "cer-1",
"status": "active",
"purpose": ["validation"],
"patient": { "reference": "Patient/bob-patient" },
"created": "2025-08-08",
"enterer": { "reference": "Practitioner/prac-1" },
"provider": { "reference": "Organization/org-1" },
"insurer": { "reference": "Organization/payer-1" },
"insurance": [ { "coverage": { "reference": "Coverage/cov-1" } } ]
}
This is basically the hospital asking: “Bob says he has your Gold plan. Is that true? Is it still active?”
CoverageEligibilityResponse: “Yes, Bob’s covered!”
The insurance company responds with a CoverageEligibilityResponse:
{
"resourceType": "CoverageEligibilityResponse",
"id": "cersp-1",
"status": "active",
"purpose": ["validation"],
"patient": { "reference": "Patient/bob-patient" },
"created": "2025-08-08",
"request": { "reference": "CoverageEligibilityRequest/cer-1" },
"insurer": { "reference": "Organization/payer-1" },
"outcome": "complete",
"insurance": [ { "coverage": { "reference": "Coverage/cov-1" } } ],
"disposition": "Coverage is active; lab and procedure services covered"
}
Great news! The insurance company confirms:
- Yes, Bob has active coverage
- Lab services are covered
- Procedure services are covered
Step 2: Pre-Authorization for the Endoscopy
Bob needs an endoscopy to investigate his anemia. But endoscopies are expensive! The hospital wants to make sure the insurance will pay for it BEFORE they do it.
Pre-Authorization Claim: “Can we do this endoscopy?”
The hospital sends a pre-authorization Claim:
{
"resourceType": "Claim",
"id": "claim-preauth-1",
"status": "active",
"type": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/claim-type",
"code": "professional"
}
]
},
"use": "preauthorization",
"patient": { "reference": "Patient/bob-patient" },
"created": "2025-08-08",
"provider": { "reference": "Organization/org-1" },
"insurer": { "reference": "Organization/payer-1" },
"diagnosis": [
{
"sequence": 1,
"diagnosisReference": { "reference": "Condition/cond-1" }
}
],
"procedure": [
{
"sequence": 1,
"procedureCodeableConcept": {
"text": "Upper gastrointestinal endoscopy"
}
}
],
"supportingInfo": [
{
"sequence": 1,
"category": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/claiminformationcategory",
"code": "attachment"
}
]
},
"valueReference": { "reference": "DiagnosticReport/drpt-cbc-1" }
}
]
}
Notice the key parts:
- use: “preauthorization” (not an actual claim yet!)
- diagnosis: Links to Bob’s anemia condition
- procedure: The endoscopy they want to do
- supportingInfo: The diagnostic report proving Bob needs this
Pre-Authorization Response: “Yes, go ahead!”
The insurance company reviews and approves with a ClaimResponse:
{
"resourceType": "ClaimResponse",
"id": "claimresp-preauth-1",
"status": "active",
"type": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/claim-type",
"code": "professional"
}
]
},
"use": "preauthorization",
"patient": { "reference": "Patient/bob-patient" },
"created": "2025-08-08",
"insurer": { "reference": "Organization/payer-1" },
"request": { "reference": "Claim/claim-preauth-1" },
"outcome": "complete",
"disposition": "Procedure authorized for anemia diagnosis",
"preAuthRef": "AUTH-12345"
}
The insurance company says: “Yes, we reviewed the diagnostic report. The endoscopy is authorized for Bob’s anemia. Here’s your authorization number: AUTH-12345.”
Step 3: After the Procedure - Getting Paid
Now the procedure is done. Time for the hospital to get paid!
The Actual Claim: “We did the endoscopy, please pay us”
The hospital submits the actual claim:
{
"resourceType": "Claim",
"id": "claim-1",
"status": "active",
"type": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/claim-type", "code": "professional" } ] },
"use": "claim",
"patient": { "reference": "Patient/bob-patient" },
"created": "2025-08-08",
"provider": { "reference": "Organization/org-1" },
"insurer": { "reference": "Organization/payer-1" },
"priority": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/processpriority", "code": "normal" } ] },
"diagnosis": [ { "sequence": 1, "diagnosisReference": { "reference": "Condition/cond-1" } } ],
"procedure": [ { "sequence": 1, "procedureReference": { "reference": "Procedure/proc-1" } } ]
}
Key difference from pre-authorization:
- use: “claim” (this is the real deal)
- procedureReference: Points to the actual completed procedure
Claim Response: “Approved! We’ll pay”
The insurance company approves:
{
"resourceType": "ClaimResponse",
"id": "crsp-1",
"status": "active",
"type": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/claim-type", "code": "professional" } ] },
"use": "claim",
"patient": { "reference": "Patient/bob-patient" },
"created": "2025-08-08",
"insurer": { "reference": "Organization/payer-1" },
"request": { "reference": "Claim/claim-1" },
"outcome": "complete",
"disposition": "Claim approved"
}
Step 4: Show Me the Money!
Approval is great, but when does the money actually arrive?
PaymentNotice: “Check your bank!”
Maybe a month later, the insurance company sends a PaymentNotice:
{
"resourceType": "PaymentNotice",
"id": "pnotice-1",
"status": "active",
"created": "2025-08-09",
"provider": { "reference": "Organization/org-1" },
"payment": { "reference": "ClaimResponse/crsp-1" },
"paymentStatus": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/paymentstatus", "code": "paid" } ] },
"amount": {
"value": 580.00,
"currency": "USD"
}
}
“Hey Springfield Family Practice, we sent you $580 for that endoscopy. Check your bank!”
PaymentReconciliation: Monthly Settlements
At the end of the month, there’s a PaymentReconciliation to tie everything together:
{
"resourceType": "PaymentReconciliation",
"id": "precon-1",
"status": "active",
"period": { "start": "2025-08-01", "end": "2025-08-31" },
"created": "2025-09-01",
"paymentIssuer": { "reference": "Organization/payer-1" },
"requestor": { "reference": "Organization/org-1" },
"detail": [
{ "request": { "reference": "Claim/claim-1" }, "response": { "reference": "ClaimResponse/crsp-1" } }
]
}
This helps both sides reconcile their books at month’s end.
Step 5: Explaining It All to Bob
Bob gets an ExplanationOfBenefit (EOB) that breaks down all the financial details:
{
"resourceType": "ExplanationOfBenefit",
"id": "eob-1",
"status": "active",
"type": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/claim-type",
"code": "professional"
}
]
},
"use": "claim",
"patient": { "reference": "Patient/bob-patient" },
"created": "2025-08-09",
"insurer": { "reference": "Organization/payer-1" },
"provider": { "reference": "Organization/org-1" },
"claim": { "reference": "Claim/claim-1" },
"outcome": "complete",
"disposition": "Claim settled per contract",
"insurance": [
{
"focal": true,
"coverage": { "reference": "Coverage/cov-1" }
}
],
"item": [
{
"sequence": 1,
"productOrService": {
"text": "Upper gastrointestinal endoscopy"
},
"servicedDate": "2025-08-08",
"adjudication": [
{
"category": {
"coding": [
{
"code": "submitted"
}
]
},
"amount": {
"value": 800.00,
"currency": "USD"
}
},
{
"category": {
"coding": [
{
"code": "deductible"
}
]
},
"amount": {
"value": 100.00,
"currency": "USD"
}
},
{
"category": {
"coding": [
{
"code": "copay"
}
]
},
"amount": {
"value": 20.00,
"currency": "USD"
}
},
{
"category": {
"coding": [
{
"code": "benefit"
}
]
},
"amount": {
"value": 580.00,
"currency": "USD"
}
}
]
}
],
"total": [
{
"category": {
"coding": [
{
"code": "submitted"
}
]
},
"amount": {
"value": 800.00,
"currency": "USD"
}
}
],
"payment": {
"amount": {
"value": 580.00,
"currency": "USD"
}
}
}
This EOB tells Bob:
- The endoscopy cost $800 total
- His deductible took $100
- He has a $20 copay
- Insurance paid $580
- Bob owes $120 ($100 deductible + $20 copay)
The Timeline: When Does This All Happen?
Here’s something important: This financial workflow runs PARALLEL to the clinical workflow!
- At Registration: Coverage eligibility check
- Before Expensive Procedures: Pre-authorization
- After Service: Claim submission
- Days/Weeks Later: Claim approval
- Weeks/Month Later: Payment arrives
- Ongoing: EOBs help everyone track the money
Key Concepts to Remember
Claims Have Different Uses
The same Claim resource can be used for:
- preauthorization: “Can I do this?”
- claim: “I did this, pay me”
Everything Links Together
Notice how every resource references others:
- Claims reference the patient, provider, and insurer
- ClaimResponses reference the original claim
- PaymentNotices reference the claim response
- EOBs tie it all together
Status Matters
Every financial resource has a status:
- active: In process
- complete: All done
- cancelled: Never mind
Common Beginner Questions
Q: Why so many resources for one payment? A: Each resource serves a specific purpose in the workflow. It’s like getting a receipt, invoice, and payment confirmation when you buy something online.
Q: Do I need all these resources? A: It depends on your use case. Simple cash payments might only need a claim and payment. Complex insurance workflows need them all.
Q: What if there’s no insurance? A: You can still use these resources! The “payor” could be the patient themselves (self-pay).
The Beauty of FHIR Financial Resources
These resources create a complete audit trail:
- Who owes what
- What was authorized
- What was actually done
- What was paid
- What the patient owes
It’s all connected, traceable, and standardized. No more faxing EOBs or calling to check claim status!
What We’ve Learned
Bob’s journey from feeling tired to getting treated involved two parallel workflows:
- Clinical: Symptoms → Diagnosis → Treatment
- Financial: Coverage → Authorization → Billing → Payment
FHIR elegantly handles both, with resources that link together to tell the complete story.
Want to Learn More?
Check out the official FHIR specifications:
- Coverage Resource
- CoverageEligibilityRequest Resource
- CoverageEligibilityResponse Resource
- Claim Resource
- ClaimResponse Resource
- PaymentNotice Resource
- PaymentReconciliation Resource
- ExplanationOfBenefit Resource
Remember: Healthcare finance is complex, but FHIR breaks it down into manageable, interconnected pieces. Each resource has a job, and together they ensure everyone gets paid fairly and transparently.
Bob got his treatment, the hospital got paid, and everyone has a clear record of what happened. That’s the power of FHIR’s financial resources!