xCaliber healthCare Data Mesh

Invoice

Overview

The Invoice API empowers healthcare developers to seamlessly manage and retrieve invoicing information, providing a standardized interface for efficient integration of financial transactions into clinical workflows. By leveraging this API, developers can optimize billing processes, streamline revenue cycle management, and ensure accurate financial tracking for improved administrative efficiency and financial transparency in healthcare settings.

Use Cases

  • Patient Billing - Generate invoices with itemized services, adjustments and payments due.
  • Claims Processing - Create invoices to accompany claim submissions to payers.
  • Payment Reconciliation - Apply payments and calculate balances owed on invoices.
  • Tax Reporting - Compile invoices to produce tax-related financial documents.
  • Revenue Cycle Analysis - Extract invoice data to analyze financial cycle, cash flow.
  • Patient Sites - Enable patient portals to display invoices for transparency.
  • Payment Plans - Facilitate payment installment plans and payment terms.
  • Collections Tracking - Manage overdue invoices for patient follow-ups improving collections.
  • Contract Analysis - Compare contracted rates vs billed invoice amounts by services.
  • Reporting Compliance - Archive compressed invoice documents in clinical data repository.

EHR Data Model

EHRSupported?Mapped Source Object
AthenaN/A
ElationBill
EpicN/A

Object Definition

{
  "resourceType": "Invoice",
  "id": "example",
  "text": {
    "status": "generated",
    "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Example of Invoice</div>"
  },
  "identifier": [
    {
      "system": "http://myHospital.org/Invoices",
      "value": "654321"
    }
  ],
  "status": "issued",
  "subject": {
    "reference": "Patient/example"
  },
  "date": "2017-01-25T08:00:00+01:00",
  "participant": [
    {
      "role": {
        "coding": [
          {
            "system": "http://snomed.info/sct",
            "code": "17561000",
            "display": "Cardiologist"
          }
        ]
      },
      "actor": {
        "reference": "Practitioner/example"
      }
    }
  ],
  "issuer": {
    "identifier": {
      "system": "http://myhospital/NamingSystem/departments",
      "value": "CARD_INTERMEDIATE_CARE"
    }
  },
  "account": {
    "reference": "Account/example"
  },
  "totalNet": {
    "value": 40,
    "currency": "EUR"
  },
  "totalGross": {
    "value": 48,
    "currency": "EUR"
  },
  "meta": {
    "tag": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/v3-ActReason",
        "code": "HTEST",
        "display": "test health data"
      }
    ]
  }
}

Data Fields

Data FieldTypeDescription
resourceTypeInvoiceThis is a Invoice resource
ididThe logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
metaMetaThe metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
implicitRulesuriA reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
languagecodeThe base language in which the resource is written.
textNarrativeA human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.
containedBackboneElementThese resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.
extensionExtensionMay be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
modifierExtensionExtensionMay be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
identifierIdentifierIdentifier of this Invoice, often used for reference in correspondence about this invoice or for tracking of payments.
statuscodeThe current state of the Invoice.
cancelledReasonstringIn case of Invoice cancellation a reason must be given (entered in error, superseded by corrected invoice etc.).
typeCodeableConceptType of Invoice depending on domain, realm an usage (e.g. internal/external, dental, preliminary).
subjectReferenceThe individual or set of individuals receiving the goods and services billed in this invoice.
recipientReferenceThe individual or Organization responsible for balancing of this invoice.
datedateTimeDate/time(s) of when this Invoice was posted.
participantBackboneElementIndicates who or what performed or participated in the charged service.
participant.idstringUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
participant.extensionExtensionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
participant.modifierExtensionExtensionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
participant.roleCodeableConceptDescribes the type of involvement (e.g. transcriptionist, creator etc.). If the invoice has been created automatically, the Participant may be a billing engine or another kind of device.
participant.actorReferenceThe device, practitioner, etc. who performed or participated in the service.
issuerReferenceThe organizationissuing the Invoice.
accountReferenceAccount which is supposed to be balanced with this Invoice.
lineItemBackboneElementEach line item represents one charge for goods and services rendered. Details such as date, code and amount are found in the referenced ChargeItem resource.
lineItem.idstringUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
lineItem.extensionExtensionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
lineItem.modifierExtensionExtensionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
lineItem.sequencepositiveIntSequence in which the items appear on the invoice.
lineItem.chargeItemReferenceReferenceThe ChargeItem contains information such as the billing code, date, amount etc. If no further details are required for the lineItem, inline billing codes can be added using the CodeableConcept data type instead of the Reference.
lineItem.chargeItemCodeableConceptCodeableConceptThe ChargeItem contains information such as the billing code, date, amount etc. If no further details are required for the lineItem, inline billing codes can be added using the CodeableConcept data type instead of the Reference.
lineItem.priceComponentBackboneElementThe price for a ChargeItem may be calculated as a base price with surcharges/deductions that apply in certain conditions. A ChargeItemDefinition resource that defines the prices, factors and conditions that apply to a billing code is currently under development. The priceComponent element can be used to offer transparency to the recipient of the Invoice as to how the prices have been calculated.
lineItem.priceComponent.idstringUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
lineItem.priceComponent.extensionExtensionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
lineItem.priceComponent.modifierExtensionExtensionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
lineItem.priceComponent.typecodeThis code identifies the type of the component.
lineItem.priceComponent.codeCodeableConceptA code that identifies the component. Codes may be used to differentiate between kinds of taxes, surcharges, discounts etc.
lineItem.priceComponent.factordecimalThe factor that has been applied on the base price for calculating this component.
lineItem.priceComponent.amountMoneyThe amount calculated for this component.
totalPriceComponentBackboneElementThe total amount for the Invoice may be calculated as the sum of the line items with surcharges/deductions that apply in certain conditions. The priceComponent element can be used to offer transparency to the recipient of the Invoice of how the total price was calculated.
totalPriceComponent.idstringUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
totalPriceComponent.extensionExtensionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
totalPriceComponent.modifierExtensionExtensionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
totalPriceComponent.typecodeThis code identifies the type of the component.
totalPriceComponent.codeCodeableConceptA code that identifies the component. Codes may be used to differentiate between kinds of taxes, surcharges, discounts etc.
totalPriceComponent.factordecimalThe factor that has been applied on the base price for calculating this component.
totalPriceComponent.amountMoneyThe amount calculated for this component.
totalNetMoneyInvoice total , taxes excluded.
totalGrossMoneyInvoice total, tax included.
paymentTermsmarkdownPayment details such as banking details, period of payment, deductibles, methods of payment.
noteAnnotationComments made about the invoice by the issuer, subject, or other participants.

Extensions

NameURL
CREATED_DATEhttp://xcaliber-fhir/structureDefinition/created-date
DELETED_DATEhttp://xcaliber-fhir/structureDefinition/deleted-date
IDhttp://xcaliber-fhir/structureDefinition/id
METADATAhttp://xcaliber-fhir/structureDefinition/metadata
MODIFIED_DATEhttp://xcaliber-fhir/structureDefinition/modified-date
REFhttp://xcaliber-fhir/structureDefinition/ref
PAYMENT_DATEhttp://xcaliber-fhir/structureDefinition/payment-date
REFERRING_PHYSICIANhttp://xcaliber-fhir/structureDefinition/referring-physician
SERVICE_DATEhttp://xcaliber-fhir/structureDefinition/service-date
SIGNED_DATEhttp://xcaliber-fhir/structureDefinition/signed-date
UNIT_CHARGEhttp://xcaliber-fhir/structureDefinition/unit-charge
UNITShttp://xcaliber-fhir/structureDefinition/units

Operations & APIs

Invoice-GET

Invoice-POST

Invoice ID-GET

Invoice ID-PUT

Invoice ID-DELETE

Invoice Export-POST