> ## Documentation Index
> Fetch the complete documentation index at: https://developer.payrollintegrations.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Update Group

> Submits a list of employee updates



## OpenAPI

````yaml POST /v1/employer-identifiers/{employer_identifier}/update-groups
openapi: 3.1.0
info:
  title: Payroll Integrations Public API
  description: Public API for Payroll Integrations platform
  version: '2025-10-28T20:05:03Z'
  license:
    name: MIT
servers:
  - url: https://api.payrollintegrationsapp.com
    description: Prod environment
  - url: https://demo1-api.payrollintegrationsdemo.com
    description: Demo environment
  - url: https://demo2-api.payrollintegrationsdemo.com
    description: Demo environment
  - url: https://demo3-api.payrollintegrationsdemo.com
    description: Demo environment
security:
  - bearerAuth: []
paths:
  /v1/employer-identifiers/{employer_identifier}/update-groups:
    post:
      tags:
        - Employee Updates
      description: Submits a list of employee updates
      operationId: createUpdateGroup
      parameters:
        - name: employer_identifier
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: ID of the employer identifier
      requestBody:
        required: true
        description: List of employee updates to process
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUpdateGroupRequest'
            example:
              updates:
                - employeeProfileId: 22222222-2222-2222-2222-222222222222
                  subcategory: ROTH
                  calculationValue: '10'
                  calculationType: PERCENT
                  startDate: '2026-01-31'
                - employeeProfileId: 33333333-3333-3333-3333-333333333333
                  subcategory: 401K_PRETAX
                  calculationValue: '150.00'
                  calculationType: FLAT_DOLLAR
                  startDate: '2026-01-31'
                - employeeProfileId: 44444444-4444-4444-4444-444444444444
                  subcategory: 401K_LOAN
                  calculationValue: '100.00'
                  calculationType: FLAT_DOLLAR
                  startDate: '2026-01-31'
                  loanIdentifier: MyLoanDeduction
      responses:
        '201':
          description: >-
            Returns the UUID of the update group as confirmation of its
            submission
          headers:
            Location:
              schema:
                type: string
                format: uri
              description: URL of the created update group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateUpdateGroupResponse'
              example:
                updateGroupId: 55555555-5555-5555-5555-555555555555
        '400':
          description: Bad Request - Invalid request body or validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - authentication credentials are missing or invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found - Employer identifier does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CreateUpdateGroupRequest:
      type: object
      required:
        - updates
      properties:
        updates:
          type: array
          description: List of employee deduction updates to perform
          items:
            $ref: '#/components/schemas/GenericUpdate'
    CreateUpdateGroupResponse:
      type: object
      required:
        - updateGroupId
      properties:
        updateGroupId:
          type: string
          format: uuid
          description: UUID of the created update group
    Error:
      type: object
      required:
        - message
      properties:
        message:
          type: string
          description: Error message describing what went wrong
        errors:
          type: array
          description: Optional array of detailed error messages
          items:
            type: string
    GenericUpdate:
      type: object
      required:
        - employeeProfileId
        - subcategory
        - calculationValue
        - calculationType
        - startDate
      properties:
        employeeProfileId:
          type: string
          format: uuid
          description: The Payroll Integrations UUID for an employee profile
        subcategory:
          type: string
          description: >-
            The subcategory to apply the deduction to (e.g. 401K_PRETAX, ROTH,
            etc.)
        calculationValue:
          type: string
          description: >-
            The deduction amount. When calculationType is FLAT_DOLLAR, must be a
            dollar amount with 2 decimal places (e.g. "12.34"). When
            calculationType is PERCENT, must be a percentage value with up to 2
            decimal places.
        calculationType:
          type: string
          enum:
            - FLAT_DOLLAR
            - PERCENT
          description: >-
            Denotes whether calculationValue is treated as a flat dollar amount
            or a percentage
        startDate:
          type: string
          format: date
          description: Start date for the deduction in ISO format YYYY-MM-DD
        loanIdentifier:
          type: string
          description: >-
            The label to apply to the employee's loan deduction, only applicable
            when subcategory is 401K_LOAN

````