---
title: "Telehealth visit status and appointment time for one order."
method: GET
path: "/api/v1/orders/{id}/visit-status"
tags: ["Orders"]
---

# Telehealth visit status and appointment time for one order.

`GET /api/v1/orders/{id}/visit-status`

## Request

- Base URL: `https://api-dev.fusehealth.com`
- URL: `https://api-dev.fusehealth.com/api/v1/orders/{id}/visit-status`
- Auth: API key in header `x-api-key`

Whether the patient has booked their live (synchronous) visit, has not booked yet, or did not attend — plus the appointment time when one is scheduled. This is the read side of the `appointment.scheduled` / `appointment.cancelled` webhooks: those notify you that something changed and carry ids only, and this endpoint tells you what the state now is.

`visitStatus` is a FUSE-defined value, deliberately independent of any doctor network's internal naming, so it is stable across changes FUSE makes behind the scenes. Treat it as a closed set and handle an unrecognised value defensively.

Before chasing a patient to book, check `bookingRequired`. Asynchronous treatments never require a live appointment and rest permanently at `not_booked` — that is normal, not an outstanding task. `bookingRequired` is `null` when the order predates visit-type resolution (unknown, not "no appointment needed").

This endpoint exposes NO clinical content: no prescriber name, NPI or phone, no prescribed medications, no visit outcome, and no lab results. A referred visit is already visible via the order's own `status`.

Requires the `v1_fulfillment` endpoint group to be enabled for your clinic (contact FUSE). Returns 404 for an unknown, malformed, or another clinic's order id.

## Path parameters

- `id` string, uuid, required

## Response `200`

Success

- object
  - `success` boolean
  - `data` object
    - `orderId` string, uuid
    - `visitStatus` 'not_booked' | 'booked' | 'no_show' | 'concluded' | 'cancelled': `not_booked` — no live appointment is confirmed. Either the patient has not booked yet, or the treatment is asynchronous in their state and never requires one (check `bookingRequired`). `booked` — a live visit is confirmed; see `scheduledAt`. `no_show` — the patient did not attend the confirmed appointment. `concluded` — the visit is complete (consult finished and/or prescription written); no further patient action is needed. `cancelled` — the visit was cancelled; FUSE cancels the order alongside it, so the order's own status reflects it too.
    - `bookingRequired` boolean, nullable: Whether this order's visit type requires a live appointment at all. `false` for asynchronous treatments. `null` when the order predates visit-type resolution — unknown, NOT "no appointment needed".
    - `scheduledAt` string, date-time, nullable: The appointment time, when the doctor network supplied one. Retained after a `no_show` (it is the appointment that was missed). `null` whenever no appointment has been scheduled.
    - `lastSyncedAt` string, date-time, nullable: When the doctor network last sent FUSE any update about this visit. Use it to tell "no appointment has been booked" apart from "we have not heard anything recently" — a stale value on an order you expect to be progressing is worth raising with FUSE.

## Other responses

- `401`: Missing, invalid, inactive, or expired API key (or JWT)
- `403`: The `v1_fulfillment` endpoint group is not enabled for your clinic
- `404`: Order not found. Returned for an unknown id, a malformed (non-UUID) id, and an id belonging to another clinic — the three are deliberately indistinguishable.

---

[API](https://skmtc.dev/fusehealth/apis/fuse-brand-api-external.md) · [All operations](https://skmtc.dev/fusehealth/apis/fuse-brand-api-external/llms.txt) · [OpenAPI document](https://skmtc.dev/fusehealth/apis/fuse-brand-api-external/revisions/50821832728c?raw)
