ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

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

FieldTypeCardinalityRole
urluri0..1Canonical URL.
identifierIdentifier[]0..*Business identifiers.
versionstring0..1Version.
titlestring0..1Human title.
derivedFromUriuri[]0..*Source reference (CCAM, CPT…).
partOfcanonical[]0..*Parent reference.
replacescanonical[]0..*Replaces a former version.
statuscode1..1draft | active | retired | unknown.
codeCodeableConcept0..1Act code.
instanceReference(Medication | Device | Substance)[]0..*Physical product priced.
applicabilityBackboneElement[]0..*FHIRPath/CQL applicability conditions.
propertyGroupBackboneElement[]0..*Pricing component groups.

JSON example

json chargeitemdefinition-example.json
{
  "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.