> For the complete documentation index, see [llms.txt](https://ajuda.tagone.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ajuda.tagone.com.br/integracoes/api.md).

# API

{% hint style="danger" %}

#### PRIMEIRO PASSO

Solicite acesso ao ambiente de treinamento <atendimento@tagone.com.br>
{% endhint %}

## Autenticação

{% hint style="info" %}
**POST**: *`https://[empresa].treina.tagone.com.br/api/token`*
{% endhint %}

Nossas APIs OData/RESTFull permitem autenticação com login e senha, o token retornado na autenticação deve ser enviado no cabeçalho das chamadas seguintes.\
Segue exemplo de autenticação:

{% tabs %}
{% tab title="C#" %}

```csharp
var client = new RestClient("https://[empresa].treina.tagone.com.br/api/token");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("UserName", "nome_usuario");
request.AddParameter("Password", "senha");
request.AddParameter("grant_type", "password");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```

{% endtab %}

{% tab title="JavaScript" %}

```csharp
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");

var urlencoded = new URLSearchParams();
urlencoded.append("UserName", "nome_usuario");
urlencoded.append("Password", "senha");
urlencoded.append("grant_type", "password");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: urlencoded,
  redirect: 'follow'
};

fetch("https://[empresa].treina.tagone.com.br/api/token", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endtab %}
{% endtabs %}

```csharp
{
    "access_token": "token_autenticado",
    "token_type": "bearer",
    "expires_in": 2591999,
    "CodigoPessoa": "000000000213934",
    "NomePessoa": "Nome da pessoa cadastrada",
    "IsAdmin": false
}
```

Toda requisição subsequente deve conter o token retornado no **header** da chamada.

{% tabs %}
{% tab title="C#" %}

```csharp
var client = new RestClient("https://[empresa].treina.tagone.com.br/odata/Acordo");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer token_autenticado");
```

{% endtab %}

{% tab title="JavaScript" %}

```
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer token_autenticado");
```

{% endtab %}
{% endtabs %}
