---
title: "Update a group"
method: PUT
path: "/groups/{id}"
tags: ["Group"]
---

# Update a group

`PUT /groups/{id}`

Updates an existing group based on the group ID.

## Path parameters

- `id` string, required

## Headers

- `tenant-id` string

## Request body

- UpdateGroupRequest — Request to update an existing group with complete data
  - `certifyGroupId` string — Primary key - Certify Group ID
  - `sourceId` string — Foreign key - Source ID
  - `crosswalkId` string — Foreign key - Crosswalk ID
  - `affiliation` string — Group affiliation
  - `npi` string — National Provider Identifier
  - `name` string — Group name
  - `contacts` Contact1[] — Group contacts
    - `name` string — Contact name
    - `email` string — Contact email
    - `phone` string — Contact phone
    - `title` string — Contact title
    - `department` string — Contact department
  - `parentHealthcareOrg` string — Parent healthcare organization ID
  - `tin` string — Tax Identification Number
  - `type` string — Group type
  - `legalTaxName` string — Legal tax name
  - `active` boolean — Whether the group is active
  - `telemedicineAvailable` boolean — Whether telemedicine is available
  - `taxInfo` TaxInfo
    - `legalTaxName` string
    - `taxEntityStates` string[]
    - `irs575File` string
    - `w9File` string
    - `billingTin` string — Billing Tax Identification Number (TIN) used for billing purposes.
    - `billingNpi` string — Billing National Provider Identifier (NPI) used for billing purposes.
  - `bedCount` integer — Number of beds
  - `dea` string — DEA number
  - `specialtyIds` string[] — Specialty IDs to associate with the group (consistent with create practitioner pattern)
  - `groupEffectiveDate` string, date
  - `externalGroupId` string — External group ID from tenant system
  - `contactPerson` JsonNode
    - `empty` boolean
    - `valueNode` boolean
    - `containerNode` boolean
    - `missingNode` boolean
    - `array` boolean
    - `object` boolean
    - `nodeType` 'ARRAY' | 'BINARY' | 'BOOLEAN' | 'MISSING' | 'NULL' | 'NUMBER' | 'OBJECT' | 'POJO' | 'STRING'
    - `pojo` boolean
    - `number` boolean
    - `integralNumber` boolean
    - `floatingPointNumber` boolean
    - `short` boolean
    - `int` boolean
    - `long` boolean
    - `float` boolean
    - `double` boolean
    - `bigDecimal` boolean
    - `bigInteger` boolean
    - `textual` boolean
    - `boolean` boolean
    - `null` boolean
    - `binary` boolean
  - `userDefinedFields` JsonNode
    - `empty` boolean
    - `valueNode` boolean
    - `containerNode` boolean
    - `missingNode` boolean
    - `array` boolean
    - `object` boolean
    - `nodeType` 'ARRAY' | 'BINARY' | 'BOOLEAN' | 'MISSING' | 'NULL' | 'NUMBER' | 'OBJECT' | 'POJO' | 'STRING'
    - `pojo` boolean
    - `number` boolean
    - `integralNumber` boolean
    - `floatingPointNumber` boolean
    - `short` boolean
    - `int` boolean
    - `long` boolean
    - `float` boolean
    - `double` boolean
    - `bigDecimal` boolean
    - `bigInteger` boolean
    - `textual` boolean
    - `boolean` boolean
    - `null` boolean
    - `binary` boolean
  - `credentialingContact` CredentialingContact — Credentialing contact information
    - `name` string — Contact name
    - `email` string — Contact email
    - `phone` string — Contact phone
    - `title` string — Contact title
    - `department` string — Contact department
  - `npdbEnrollmentEnabled` boolean — Whether NPDB enrollment is enabled
  - `createdAt` string, date-time
  - `createdBy` string — Foreign key - Created by User ID
  - `addresses` GroupAddressData[] — Group addresses to update
    - `addressType` string — Address type
    - `addressLine1` string — Address line 1
    - `addressLine2` string — Address line 2
    - `city` string — City
    - `state` string — State
    - `zip` string — ZIP code
    - `county` string — County
    - `country` string — Country
    - `isPrimary` boolean — Whether this is the primary address

## Response `200`

Group successfully updated

- GroupResponse — Complete group information including core data, tenant data, and addresses
  - `certifyId` string — Primary key - Certify Group ID
  - `crosswalkId` string — Crosswalk ID
  - `sourceId` string — Source ID
  - `sourceUrl` string — Source URL
  - `sourceType` string — Source type
  - `sourceName` string — Source name
  - `sourceDescription` string — Source description
  - `survivorId` string — Survivor ID
  - `groupData` JsonNode
    - `empty` boolean
    - `valueNode` boolean
    - `containerNode` boolean
    - `missingNode` boolean
    - `array` boolean
    - `object` boolean
    - `nodeType` 'ARRAY' | 'BINARY' | 'BOOLEAN' | 'MISSING' | 'NULL' | 'NUMBER' | 'OBJECT' | 'POJO' | 'STRING'
    - `pojo` boolean
    - `number` boolean
    - `integralNumber` boolean
    - `floatingPointNumber` boolean
    - `short` boolean
    - `int` boolean
    - `long` boolean
    - `float` boolean
    - `double` boolean
    - `bigDecimal` boolean
    - `bigInteger` boolean
    - `textual` boolean
    - `boolean` boolean
    - `null` boolean
    - `binary` boolean
  - `addresses` GroupAddressData[] — Group addresses (billing, remittance, service)
    - `addressType` string — Address type
    - `addressLine1` string — Address line 1
    - `addressLine2` string — Address line 2
    - `city` string — City
    - `state` string — State
    - `zip` string — ZIP code
    - `county` string — County
    - `country` string — Country
    - `isPrimary` boolean — Whether this is the primary address
  - `data` JsonNode
    - `empty` boolean
    - `valueNode` boolean
    - `containerNode` boolean
    - `missingNode` boolean
    - `array` boolean
    - `object` boolean
    - `nodeType` 'ARRAY' | 'BINARY' | 'BOOLEAN' | 'MISSING' | 'NULL' | 'NUMBER' | 'OBJECT' | 'POJO' | 'STRING'
    - `pojo` boolean
    - `number` boolean
    - `integralNumber` boolean
    - `floatingPointNumber` boolean
    - `short` boolean
    - `int` boolean
    - `long` boolean
    - `float` boolean
    - `double` boolean
    - `bigDecimal` boolean
    - `bigInteger` boolean
    - `textual` boolean
    - `boolean` boolean
    - `null` boolean
    - `binary` boolean
  - `tenantGroupId` string — Tenant Group ID (legacy)
  - `lastUpdated` string, date-time
  - `addressesCopy` GroupAddressData[]
    - `addressType` string — Address type
    - `addressLine1` string — Address line 1
    - `addressLine2` string — Address line 2
    - `city` string — City
    - `state` string — State
    - `zip` string — ZIP code
    - `county` string — County
    - `country` string — Country
    - `isPrimary` boolean — Whether this is the primary address

## Other responses

- `400` — Invalid request body (e.g., schema validation failed), or unsupported source type
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `404` — Group not found
- `500` — Internal server error during request processing (e.g., network timeout, etc.)

---

[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)
