Skip to main content

Claims Service — Event Schemas

Status: populated Owner: TBD Last updated: 2026-04-18 Companion: SERVICE_OVERVIEW · Service Template · 02 DDD

Events Produced

All events use CloudEvents v1.0 envelope with tenantid, actorid, and correlationid extensions.

Event TypeNATS SubjectDescription
claims.claim.created.v1claims.claim.createdNew claim assembled from encounter
claims.claim.submitted.v1claims.claim.submittedClaim sent to clearinghouse/payer
claims.claim.accepted.v1claims.claim.acceptedPositive acknowledgement received
claims.claim.denied.v1claims.claim.deniedDenial received via remittance
claims.claim.paid.v1claims.claim.paidFull payment applied from ERA
claims.claim.appealed.v1claims.claim.appealedAppeal filed for denied claim
claims.remittance.received.v1claims.remittance.receivedERA received and parsed
claims.remittance.applied.v1claims.remittance.appliedERA allocations posted to claims
claims.coverage.created.v1claims.coverage.createdNew coverage record created
claims.coverage.updated.v1claims.coverage.updatedCoverage record modified
claims.eligibility.verified.v1claims.eligibility.verifiedReal-time eligibility check complete
claims.auth.approved.v1claims.auth.approvedPrior authorization approved by payer

Events Consumed

Event TypeSource ServiceWhy
billing.charge.finalized.v1billing-serviceTrigger claim assembly when charges are finalized for encounter
scheduling.encounter.closed.v1scheduling-serviceSignal that encounter documentation is complete; eligible for claim assembly

Payload Schemas

claims.claim.created.v1

{
"specversion": "1.0",
"id": "01HXY...",
"source": "claims-service",
"type": "claims.claim.created.v1",
"datacontenttype": "application/json",
"time": "2026-04-18T10:00:00Z",
"tenantid": "tenant_acme",
"actorid": "usr_billing_staff_01",
"correlationid": "corr_01HXY...",
"data": {
"claimId": "clm_01HXY...",
"patientId": "pat_01HXY...",
"encounterId": "enc_01HXY...",
"coverageId": "cov_01HXY...",
"totalBilled": { "amount": 275.00, "currency": "USD" },
"diagnosisCodes": ["J06.9"],
"lineItemCount": 2
}
}

claims.claim.submitted.v1

{
"specversion": "1.0",
"id": "01HXY...",
"source": "claims-service",
"type": "claims.claim.submitted.v1",
"datacontenttype": "application/json",
"time": "2026-04-18T10:01:00Z",
"tenantid": "tenant_acme",
"actorid": "system",
"correlationid": "corr_01HXY...",
"data": {
"claimId": "clm_01HXY...",
"channel": "x12_837",
"clearinghouseRef": "CHX-2026-00123",
"submittedAt": "2026-04-18T10:01:00Z"
}
}

claims.claim.denied.v1

{
"specversion": "1.0",
"id": "01HXY...",
"source": "claims-service",
"type": "claims.claim.denied.v1",
"datacontenttype": "application/json",
"time": "2026-04-18T15:00:00Z",
"tenantid": "tenant_acme",
"actorid": "system",
"correlationid": "corr_01HXY...",
"data": {
"claimId": "clm_01HXY...",
"denialId": "dnl_01HXY...",
"denialCode": "CO-97",
"denialReason": "Payment included in another claim",
"remittanceId": "rem_01HXY...",
"appealDeadline": "2026-05-18"
}
}

claims.remittance.applied.v1

{
"specversion": "1.0",
"id": "01HXY...",
"source": "claims-service",
"type": "claims.remittance.applied.v1",
"datacontenttype": "application/json",
"time": "2026-04-18T16:00:00Z",
"tenantid": "tenant_acme",
"actorid": "system",
"correlationid": "corr_01HXY...",
"data": {
"remittanceId": "rem_01HXY...",
"payerId": "pyr_01HXY...",
"totalPaid": { "amount": 198.50, "currency": "USD" },
"claimsAffected": [
{ "claimId": "clm_01HXY...", "amountPaid": 198.50, "adjustments": [...] }
],
"eobIds": ["eob-fhir-id-1"]
}
}

claims.coverage.created.v1

{
"specversion": "1.0",
"id": "01HXY...",
"source": "claims-service",
"type": "claims.coverage.created.v1",
"datacontenttype": "application/json",
"time": "2026-04-18T09:00:00Z",
"tenantid": "tenant_acme",
"actorid": "usr_registration_01",
"correlationid": "corr_01HXY...",
"data": {
"coverageId": "cov_01HXY...",
"patientId": "pat_01HXY...",
"payerId": "pyr_01HXY...",
"priority": "primary",
"effectiveFrom": "2026-01-01",
"effectiveTo": null
}
}

claims.eligibility.verified.v1

{
"specversion": "1.0",
"id": "01HXY...",
"source": "claims-service",
"type": "claims.eligibility.verified.v1",
"datacontenttype": "application/json",
"time": "2026-04-18T08:00:00Z",
"tenantid": "tenant_acme",
"actorid": "system",
"correlationid": "corr_01HXY...",
"data": {
"eligibilityId": "elig_01HXY...",
"coverageId": "cov_01HXY...",
"patientId": "pat_01HXY...",
"status": "active",
"channel": "x12_270",
"expiresAt": "2026-04-19T00:00:00Z"
}
}

NATS JetStream Configuration

stream:
name: CLAIMS
subjects:
- claims.>
retention: limits
max_age: 168h # 7 days
max_bytes: 10GB
storage: file
replicas: 3
discard: old

consumers:
- name: billing-service-sub
filter_subject: claims.remittance.applied.>
deliver_policy: all
ack_policy: explicit
max_deliver: 5
ack_wait: 30s

- name: patient-portal-sub
filter_subject: claims.coverage.> claims.claim.paid.> claims.remittance.applied.>
deliver_policy: all
ack_policy: explicit
max_deliver: 5
ack_wait: 30s

- name: population-health-sub
filter_subject: claims.claim.denied.> claims.remittance.applied.>
deliver_policy: all
ack_policy: explicit
max_deliver: 5
ack_wait: 30s