---
title: "Read-only convert-to-invoice readiness for an appointment estimate. Converting is the last step before payment, so the gate blocks while any line is still Pending or a performed take-home label hasn't been filled. Drives the Convert button's disabled state + blockers popover (mirrors the BillableItem availability pre-check). Hospital sheets retain these execution gates even without an appointment billing association; standalone quotes are exempt — the quote itself becomes the bill."
method: GET
path: "/Estimates/{id}/convert-readiness"
tags: ["Estimates"]
---

# Read-only convert-to-invoice readiness for an appointment estimate. Converting is the last step before payment, so the gate blocks while any line is still Pending or a performed take-home label hasn't been filled. Drives the Convert button's disabled state + blockers popover (mirrors the BillableItem availability pre-check). Hospital sheets retain these execution gates even without an appointment billing association; standalone quotes are exempt — the quote itself becomes the bill.

`GET /Estimates/{id}/convert-readiness`

## Request

- Base URL: `https://api.clinicos.vet/backend/business`
- URL: `https://api.clinicos.vet/backend/business/Estimates/{id}/convert-readiness`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/docs/Estimates/:id/convert-readiness/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `id` string, required

## Response `200`

OK

- ConvertReadinessDto: Convert-to-invoice readiness for an appointment estimate. Converting is the last step before payment, so the bill should only be produced once every line is resolved (Performed/Declined) and every take-home label is filled. Standalone (no-appointment) estimates are always ready — the quote itself becomes the bill.
  - `requiresExecution` boolean: True for rendered-care plans (visit or hospital sheet), including visit-less and rolled-over stays.
  - `clinicalAppointmentId` string, nullable: The plan's visit or hospital admission visit; null for a genuinely visit-less stay.
  - `isReady` boolean
  - `blockers` ConvertReadinessBlockerDto[]
    - `lineId` string: The estimate line that isn't ready (jump-to-line target on the UI).
    - `name` string: Human-readable line description.
    - `reason` string: ConvertReadinessReasons code: LINE_PENDING | SIG_REQUIRED.

## Changes

- **2026-10-21** `85ee96c0bb96`: 6 info
  - added the optional property `clinicalAppointmentId` to the response with the `200` status (media type: text/plain)
  - added the optional property `clinicalAppointmentId` to the response with the `200` status (media type: application/json)
  - added the optional property `clinicalAppointmentId` to the response with the `200` status (media type: text/json)
  - added the optional property `requiresExecution` to the response with the `200` status (media type: text/plain)
  - …2 more

[Operation history](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/changes/Estimates/:id/convert-readiness/get.md)

---

[API](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1.md) - [All operations](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/revisions/099cf36186e0?raw)
