---
title: "POST /Patients/{id}/deceased"
method: POST
path: "/Patients/{id}/deceased"
tags: ["Patients"]
---

# POST /Patients/{id}/deceased

`POST /Patients/{id}/deceased`

## Request

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

## Path parameters

- `id` string, required

## Request body

- MarkDeceasedRequest
  - `deceasedDate` string, date-time, nullable, required

## Response `200`

OK

- PatientResponseDto: Full patient details response
  - `id` string: Unique patient identifier
  - `name` string: The patient's name
  - `species` string: The species name. References a species from GET /species endpoint.
  - `speciesId` string, nullable: The species ID for programmatic lookups (e.g., location species restrictions).
  - `breed` string: The breed name
  - `dateOfBirth` string, date-time, nullable
  - `isEstimatedAge` boolean
  - `color` string, nullable
  - `microchipNo` string, nullable
  - `clientId` string
  - `client` ClientSummaryDto
    - `id` string
    - `firstName` string
    - `lastName` string
    - `email` string, nullable
    - `phoneNumber` string, nullable
  - `clientName` string, nullable
  - `clientPhone` string, nullable
  - `clientEmail` string, nullable
  - `fixed` boolean
  - `sex` integer
  - `vaccinationStatus` integer
  - `lastVaccinationDate` string, date-time, nullable
  - `previousVet` string, nullable
  - `previousVetPhone` string, nullable
  - `tags` TagAssignmentDto[]: Smart Tag assignments on this patient. Populated on list responses so the UI can surface tags (incl. severity-bearing alert tags) per row without an N+1 fetch; the single-patient detail page fetches tags directly via the tag-assignments endpoint.
    - `id` string
    - `tagId` string
    - `tagName` string
    - `tagColor` string, nullable
    - `tagIcon` string, nullable
    - `tagSeverity` integer
    - `entityType` string
    - `entityId` string
    - `value` string, nullable
    - `note` string, nullable
    - `assignedByUserId` string, nullable
    - `assignedByName` string, nullable
    - `assignedAt` string, date-time
  - `contacts` PatientContactDto[]: Contacts (people) related to this patient with their relationship type and per-patient permissions. Populated on the single-patient read (GET /patients/{id}); empty on list responses. The primary owner is also reflected in string PatientResponseDto.ClientId / ClientSummaryDto? PatientResponseDto.Client.
    - `id` string
    - `patientId` string
    - `clientId` string
    - `client` ClientSummaryDto
      - `id` string
      - `firstName` string
      - `lastName` string
      - `email` string, nullable
      - `phoneNumber` string, nullable
    - `relationshipType` integer: Describes who a contact (Client) is in relation to a specific patient. One contact per patient is the `PrimaryOwner`; all others are additional relationships (co-owners, agents, emergency contacts, etc.). Stored as text on `patient_contacts.relationship_type`.
    - `isPrimary` boolean
    - `permissions` string[]: The set permission flags by name (e.g. `"ApproveTreatment"`). Exposed as a list rather than the raw ContactPermissions bitmask so clients can check individual permissions without bit math.
    - `verificationMethod` integer: How a patient contact's identity was verified by clinic staff. Stored as text on `patient_contacts.verification_method`.
    - `verifiedByUserId` string, nullable
    - `verifiedAt` string, date-time, nullable
    - `verificationNotes` string, nullable
    - `displayOrder` union
      - integer
      - string, int32
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `lastVisitDate` string, date-time, nullable
  - `hasActiveAppointments` boolean
  - `isDeceased` boolean: Whether the patient is deceased
  - `deceasedDate` string, date-time, nullable: Date the patient was marked as deceased
  - `isActive` boolean: Whether the patient is active (not transferred, discharged, etc.)
  - `registrationPending` boolean: Placeholder created by emergency intake whose details (name, breed, owner…) have not been completed yet.
  - `profilePhotoUrl` string, nullable: Presigned URL (~60min) for the patient's profile photo, or null if none is set. Backed by the PatientFile flagged with IsProfilePhoto.
  - `treatmentAcceptanceRate` union: Read-only treatment-acceptance rate (0-100) over the patient's entire history: the share of decided recommended services that were performed rather than client-declined. Null when the patient has no decided services. Clinical compliance, not regulatory.
    - number, double
    - string, double
  - `treatmentAcceptanceRateRecent` union: Read-only treatment-acceptance rate (0-100) over the trailing 12 months. Null when the patient has no decided services in that window.
    - number, double
    - string, double
  - `deferredServiceCount` union: Lifetime count of deferred (client-declined) services for this patient.
    - integer
    - string, int32

## Changes

- **2026-10-07** `021fabd866ff`: 3 info
  - added the optional property `registrationPending` to the response with the `200` status (media type: text/plain)
  - added the optional property `registrationPending` to the response with the `200` status (media type: application/json)
  - added the optional property `registrationPending` to the response with the `200` status (media type: text/json)

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