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

# Update Position

> Updates an existing user position in your COR instance using its external ID

Updates an existing user position in your COR instance using its external ID.

## Path Parameters

<ParamField path="id" type="string" required>
  External position ID that was used when creating the position
</ParamField>

## Request Body Requirements

<ParamField body="metadata" type="object" required>
  <Expandable title="properties">
    <ParamField body="source" type="string" required>
      Integration source identifier
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="name" type="string">
  Updated position name
</ParamField>

<ParamField body="rate" type="number">
  Updated hourly rate for the position
</ParamField>

<ParamField body="seniority" type="string">
  Updated seniority level (e.g., "Jr.", "Sr.", "Lead")
</ParamField>

<ParamField body="category_id" type="string">
  External category ID. The category must have been previously created through the integrations API.
</ParamField>

## Known Errors

* `PositionNotFoundError` — No position found with the specified external ID for this source
* `ValidationError` — Missing required `metadata.source` field
* `CategoryNotFoundError` — The specified category does not exist in the integration mappings

<RequestExample>
  ```bash cURL theme={null}
  curl --location --request PUT 'https://integrations.projectcor.com/v2/integrations/user-position/external-user-position-1' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "metadata": {
      "source": "GLOBANT"
    },
    "name": "Software Developer",
    "rate": 60,
    "seniority": "Sr.",
    "category_id": "external-category-1"
  }'
  ```

  ```python Python theme={null}
  import requests

  url = "https://integrations.projectcor.com/v2/integrations/user-position/external-user-position-1"

  payload = {
      "metadata": {
          "source": "GLOBANT"
      },
      "name": "Software Developer",
      "rate": 60,
      "seniority": "Sr.",
      "category_id": "external-category-1"
  }

  headers = {
      "Authorization": "Bearer YOUR_ACCESS_TOKEN",
      "Content-Type": "application/json"
  }

  response = requests.put(url, json=payload, headers=headers)
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://integrations.projectcor.com/v2/integrations/user-position/external-user-position-1',
    {
      method: 'PUT',
      headers: {
        'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        metadata: {
          source: 'GLOBANT'
        },
        name: 'Software Developer',
        rate: 60,
        seniority: 'Sr.',
        category_id: 'external-category-1'
      })
    }
  );

  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "statusCode": 200,
    "status": "success",
    "data": {
      "name": "Software Developer",
      "company_id": 2336,
      "rate": 60,
      "created_at": "2025-11-19 17:54:15",
      "updated_at": "2025-11-19 17:54:27",
      "deleted_at": null,
      "user_position_default": false,
      "seniority": "Sr.",
      "__meta__": {
        "oldRate": 1
      }
    }
  }
  ```

  ```json 404 theme={null}
  {
    "error": "PositionNotFoundError",
    "message": "Position with external ID 'external-user-position-1' not found",
    "code": "ZC004"
  }
  ```
</ResponseExample>
