Skip to main content

Terminate several practitioner relationships, and/or states to credential and lines of business, in one request

PUT 

/practitioners/terminate-partial

Multi-scope sibling of PUT /practitioners/terminate, built for the monitoring termination drawer (CP-36182). That endpoint accepts exactly ONE scope per call; this one takes the whole selection and fans out over the same per-scope service internally, so guard checks, per-type validation, date validation and cascades behave identically.

Scope types accepted: GROUP, NETWORK, GROUP_LOCATIONS, LOCATION_NETWORK. FULL_EXIT and INFERRED_LOCATION are rejected with 400 — full termination is already a single call, so use PUT /practitioners/terminate for it.

Identity: the practitioner is identified by certifyPractitionerId; tenantPractitionerId is resolved server-side from it plus the tenant-id header, scoped to that tenant.

Additionally removes the supplied statesToCredential and linesOfBusiness from the practitioner's contributing crosswalk (writing an empty array, never null, when none remain), marks the acted-on flag seen with the termination note, and re-syncs the monitoring workflow so flags for removed states are re-evaluated.

A future or unparseable terminationDate fails the states and lines of business leg with errorCode 400 in its result block, while the relationship scopes still run. When pdm.scope-termination-log.enabled is on, the removed values are also logged.

Returns 200 even on partial failure — inspect status and scopeResults. A 2xx does NOT mean everything applied. Only whole-request problems (validation, auth, kill switch) come back as 4xx/5xx.

Gated by practitioner.termination.partial-composite.enabled (default false); returns 404 as if the endpoint did not exist while disabled.

Request​

Responses​

Applied. status is SUCCESS, PARTIAL_SUCCESS or FAILED; scopeResults carries per-scope detail.