---
title: "Set (or, with a null status, clear) the confirmation state by hand — e.g. the client confirmed on the phone. 409 for a cancelled appointment."
method: PUT
path: "/appointments/{id}/confirmation"
tags: ["AppointmentConfirmation"]
---

# Set (or, with a null status, clear) the confirmation state by hand — e.g. the client confirmed on the phone. 409 for a cancelled appointment.

`PUT /appointments/{id}/confirmation`

## Request

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

## Path parameters

- `id` string, required

## Request body

- SetAppointmentConfirmationRequest: Staff setting an appointment's confirmation state by hand from the schedule (ITE-1326).
  - `status` string, nullable: "Confirmed" | "Unconfirmed" | "Declined" | "RescheduleRequested", or null to clear it back to "no confirmation requested".
  - `method` string, nullable: "Phone" | "InPerson" | "Text" | "Email" | "Other". Defaults to Phone when a status is set without one; ignored when clearing.
  - `note` string, nullable: Optional free text, at most 500 characters.

## Response `200`

OK

- AppointmentConfirmationDto: An appointment's confirmation state and who last set it. Every field but string AppointmentConfirmationDto.AppointmentId is null when no confirmation was ever requested; the audit fields are also null on statuses set before ITE-1326 recorded them.
  - `appointmentId` string
  - `status` string, nullable: Same values as AppointmentSummaryForScheduleDto.ConfirmationStatus.
  - `method` string, nullable: A staff method ("Phone", "InPerson", "Text", "Email", "Other"), or "ClientResponse" (the client answered the confirmation form) / "ConfirmationRequest" (a form was sent).
  - `note` string, nullable
  - `setAt` string, date-time, nullable
  - `setById` string, nullable
  - `setByName` string, nullable

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `409`: Conflict

## Changes

- **2026-10-11** `f7ab358172d0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/changes/appointments/:id/confirmation/put.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)
