---
title: "Create multiple identical positions with employee assignment"
method: POST
path: "/os/v1/positions/replication/with-employees"
tags: ["Position"]
---

# Create multiple identical positions with employee assignment

`POST /os/v1/positions/replication/with-employees`

Creates multiple identical positions and assigns each one to a specific employee. All positions will have the same base data (role, area, etc.) but each will be linked to a different employee. Provide either an array of employee emails or taxpayer registries (CPF), but not both. Maximum 10 employees per request. External codes are auto-generated for each position.

## Request body

- CreatePositionWithEmployeesReplicationInput
  - `name` string, required — Human-readable name for the position
  - `externalCodeRole` string, required — External code of the role to associate with this position
  - `externalCodeArea` string, required — External code of the area to associate with this position
  - `description` string, nullable — Optional detailed description of the position responsibilities and requirements
  - `externalCodeCostCenter` string — Optional external code of the cost center to associate with this position
  - `externalCodeParent` string, required — External code of the parent position in the organizational hierarchy (required)
  - `externalCodeOperationUnit` string — Optional external code of the operation unit to associate with this position
  - `employeeEmails` string[] — Array of employee emails to create positions for. Must provide either employeeEmails or employeeTaxpayerRegistries, but not both. Maximum 10 items.
  - `employeeTaxpayerRegistries` string[] — Array of employee taxpayer registries (CPF) to create positions for. Must provide either employeeEmails or employeeTaxpayerRegistries, but not both. Maximum 10 items.

## Response `201`

All positions were created successfully. Returns array of created positions.

- CreatePositionWithEmployeesReplicationOutput
  - `successes` PositionOutput[], required — Array of successfully created positions
    - `uuid` string, uuid, required — Position UUID
    - `name` string, required — Position name
    - `externalCode` string, required — Position external code
    - `description` string, nullable — Position description
    - `role` PositionRoleOutput, required
      - `uuid` string, uuid, required — role UUID
      - `name` string, required — role name
      - `similarity` 'AUXILIARY' | 'CONSULTANT' | 'SUPERVISOR' | 'DEVELOPER' | 'DIRECTOR' | 'INTERNSHIP' | 'SPECIALIST' | 'MANAGER' | 'OPERATOR' | 'TECHNICAL' | 'TRAINEE' | 'COORDINATOR' | 'ANALYST' | 'APPRENTICE' | 'COORDINATOR_OR_SUPERVISOR' | 'ANALYST_OR_AUXILIARY' | 'EXECUTIVE', required — role similarity
      - `externalCode` string, required — role external code
    - `employee` PositionEmployeeOutput
      - `uuid` string, required — employee UUID
      - `internalCompanyNumber` string, required — Internal company number (registration)
    - `area` PositionAreaOutput, required
      - `uuid` string, required — area UUID
      - `name` string, required — area name
      - `similarity` 'ADMINISTRATIVE' | 'FINANCIAL' | 'AGRONOMY' | 'ARCHITECTURE' | 'AUDITING' | 'QUALITY' | 'CUSTOMER_SERVICE' | 'COMMERCIAL' | 'PURCHASING' | 'COMMUNICATION' | 'DESIGN' | 'MARKETING' | 'ACCOUNTING' | 'CONTROLLING' | 'ENGINEERING' | 'MAINTENANCE' | 'TECHNICAL_SERVICES' | 'LEGAL' | 'INNOVATION' | 'PRODUCT' | 'LOGISTICS' | 'OPERATION' | 'PROJECTS' | 'PROCESSES' | 'HUMAN_RESOURCES' | 'SECURITY' | 'TECHNOLOGY', required — area similarity
      - `externalCode` string, required — area codigo externo
    - `costCenter` PositionCostCenterOutput
      - `uuid` string, uuid, required — cost center UUID
      - `name` string, required — cost center name
      - `externalCode` string, required — cost center external code
    - `operationUnit` PositionOperationUnitOutput
      - `uuid` string, uuid, required — operation unit UUID
      - `name` string, required — operation unit name
      - `externalCode` string, required — operation unit external code
    - `parent` ParentPositionOutput
      - `uuid` string, uuid, required — Position UUID
      - `name` string, required — Position name
      - `externalCode` string, required — Position external code
      - `employee` PositionEmployeeOutput
        - `uuid` string, required — employee UUID
        - `internalCompanyNumber` string, required — Internal company number (registration)
    - `additionalParents` ParentPositionOutput[] — Additional parent positions (additional leadership)
      - `uuid` string, uuid, required — Position UUID
      - `name` string, required — Position name
      - `externalCode` string, required — Position external code
      - `employee` PositionEmployeeOutput
        - `uuid` string, required — employee UUID
        - `internalCompanyNumber` string, required — Internal company number (registration)
    - `status` 'OPEN' | 'FILLED' | 'CLOSED' | 'FROZEN', required — Position status indicating current state (OPEN: available for assignment, FILLED: has assigned employee, CLOSED: no longer active, FROZEN: temporarily inactive)
  - `errors` CreatePositionWithEmployeesReplicationError[] — Array of errors for identifiers that failed
    - `identifier` string, required — The identifier (email or taxpayer registry) that failed
    - `message` string, required — Error message explaining why the creation failed

## Other responses

- `207` — Partial success - some positions were created, some failed. Returns created positions and errors for failed identifiers.
- `400` — Bad request - validation errors (e.g., both arrays provided, no employees found, more than 10 items)
- `404` — None of the provided employees were found
- `422` — Validation error - missing required fields or invalid relationships

---

[API](https://skmtc.net/gupy/apis/gupy-public-api.md) · [All operations](https://skmtc.net/gupy/apis/gupy-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gupy/gupy-public-api/revisions/3f26defa2a42/schema)
