---
title: "Terminate a practitioner role at a network location assignment"
method: PUT
path: "/practitioners/practitioner-role-assignments/{id}/terminate"
tags: ["Practitioner"]
---

# Terminate a practitioner role at a network location assignment

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

Sets the terminationDate on a single role entry inside practitionerRolesMap of a TenantGroupLocationPractitionerNetwork (TGLPN) record. Does not cascade to the parent TGLPN record status, TenantGroupPractitionerNetwork, or the practitioner's main termination. The response echoes tglpnId, role (canonical casing), and terminationDate only; terminationInformedDate and terminationReason are accepted and persisted but not returned. 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; this preserves forward progress for legacy records with malformed effectiveDate values.

## 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.

## Response `200`

Role terminated successfully

- 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/versions/3d27e9019c7b/schema)
