Deletar posição por código

Este endpoint realiza a exclusão de uma posição específica na estrutura organizacional, identificada pelo seu externalCode.

Regras de negócio e restrições

A exclusão da posição não será permitida se alguma das seguintes condições for verdadeira. Em caso de falha, o sistema retornará um código de erro apropriado (geralmente 409 Conflict ou 403 Forbidden).

  • Vínculo com Colaborador: A posição não pode ser excluída se houver um colaborador atualmente atribuído a ela. É necessário desvincular o colaborador primeiro.
  • Vínculo Hierárquico: A posição não pode ser excluída se possuir descendentes diretos (posições filhas) em sua hierarquia. É necessário remover ou re-hierarquizar as posições filhas antes da exclusão.

Exemplo de requisição (cURL)

curl --request DELETE \
     --url https://api.gupy.io/os/v1/positions/{externalCode} \
     --header 'accept: application/json' \
     --header 'Authorization: Bearer <seu_token_aqui>'

Atenção: Substitua {externalCode} pelo código externo da posição que deseja deletar e forneça o token de autenticação no cabeçalho Authorization.

Possíveis erros

Posição não encontrada

Erro lançado quando a posição não foi encontrada através do externalCode informado.

`{
  "statusCode": 404,
  "timestamp": "2025-05-29T21:00:00.000Z",
  "path": "/v1/positions/{externalCode}",
  "method": "DELETE",
  "title": "NotFoundException",
  "message": "Position not found",
  "errors": [
    {
      "code": "POSITION_NOT_FOUND_ERROR",
      "target": "NotFoundException",
      "message": "Position not found"
    }
  ]
}

Posição com descendentes (liderados)

Erro lançado quando a posição possui descendentes (liderados) ativos cadastrados.

`{
  "statusCode": 409,
  "timestamp": "2025-05-29T21:00:00.000Z",
  "path": "/v1/positions/{externalCode}",
  "method": "DELETE",
  "title": "ConflictException",
  "message": "Position with direct descendants cannot be deleted",
  "errors": [
    {
      "code": "POSITION_DESCENDANT_ERROR",
      "target": "ConflictException",
      "message": "Position with direct descendants cannot be deleted"
    }
  ]
}

Posição com colaborador atribuído

Erro lançado quando a posição possui colaborador cadastrado atribuído.

`{
  "statusCode": 409,
  "timestamp": "2025-05-29T21:00:00.000Z",
  "path": "/v1/positions/{externalCode}",
  "method": "DELETE",
  "title": "ConflictException",
  "message": "Position with assigned employee cannot be deleted",
  "errors": [
    {
      "code": "POSITION_WITH_EMPLOYEE_ERROR",
      "target": "ConflictException",
      "message": "Position with assigned employee cannot be deleted"
    }
  ]
}