Fee quotes API

Quote expected payment for a visit

Expected California OMFS payment per line for one treatment visit, priced exactly like a saved treatment bill.

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

Show Charge, Expected (OMFS), and Difference while a biller enters a treatment bill. Provider type, place of service, practice charges, and payer come from the organization's saved records, so you send IDs instead of clinical context. ConnectedTreatmentBillForm calls this for you.

AuthenticationServer API key or browser session + Origin
Permissions by credentialServer: bills:read · Browser: bills:read
IdempotencyNot required
Organization capabilitytreatmentBilling must be enabled

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
renderingProviderIdRequired
string

Saved rendering provider (from GET /rfas/creation-context or the organization billing profile).

placeOfServiceIdRequired
string

Saved service location ID (organization billing profile locations[].id).

dateOfServiceRequired
string

Visit date, YYYY-MM-DD.

claimId
string

Optional saved claim; its claims administrator is used and prior LC 4604.5 therapy visits are counted.

billingProviderId
string

Optional saved billing provider; the organization default is used when omitted.

lines[]Required
object[]

1–100 lines of the visit, priced together.

lines[].idRequired
string

Caller line ID, unique in the request.

lines[].codeRequired
string

Five-character procedure code, or an ML medical-legal code (listed in medicalLegalLineIds and not priced).

lines[].unitsRequired
number

Positive units, at most 10,000.

lines[].modifiers
string[]

Up to four two-character modifiers.

lines[].dateOfService / dateOfServiceEnd
string

Line dates when they differ from the visit date.

lines[].chargeCents
integer

Billed charge in cents; returned with the difference.

lines[].feeContext / drug
object

Optional specialty context (anesthesia, therapy, imaging, equipment) and billed drug identity (ndcNumber, metricQuantity, unitOfMeasure), as on bill service lines.

Examples

Server API key
curl 'https://app.mindbill.org/partner/v2/fee-quotes/encounter' \
  --header "Authorization: Bearer $MINDBILL_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "claimId": "clm_example",
  "renderingProviderId": "rp_example",
  "placeOfServiceId": "loc_example",
  "dateOfService": "2026-09-18",
  "lines": [
    {
      "id": "line-1",
      "code": "99213",
      "units": 1,
      "modifiers": [
        "25"
      ],
      "chargeCents": 18000
    },
    {
      "id": "line-2",
      "code": "97110",
      "units": 2,
      "chargeCents": 12000
    }
  ]
}'
Browser session
curl 'https://app.mindbill.org/partner/v2/fee-quotes/encounter' \
  --header "Authorization: Bearer $MINDBILL_BROWSER_TOKEN" \
  --header 'Origin: https://your-app.example' \
  --header 'Content-Type: application/json' \
  --data '{
  "claimId": "clm_example",
  "renderingProviderId": "rp_example",
  "placeOfServiceId": "loc_example",
  "dateOfService": "2026-09-18",
  "lines": [
    {
      "id": "line-1",
      "code": "99213",
      "units": 1,
      "modifiers": [
        "25"
      ],
      "chargeCents": 18000
    },
    {
      "id": "line-2",
      "code": "97110",
      "units": 2,
      "chargeCents": 12000
    }
  ]
}'

Response

200 OK

Response
{
  "data": {
    "status": "priced",
    "lines": [
      {
        "id": "line-1",
        "assessment": "priced",
        "quote": { "status": "priced", "amountCents": 9264, "scheduleMaximumCents": 9264, "chargeAmountCents": 18000 },
        "findings": [{ "code": "modifier_conditional_estimate", "message": "Modifier 25 requires a significant, separately identifiable visit in the record." }],
        "displayNotes": ["Modifier 25 requires a separately identifiable visit."]
      },
      { "id": "line-2", "assessment": "priced", "quote": { "status": "priced", "amountCents": 8113, "scheduleMaximumCents": 8113, "chargeAmountCents": 12000 }, "findings": [], "displayNotes": [] }
    ],
    "totals": { "submittedChargeCents": 30000, "pricedSubtotalCents": 17377, "estimatedPayableCents": 17377, "scheduleMaximumCents": 17377, "reviewLineCount": 0 },
    "visitNotes": ["Therapy visit 3 of 24 under LC 4604.5 for this claim."],
    "medicalLegalLineIds": []
  }
}
FieldTypeDescription
data.statusRequired
"priced" | "requires_review" | "not_separately_payable" | "by_report"

Visit-level assessment.

data.lines[].assessmentRequired
same values as status

A line that is not priced has no expected amount and must be reviewed. Never substitute the charge.

data.lines[].quoteRequired
object

status, amountCents, scheduleMaximumCents, chargeAmountCents, basis, calculation, provenance, and notes when priced; reason otherwise.

data.lines[].paymentAdjustment
object

Multiple-surgery or endoscopy adjustment; when present its amountCents is the expected payment.

data.lines[].findings[] / displayNotes[]Required
object[] / string[]

Coding findings (code, message, citationUrl) and short biller-facing notes for the line.

data.totals
object

submittedChargeCents, pricedSubtotalCents, estimatedPayableCents, scheduleMaximumCents, reviewLineCount. estimatedPayableCents is null while any line needs review.

data.visitNotesRequired
string[]

Visit-wide notes such as per-visit caps and LC 4604.5 visit counts. Show once.

data.medicalLegalLineIdsRequired
string[]

Lines with ML codes, which the treatment schedule does not price.

data.claimEdits / limitations
object[]

Same-day edit screening and context limitations.