# Criar, ativar e desativar funções

## Como criar uma função no Zeev utilizando API?

Para criar uma função no Zeev utilizando API, siga os passos abaixo:

1. **Autenticação**: Primeiro obtenha um [token de autenticação](https://kb.zeev.it/apis/como-gerar-tokens-para-autenticar-nas-apis) com permissão de realizar essa operação;
2. **Defina os valores dos parâmetros:** Defina o nome, a descrição e o código original que são respectivamente os valores de name, description e code;
3. **Obtenha o parentId:** Se desejar informar uma função superior hierarquicamente, obtenha antes o parentId que é o código identificador (positionid) da função hierarquicamente superior. É possível obtê-lo na página Acesso > Funções ou através de consultas de API como em [#como-listar-as-funcoes-utilizando-api](#como-listar-as-funcoes-utilizando-api "mention");
4. **Obtenha o teamId:** É o identificador do time a que a função pertence. É possível obtê-lo através da página Acesso > Times do Zeev ou através de consultas de API como descrito em [Listar times](/zeev/apis/all/access/teams/list.md);
5. **Obtenha o type:** Este é o tipo de função. Atualmente não há Api's para listar os tipos de função disponíveis para esta propriedade. Você deve obter o valor desejado consultando a página Avançado > Tipos de funções;
6. Utilize o endpoint [#api-2-positions](#api-2-positions "mention") para enviar a requisição;

{% openapi src="/files/DYIxvabeLXa2mL6uE2si" path="/api/2/positions" method="post" %}
[ZeevApi's\_new.json](https://3371003943-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MD66pBdRalAQgnhNstG%2Fuploads%2Ff5huLIsAqm88oSjkTavv%2FZeevApi's_new.json?alt=media\&token=aae47f9f-90ca-48d0-b250-fc38fe74e6c0)
{% endopenapi %}

Exemplo de requisição para criar uma função no Zeev

{% tabs %}
{% tab title="Node.js" %}

```javascript
const myHeaders = new Headers();
myHeaders.append("Accept", "application/json");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer TOKEN_DO_USUARIO");

const raw = JSON.stringify({
  "name": "Analista de sistemas",
  "active": true,
  "code": "FnAn4l1staSis",
  "description": "Aqui estarão vinculadas pessoas analistas de sistemas",
  "parentId": 98549004, //informe se desejar vincular uma função hierarquicamente superior
  "teamId": 951753, //Código identificador do time
  "type": 118 //Código identificador do tipo de função
});

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: raw
};

try {
  const response = await fetch("https://seu_endereco.do.zeev/api/2/positions", requestOptions);
  const result = await response.json();
  console.log(result)
} catch (error) {
  console.error(error);
};
```

{% endtab %}
{% endtabs %}

***

## Como ativar/desativar uma função no Zeev?&#x20;

Para ativar ou desativar uma função no Zeev utilizando API siga os passos abaixo:

1. **Autenticação**: Primeiro obtenha um [token de autenticação](https://kb.zeev.it/apis/como-gerar-tokens-para-autenticar-nas-apis);
2. **Obtenha a positionid:** Obtenha código do usuário. É possível obter este identificador na página Acesso > Funções ou utilizando consulta de API's como nos exemplos que estão disponíveis em [Listar funções](/zeev/apis/all/access/roles/list.md);
3. **Para desativar a função:** Envie a requisição para [#api-2-positions-positionid-deactivate](#api-2-positions-positionid-deactivate "mention") (troque seu\_endereco.do.zeev pelo endereço que você utiliza para acessar o Zeev);
4. **Para ativar a função:** Envie a requisição para [#api-2-positions-positionid-deactivate](#api-2-positions-positionid-deactivate "mention") (troque seu\_endereco.do.zeev pelo endereço que você utiliza para acessar o Zeev);

{% openapi src="/files/DYIxvabeLXa2mL6uE2si" path="/api/2/positions/{positionid}/activate" method="patch" %}
[ZeevApi's\_new.json](https://3371003943-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MD66pBdRalAQgnhNstG%2Fuploads%2Ff5huLIsAqm88oSjkTavv%2FZeevApi's_new.json?alt=media\&token=aae47f9f-90ca-48d0-b250-fc38fe74e6c0)
{% endopenapi %}

{% openapi src="/files/DYIxvabeLXa2mL6uE2si" path="/api/2/positions/{positionid}/deactivate" method="patch" %}
[ZeevApi's\_new.json](https://3371003943-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MD66pBdRalAQgnhNstG%2Fuploads%2Ff5huLIsAqm88oSjkTavv%2FZeevApi's_new.json?alt=media\&token=aae47f9f-90ca-48d0-b250-fc38fe74e6c0)
{% endopenapi %}

Exemplo de requisição para ativar / desativar funções

{% tabs %}
{% tab title="Node.js - ativar" %}

```javascript
let positionId = 753;

const myHeaders = new Headers();
myHeaders.append("Accept", "application/json");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer TOKEN_DO_USUARIO");

const requestOptions = {
  method: "PATCH",
  headers: myHeaders
};

try {
  const response = await fetch(`https://seu_endereco.do.zeev/api/2/positions/${positionId}/activate`, requestOptions);
  const result = await response.text();
  console.log(result)
} catch (error) {
  console.error(error);
};
```

{% endtab %}

{% tab title="Node.js - desativar" %}

```javascript
let positionId = 753;

const myHeaders = new Headers();
myHeaders.append("Accept", "application/json");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer TOKEN_DO_USUARIO");

const requestOptions = {
  method: "PATCH",
  headers: myHeaders,
  redirect: "follow"
};

try {
  const response = await fetch(`https://seu_endereco.do.zeev/api/2/positions/${positionId}/deactivate`, requestOptions);
  const result = await response.text();
  console.log(result)
} catch (error) {
  console.error(error);
};
```

{% endtab %}
{% endtabs %}

***

## **Links relacionados**:

* [O que é preciso para fazer integrações do Zeev para outros sistemas?](/zeev/integracoes/o-que-e-preciso-para-fazer-integracoes.md)
* [Como autenticar nas APIs do Zeev](/zeev/apis/como-utilizar-as-apis-do-zeev/como-gerar-tokens-para-autenticar-nas-apis.md)
* [Como controlar o volume máximo de requisições à APIs](/zeev/apis/como-utilizar-as-apis-do-zeev/como-controlar-o-volume-maximo-de-requisicoes-a-apis.md)
* [Como acessar o Swagger / OpenAPI](/zeev/apis/como-utilizar-as-apis-do-zeev/como-acessar-o-swagger-openapi.md)
* [Vincular pessoas a times e funções](/zeev/usuarios-e-permissoes/gerenciar-usuarios/vincular-usuarios-a-times-e-funcoes.md)
* [Vincular pessoas a times e funções](/zeev/usuarios-e-permissoes/gerenciar-usuarios/vincular-usuarios-a-times-e-funcoes.md#o-que-acontece-ao-adicionar-uma-nova-funcao-time-a-pessoa)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kb.stoque.com.br/zeev/apis/all/access/roles/manage.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
