Bills API

Quote a California encounter

Estimate statutory fees and assess supported same-day coding edits across multiple service lines.

POSThttps://app.mindbill.org/partner/v2/fee-quotes/ca/claim

Calculate a complete encounter before creating a professional bill, or power the FeeScheduleCalculator component. The browser client's quoteClaimFees() unwraps data.

AuthenticationServer API key or browser session + Origin
Permissions by credentialServer: bills:read · Browser: bills:read
IdempotencyNot required

Use this URL with a server API key or a browser session and its exact allowed Origin. Both credentials use the same request and response contract. See the component API inventory for exact paths and SDK methods.

Request body

FieldTypeDescription
linesRequired
object[]

1–100 lines for one patient and one provider/group. Each date is evaluated separately.

lines[].idRequired
string

Unique line identifier, up to 100 characters.

lines[].codeRequired
string

Five-character procedure code.

lines[].dateOfServiceRequired
string

Actual calendar date, YYYY-MM-DD.

lines[].units
number

Positive quantity, at most 10,000; some categories require additional unit context.

lines[].chargeCents
integer

Positive submitted line charge, up to 100,000,000 cents.

lines[].modifiers
string[]

Up to four distinct two-character modifiers. Do not add a modifier solely to bypass an edit.

lines[].serviceZip / serviceCounty
string

Service locality inputs. ZIP accepts 5 digits or ZIP+4. Required locality depends on category and date.

lines[].physicianContext
object

Provider kind, two-digit placeOfService, standaloneService, globalPeriodApplies, and hpsaBonusEligible. Supply telehealthModality for audio/video context where applicable. See OpenAPI for specialty context schemas.

completeDateOfServiceContextRequired
boolean

Whether all related services for these dates and this patient/provider group are included. Derive from encounter records; no separate user checkbox is necessary.

ordinaryMultipleSurgeryContext
boolean

Optional confirmation that the submitted encounter meets the supported ordinary multiple-surgery context. Do not infer this from codes alone.

Examples

Synthetic office visit
curl 'https://app.mindbill.org/partner/v2/fee-quotes/ca/claim' \
  --header "Authorization: Bearer $MINDBILL_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "completeDateOfServiceContext": true,
  "lines": [
    {
      "id": "office-visit",
      "code": "99213",
      "dateOfService": "2026-08-25",
      "units": 1,
      "chargeCents": 15000,
      "modifiers": [],
      "serviceZip": "90012",
      "physicianContext": {
        "providerKind": "physician",
        "placeOfService": "11",
        "standaloneService": true,
        "globalPeriodApplies": false,
        "hpsaBonusEligible": false
      }
    }
  ]
}'

Response

200 OK

Response
// Response envelope; full types are exported by @mindbill/browser.
{ data: CaClaimFeeQuoteResult }

// Never treat a resolved subtotal as a complete allowance.
if (data.status === "requires_review") {
  // data.totals.estimatedPayableCents === null
  showReview(data.lines, data.claimEdits, data.limitations);
} else {
  showEstimate(data.totals.estimatedPayableCents);
}
FieldTypeDescription
data.status
"priced" | "requires_review" | "not_separately_payable"

Final claim assessment after line calculations and supported claim edits.

data.lines[]
object[]

Line id, normalized input, base quote, final assessment, findings, and any paymentAdjustment. A priced base quote can still have a requires_review final assessment.

data.lines[].quote
object

Category-specific status, amounts when priced, calculation details, provenance, and notes or review reason.

data.lines[].findings[]
object[]

Coding findings with code, lineIds, message, and optional citationUrl and edit details.

data.totals
object

submittedChargeCents, pricedSubtotalCents, estimatedPayableCents, scheduleMaximumCents, and reviewLineCount. Whole-claim payable and schedule totals are null if review is unresolved. The priced subtotal includes resolved lines only.

data.claimEdits[]
object[]

Per-date screening with lineIds, status, findings, optional reason/provenance, and supported date intervals. Status is evaluated, requires_review, source_unavailable, or not_applicable; not_applicable does not guarantee the absence of other coding rules.

data.limitations
string[]

Context and coverage limitations to display with the result.