---
title: "Set termination date on a single practitioner role assignment"
method: PUT
path: "/practitioners/practitioner-role-assignments/{id}/terminate"
tags: ["Practitioner"]
---

# Set termination date on a single practitioner role assignment

`PUT /practitioners/practitioner-role-assignments/{id}/terminate`

Sets the `terminationDate` on a single role entry within a practitioner's location-network assignment. This operation is scoped to a single role in a single assignment and does not cascade to any parent records — the location-network assignment itself, the network participation record, or the practitioner's main termination status. Use it when a specific role held at a particular location-network pairing has ended but the practitioner's other roles and assignments remain active; for practitioner-wide termination, use `PUT /practitioners/terminate` instead. `{id}` is the location-network assignment (TGLPN) identifier obtained from the practitioner's relationship data, and the target role key must exist within that assignment; if the role's stored `effectiveDate` cannot be parsed as a valid ISO date, the termination-before-effective constraint is skipped and the request succeeds as a legacy-record accommodation.

## Path parameters

- `id` string, required

## Headers

- `tenant-id` string

## Request body

- TerminatePractitionerRoleRequest
  - `role` 'PCP' | 'Specialist' | 'Hospitalist' | 'Hospital-based Provider', required — Role key to terminate inside practitionerRolesMap
  - `terminationDate` string, required — ISO date (YYYY-MM-DD) on which the role is terminated. Must be on or after the role's effectiveDate when one is present.
  - `terminationInformedDate` string — ISO date (YYYY-MM-DD) when the practitioner was informed of the role termination. Optional.
  - `terminationReason` string — Human-readable reason for terminating the role. Optional.
  - `continuityOfCare` boolean — Whether Continuity of Care applies for this termination. Defaults to false when omitted.

## Response `200`

Echoes `tglpnId`, `role` (canonical casing), and `terminationDate`; `terminationInformedDate` and `terminationReason` are accepted in the request body and persisted but not included in the response.

- TerminatePractitionerRoleResponse
  - `tglpnId` string — The TenantGroupLocationPractitionerNetwork record ID that was updated
  - `role` string — The role key that was terminated
  - `terminationDate` string — The termination date that was applied to the role

## Other responses

- `400` — Bad request - invalid role value, terminationDate before effectiveDate, or role not found in practitionerRolesMap
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `404` — TGLPN record not found
- `409` — Conflict - role is already terminated
- `500` — Internal server error

---

[API](https://skmtc.net/certifyos/apis/certify-api-layer.md) · [All operations](https://skmtc.net/certifyos/apis/certify-api-layer/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/certifyos/certify-api-layer/revisions/563848e0ecc0/schema)
