Atualizar unidade operacional

Este endpoint atualiza uma unidade operacional identificada pelo externalCode na URL.


Rota: PUT /os/v1/operation-units/external/{externalCode}

Campos obrigatórios (body)

  • externalCode: Código externo da unidade (pode ser alterado se não conflitar com outra unidade).
  • name: Nome. Máximo de 300 caracteres.
  • address: Endereço. Use null ou string vazia para limpar.
  • businessRegistrationNumber: CNPJ. Use null ou string vazia para limpar. Deve ser CNPJ válido quando informado.
  • parent: Controle de hierarquia:
    • parent: null → remove vínculo com pai.
    • parent: { "externalCode": "ROOT-001" } → vincula ao pai informado (código não vazio).

Observações

  • Contrato público: o pai é informado em parent.externalCode (não use externalCodeParent na raiz do body no update).
  • Se parent for um objeto, externalCode dentro dele deve ser string não vazia.
  • Uma unidade não pode ser pai de si mesma.

Resposta de sucesso (200)

{
  "result": {
    "externalCode": "SP-001",
    "name": "Matriz São Paulo",
    "address": "Av. Paulista, 1000",
    "businessRegistrationNumber": "96925786000127",
    "parent": { "externalCode": "ROOT-001" }
  }
}

Exemplo de requisição (cURL)

curl --request PUT \
     --url 'https://api.gupy.io/os/v1/operation-units/external/SP-001' \
     --header 'Content-Type: application/json' \
     --header 'Authorization: Bearer bearer_token_value_here' \
     --data '{
       "externalCode": "SP-001",
       "name": "Matriz São Paulo",
       "address": "Av. Paulista, 1000",
       "businessRegistrationNumber": "96925786000127",
       "parent": { "externalCode": "ROOT-001" }
     }'

Exemplo — limpar campos opcionais e pai:

curl --request PUT \
     --url 'https://api.gupy.io/os/v1/operation-units/external/SP-001' \
     --header 'Content-Type: application/json' \
     --header 'Authorization: Bearer bearer_token_value_here' \
     --data '{
       "externalCode": "SP-001",
       "name": "Matriz São Paulo",
       "address": null,
       "businessRegistrationNumber": "",
       "parent": null
     }'

Atenção: Substitua SP-001 pelo código externo da unidade.

Possíveis erros

Erro de validação (400)

Campos inválidos ou CNPJ inválido (Business registration number needs to be a valid cnpj number).

Unidade não encontrada (404)

Nenhuma unidade encontrada para o externalCode informado na URL.

Conflito (409)

  • Outra unidade da empresa já utiliza o externalCode do body.
  • Tentativa de definir a unidade como pai de si mesma (An operation unit cannot be its own parent).

Pai não encontrado (422)

Não existe unidade operacional com o externalCode informado em parent.externalCode.