---
title: "Associate practitioner with group locations"
method: POST
path: "/practitioners/{practitionerId}/groups/{groupId}/locations"
tags: ["Practitioner"]
---

# Associate practitioner with group locations

`POST /practitioners/{practitionerId}/groups/{groupId}/locations`

Associates a practitioner with one or more locations within a group following the roster ingestion pattern. Use this same endpoint to add new location associations or to edit existing ones (e.g. update group practice location NPI(s)). Creates or updates GroupPractitionerLocation relationships and optionally TenantGroupLocationPractitionerNetwork relationships for location-specific networks. Each location's locationData may include 'npi' as a single string or array of strings.

## Path parameters

- `groupId` string, required
- `practitionerId` string, required

## Headers

- `tenant-id` string

## Request body

- AssociatePractitionerGroupLocationsRequest — Request to associate a practitioner with group locations
  - `groupId` string, required — tenantGroupId (ID of the group to which the practitioner belongs)
  - `groupPractitionerData` TenantGroupPractitionerSchema — Represents the association of a practitioner with a tenant group.
    - `effectiveDate` string, date — The date when the practitioner's affiliation with the tenant group becomes effective.
    - `endDate` string, date — The date when the practitioner's affiliation with the tenant group ends.
    - `employmentType` string — The type of employment relationship the practitioner has with the tenant group.
    - `affiliationType` 'Delegated' | 'Direct' — Defines the possible affiliation types
  - `locations` GroupLocationAssociation[], required — List of locations to associate with this practitioner
    - `tenantGroupLocationId` string, required — ID of the tenant group location
    - `locationData` TenantGroupPractitionerLocationSchema — Represents the association of a practitioner details at a specific location within a tenant group, including role, availability, and effective dates.
      - `suppressSiteFromDirectory` boolean — Indicates if the site should be suppressed from the directory.
      - `active` boolean — Indicates if the record is currently active.
      - `terminationDate` string, date, nullable — The date when the association was terminated.
      - `billingEffectiveDate` string, date, nullable — The effective date for billing purposes.
      - `billingTerminationDate` string, date, nullable — The termination date for billing purposes.
      - `effectiveStartDate` string, date, nullable — The start date when this record becomes effective.
      - `effectiveEndDate` string, date, nullable — The end date when this record is no longer effective.
      - `isPrimary` boolean — Indicates if this is the primary location for the practitioner.
      - `practitionerRolesMap` object — Map of practitioner role key to effective/termination dates.
      - `practitionerRoles` string[] — The roles of the practitioner at this location.
      - `status` 'Active' | 'Inactive' — The possible statuses for a various entities.
      - `roleType` 'PCP' | 'Spec' | 'Both' — Defines the possible roles for a practitioner at a location.
      - `panelStatus` 'Open' | 'Closed' | 'Closed Full' — Specifies the panel status (patient acceptance status) of the practitioner at the location.
      - `acceptingNewPatients` boolean — Indicates if the practitioner is accepting new patients at this location.
      - `medicare` string, nullable — Medicare ID for the practitioner at this location.
      - `npi` string, nullable — National Provider Identifier for the group practice location.
      - `effectiveDate` string, date, nullable — The effective date for the practitioner location.
      - `changeEffectiveDate` string, date, nullable — The change effective date for the practitioner location.
      - `locationType` 'PRI' | 'PRA' | 'null', nullable — Type of group location (PRI = Primary, PRA = Practice).
      - `genderAccepted` 'Both' | 'Male' | 'Female' | 'Unknown' | 'null', nullable — Gender accepted at the practitioner location.
      - `acceptingMinimumPatientAge` string, nullable — Minimum patient age accepted at this location.
      - `acceptingMaximumPatientAge` string, nullable — Maximum patient age accepted at this location.
      - `minimumEnrolleesCapacity` string, nullable — Minimum enrollees capacity for this location.
      - `maximumEnrolleesCapacity` string, nullable — Maximum enrollees capacity for this location.
      - `practiceEmail` string, email, nullable — Practice email for the practitioner location.
      - `handicapAccessible` boolean, nullable — Indicates if the location is handicap accessible.
      - `includeLocationInDirectory` boolean, nullable — Indicates if the practitioner location should be included in the directory.
      - `roleAutoAssignment` string, nullable — Auto assignment of practitioner role.
      - `locationTerminationReason` string, nullable — Reason provided during termination of a practitioner from location.
      - `practitionerFax` string, nullable — Practitioner-specific fax number for this location.
      - `contacts` object[] — Contact information for the group practice location.
        - `phone` string, nullable — Phone number for the location.
        - `fax` string, nullable — Fax number for the location.
        - `appointment` string, nullable — Appointment phone number for the location.
      - `officeHours` object[] — Office hours for each day of the week.
        - `dayOfWeek` 'Mon' | 'Tue' | 'Wed' | 'Thu' | 'Fri' | 'Sat' | 'Sun', required — A reusable enum schema defining the standard three-letter abbreviations for days of the week.
        - `openTime` string, nullable — Opening time in HH:MM format.
        - `closeTime` string, nullable — Closing time in HH:MM format.
        - `isClosed` boolean, nullable — Indicates if the location is closed on this day.
      - `practiceLimitation` object[] — Practice limitations for the practitioner location.
        - `limitation` string, nullable — Practice limitation description.
        - `isPrimary` boolean, required — Indicates if this is the primary practice limitation.
    - `networks` LocationNetwork2[] — List of networks to associate with this practitioner at this specific location
      - `networkId` string, required — Network ID
      - `data` TenantGroupLocationPractitionerNetworkSchema — Represents the participation of a tenant group location practitioner in a specific plan.
        - `networkPractitionerEffectiveDate` string, date
        - `networkPractitionerTerminationDate` string, date
        - `networkPractitionerTerminationInformedDate` string, date
        - `terminationReason` string
        - `networkPractitionerStatus` string
        - `participationType` string
        - `networkPractitionerCredentialingStatus` string
        - `networkPractitionerCredentialedDate` string, date
        - `networkPractitionerNextCredentialingDate` string, date
        - `panelStatus` string
        - `acceptingNewPatients` boolean
        - `officeHours` OfficeHour[] — Operating hours for each day of the week
          - `day` 'Mon' | 'Tue' | 'Wed' | 'Thu' | 'Fri' | 'Sat' | 'Sun' — A reusable enum schema defining the standard three-letter abbreviations for days of the week.
          - `openTime` string, time — Time when the location opens on this day
          - `closeTime` string, time — Time when the location closes on this day
          - `closed` boolean — Indicates if the location is closed on this day
        - `appointmentPhone` string
        - `languageSpoken` string[]
        - `practitionerRole` string
        - `suppressSiteFromDirectory` boolean
        - `hasDelegatedAuthority` boolean
        - `sourceSystem` string
        - `changeReason` string

## Response `201`

Successfully associated practitioner with group locations

- AssociatePractitionerGroupLocationsResponse — Response containing practitioner-group location associations
  - `tenantGroupPractitionerId` string — ID of the tenant group practitioner
  - `groupId` string — ID of the group
  - `locations` LocationAssociationResult[] — List of location associations
    - `tenantGroupLocationId` string — ID of the tenant group location
    - `groupPractitionerLocationId` string — ID of the group practitioner location association
    - `networks` NetworkAssociationResult1[] — List of network associations for this location
      - `networkId` string — ID of the network
      - `tenantGroupLocationPractitionerNetworkId` string — ID of the tenant group location practitioner network association

## Other responses

- `400` — Bad request - Invalid input or validation error
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `404` — Practitioner, group, or location not found
- `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)
