563848e0ecc0
Terminate several practitioner relationships, and/or states to credential, in one request
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 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.
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.
Headers
Request body
Example request
{
"terminationDate": "2026-08-12",
"scopes": [
{
"terminationType": "NETWORK"
}
],
"statesToCredential": [
"NY",
"NJ"
]
}Response
Applied. status is SUCCESS, PARTIAL_SUCCESS or FAILED; scopeResults carries per-scope detail.
Example response
{
"status": "PARTIAL_SUCCESS",
"terminationDate": "2026-08-12",
"scopeResults": [
{
"errorCode": "409"
}
]
}