ChargeItemDefinition — Pricing reference
The pricing card for an act or product: applicability, base price, taxes, discounts, combination rules. CPT in the US, CCAM in France, EBM in Germany, NABM in Switzerland — captured as FHIR.
Purpose of the resource
ChargeItemDefinition codifies how to bill an act or product. It carries the code of the act (CPT, CCAM, NGAP, EBM, NABM), its applicability conditions (FHIRPath or CQL), its price scheme (base, surcharge, discount, tax) and combination rules with other acts (incompatibilities, modifiers).
It is consumed by ChargeItem (the billable instance for a patient on a date), which computes the final amount from the definition.
Key fields
| Field | Type | Cardinality | Role |
|---|---|---|---|
url | uri | 0..1 | Canonical URL. |
identifier | Identifier[] | 0..* | Business identifiers. |
version | string | 0..1 | Version. |
title | string | 0..1 | Human title. |
derivedFromUri | uri[] | 0..* | Source reference (CCAM, CPT…). |
partOf | canonical[] | 0..* | Parent reference. |
replaces | canonical[] | 0..* | Replaces a former version. |
status | code | 1..1 | draft | active | retired | unknown. |
code | CodeableConcept | 0..1 | Act code. |
instance | Reference(Medication | Device | Substance)[] | 0..* | Physical product priced. |
applicability | BackboneElement[] | 0..* | FHIRPath/CQL applicability conditions. |
propertyGroup | BackboneElement[] | 0..* | Pricing component groups. |
JSON example
{
"resourceType": "ChargeItemDefinition",
"id": "ebm-30110",
"url": "http://example.org/ChargeItemDefinition/ebm-30110",
"version": "5.0.0",
"name": "EBM30110",
"title": "Diabetes consultation EBM 30110",
"status": "active",
"experimental": false,
"date": "2026-05-15",
"publisher": "Example Insurance Authority",
"code": {
"coding": [{
"system": "http://example.org/ebm",
"code": "30110",
"display": "Diabetes consultation"
}]
},
"applicability": [{
"expression": {
"language": "text/fhirpath",
"expression": "%context.code.exists()"
}
}],
"propertyGroup": [{
"priceComponent": [{
"type": "base",
"code": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/invoice-priceComponentType",
"code": "base"
}]
},
"amount": {
"value": 22.50,
"currency": "EUR"
}
}]
}]
} Common pitfalls
- Missing currency — always specify EUR, USD, CHF…
- Empty applicability — the rule applies to everything, over-billing.
- Poor version handling — without
version, financial audit is impossible.
Related resources
- ChargeItem — billable instance.
- Claim — reimbursement request.
- Account — patient account.
- InsurancePlan.
- FHIR R5 hub.