Skip to main content

Invoice line-item price resolution

Summary

Invoice line items now expose the billing-rule pricing snapshot stored when the line item price was resolved. Request LineItem.priceResolution from either invoice or invoices to see the applied price rule, resolution context, price before adjustments, resolved price, and ordered adjustments.

This is a stored invoice snapshot. It does not recalculate the price or fetch current billing profiles, clinicians, locations, payers, or rules.

Query example

query InvoicePriceResolution($invoiceId: ID!) {
invoice(id: $invoiceId) {
id
lineItems {
id
price
priceResolution {
priceRuleId
billingProfile {
id
name
}
clinician {
id
name
}
location {
id
name
}
payer {
id
name
scope
}
priceBeforeAdjustments
resolvedPrice
adjustments {
priceAdjustmentRuleId
name
priceBefore
priceAfter
}
manuallyChangedPrice
}
}
}
}

The invoices query supports the same selection under invoices.data.lineItems.

Response behaviour

  • priceResolution is null for legacy or manually priced line items that do not have a stored billing-rule pricing snapshot.
  • priceBeforeAdjustments is the stored pre-adjustment value and can be null when that value was not recorded.
  • adjustments preserves the stored adjustment order and returns an empty list when the snapshot has no adjustments.
  • manuallyChangedPrice is true when the current line-item price differs from the stored resolvedPrice.
  • All identifiers are returned as GraphQL ID strings.

Integration guidance

Request priceResolution only when your integration needs the pricing audit trail. Existing invoice queries are unchanged when the field is omitted.

This release is additive. Refresh generated GraphQL clients or schema snapshots that include the LineItem type.

See also