---
title: "Correct a role key on the core practitioner record"
method: PATCH
path: "/practitioners/{id}/roles/correct"
tags: ["Practitioner"]
---

# Correct a role key on the core practitioner record

`PATCH /practitioners/{id}/roles/correct`

Renames an existing role key on the core practitioner record (for example, renaming `PCP` to `Specialist`) while preserving the associated role metadata such as `effectiveDate` and `terminationDate`. This is a data-correction operation — it does not trigger termination events or lifecycle changes. Use it when a role key was recorded incorrectly at the core practitioner level and needs correcting without invoking the termination lifecycle; for correcting a role at a specific group-practitioner-location record, use `PATCH /practitioners/practitioner-locations/{id}/roles/correct` instead. `{id}` is the `certifyPractitionerId`, and the role key being renamed must already exist on the core practitioner record.

## Path parameters

- `id` string, required

## Headers

- `tenant-id` string

## Request body

- PractitionerRoleCorrectionRequest
  - `existingRole` 'PCP' | 'Specialist' | 'Hospitalist' | 'Hospital-based Provider', required — Current role to correct
  - `newRole` 'PCP' | 'Specialist' | 'Hospitalist' | 'Hospital-based Provider', required — New role to replace the existing one

## Response `200`

Role corrected successfully. `practitionerRoles` is populated with the corrected core roles map; `locationRoles` is always empty.

- PractitionerRolesUpdateResponse — Practitioner roles update response
  - `practitionerRoles` object — Updated practitioner roles map from core_practitioners
  - `locationRoles` object — Updated practitioner roles map from group_practitioner_locations, keyed by groupPractitionerLocationId

## Other responses

- `400` — Bad request - Invalid role or role not found
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `404` — Practitioner not found
- `409` — Conflict - New role already exists on practitioner
- `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)
