Estimates

Record the client's acceptance of a presented plan WITHOUT converting it to an invoice. The in-visit present flow uses this: the client approves the plan (consent + optional signature + chosen tier) up front; the bill is created later by convert-to-invoice once services are performed. Sets status Accepted + tier and logs a PlanAccepted consent event; leaves the estimate un-converted (no InvoiceId).

Changed on
post/Estimates/{id}/accept

Request

Path parameters

idstring required

Request body

selectedTierstring
consentMethodstring

How consent was captured. "InApp" (tap-accept) or "Signature" (+ signature fields).

signatureDatastring nullable

Base64-encoded PNG of the signature (required when ConsentMethod=Signature).

signedNamestring nullable

Typed name the signer provided (required when ConsentMethod=Signature).

disclaimerVersionIdsstring[] nullable

Disclaimer version ids the client was shown on the sign step (P-ITE-69). When the client signs, these must match the clinic's live EstimatePresent blocks exactly, or the accept is refused with 409 DISCLAIMERS_CHANGED and the current blocks so the screen can re-render.

Response

OK

idstring
estimateNumberstring
clientIdstring nullable
clientNamestring nullable
patientIdstring nullable
patientNamestring nullable
appointmentIdstring nullable
statusstring
selectedTierstring nullable
invoiceIdstring nullable
notesstring nullable
createdByIdstring nullable
createdByNamestring nullable
createdAtstring date-time
updatedAtstring date-time

Changes

    • info

      added the optional property // to the response with the status (media type: text/plain)

    • info

      added the optional property // to the response with the status (media type: application/json)

    • info

      added the optional property // to the response with the status (media type: text/json)

    • info

      added the optional property // to the response with the status (media type: text/plain)

    • info

      added the optional property // to the response with the status (media type: application/json)

    • info

      added the optional property // to the response with the status (media type: text/json)

    • info

      added the optional property // to the response with the status (media type: text/plain)

    • info

      added the optional property // to the response with the status (media type: application/json)

    • info

      added the optional property // to the response with the status (media type: text/json)

    • info

      added the optional property // to the response with the status (media type: text/plain)

    • info

      added the optional property // to the response with the status (media type: application/json)

    • info

      added the optional property // to the response with the status (media type: text/json)

    • info

      added the optional property // to the response with the status (media type: text/plain)

    • info

      added the optional property // to the response with the status (media type: application/json)

    • info

      added the optional property // to the response with the status (media type: text/json)

    • info

      added the optional property // to the response with the status (media type: text/plain)

    • info

      added the optional property // to the response with the status (media type: application/json)

    • info

      added the optional property // to the response with the status (media type: text/json)

    • info

      added the optional property to the response with the status (media type: text/plain)

    • info

      added the optional property to the response with the status (media type: application/json)

    • info

      added the optional property to the response with the status (media type: text/json)

    • info

      added the optional property // to the response with the status (media type: text/plain)

    • info

      added the optional property // to the response with the status (media type: application/json)

    • info

      added the optional property // to the response with the status (media type: text/json)