---
title: "Create a new group for the tenant"
method: POST
path: "/groups"
tags: ["Group"]
---

# Create a new group for the tenant

`POST /groups`

Creates a new group record scoped to the requesting tenant. The request body must supply at least one of npi or externalGroupId; email is validated and returns 400 if malformed, but no other fields are currently enforced by request validation (schema validation is disabled for this endpoint). Not idempotent — repeated calls with identical payloads create duplicate group records. Note: the parentHealthcareOrgId query parameter is currently accepted but has no effect on the created group regardless of the value supplied.

## Query parameters

- `parentHealthcareOrgId` string

## Headers

- `tenant-id` string

## Request body

- CreateGroupRequest — Request to create a new group with complete data
  - `name` string — Group name
  - `npi` string — National Provider Identifier
  - `tin` string — Tax Identification Number
  - `contacts` Contact[] — Group contacts
    - `name` string — Contact name
    - `email` string — Contact email
    - `phone` string — Contact phone
    - `title` string — Contact title
    - `department` string — Contact department
  - `specialtyIds` string[] — Specialty IDs to associate with the group during creation (consistent with create practitioner pattern)
  - `groupEffectiveDate` string, date
  - `externalGroupId` string — External group ID from tenant system
  - `addresses` GroupAddressData[] — Group addresses
    - `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
  - `networks` NetworkAssociation[] — Networks to associate with the group during creation
    - `networkName` string, required — Network name
    - `networkType` string — Network type
    - `networkEffectiveDate` string — Network effective date
    - `networkGroupStatus` string — Group-network relationship status
    - `networkGroupTerminationDate` string — Group-network termination date
  - `contactPerson` object — Contact person information as JSON
  - `active` boolean — Whether the tenant group is currently active
  - `npdbEnrollmentEnabled` boolean — Whether NPDB enrollment is enabled
  - `credentialingDelegation` boolean — Whether credentialing is delegated

## Response `201`

Group successfully created

- GroupCreateResponse
  - `id` string
  - `crosswalkId` string

## Other responses

- `400` — Invalid request body — neither npi nor externalGroupId was supplied, or email failed format validation
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `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/revisions/563848e0ecc0/schema)
