Bills API

Read a bill draft

Read a saved draft, its current revision, and its status.

GEThttps://app.mindbill.org/partner/v2/bill-drafts/{draftId}

Load a draft to resume editing, or check whether it became a bill (status submitted with submittedBillId).

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.

Path parameters

FieldTypeDescription
draftIdRequired
string

Bill draft identifier returned when the draft was saved.

1–255 characters

Examples

Server API key
curl 'https://app.mindbill.org/partner/v2/bill-drafts/billdraft_example' \
  --header "Authorization: Bearer $MINDBILL_API_KEY"
Browser session
curl 'https://app.mindbill.org/partner/v2/bill-drafts/billdraft_example' \
  --header "Authorization: Bearer $MINDBILL_BROWSER_TOKEN" \
  --header 'Origin: https://your-app.example'

Response

200 OK

Response
{
  "data": {
    "id": "billdraft_example",
    "externalId": "visit_2026_10_08_example",
    "status": "submitted",
    "revision": 3,
    "claimId": "clm_example",
    "patientId": "pat_example",
    "bill": {
      "billingMode": "professional",
      "claim": {
        "id": "clm_example"
      },
      "patient": {
        "id": "pat_example"
      },
      "service": {
        "date": "2026-10-08"
      },
      "diagnoses": [
        "M54.50"
      ],
      "serviceLines": [
        {
          "code": "99213",
          "units": 1,
          "charge": 150,
          "diagnosisPointers": [
            1
          ]
        },
        {
          "code": "97110",
          "units": 2,
          "charge": 120,
          "diagnosisPointers": [
            1
          ]
        }
      ]
    },
    "encounter": {
      "renderingProviderId": "rp_example",
      "placeOfServiceId": "loc_example",
      "claimId": "clm_example"
    },
    "serviceLineCount": 2,
    "submittedBillId": "bill_example",
    "createdAt": "2026-10-08T17:02:11.000Z",
    "updatedAt": "2026-10-08T17:31:02.000Z",
    "submittedAt": "2026-10-08T17:31:02.000Z"
  }
}
FieldTypeDescription
data.idRequired
string

Stable draft identifier.

data.externalIdRequired
string | null

Your reference supplied when the draft was created.

data.statusRequired
"draft" | "submitting" | "submitted"

draft is editable. submitting means a POST /bills holds it. submitted is final and carries submittedBillId.

data.revisionRequired
integer

Current revision. Send it as expectedRevision to update or delete, and as draft.revision to submit.

data.claimId / data.patientId
string | null

Existing claim and patient IDs referenced by the saved bill, when present.

data.billRequired
object

The bill input exactly as saved. It may be incomplete.

data.encounter
BillDraftEncounter | null

Saved IDs used to price the draft.

data.serviceLineCount
integer

Number of saved service lines.

data.submittedBillId
string | null

The bill created from this draft once submitted.

data.createdAt / data.updatedAtRequired
string

ISO 8601 timestamps.

data.submittedAt
string | null

When the draft became submitted.