# Autenticação

As APIs descritas nesta documentação usam autenticação OAuth2. Isso significa que todas as requisições devem incluir um access token, obtido por meio de uma requisição de autenticação com seu Client ID e Client Secret.

## Obtenha o access token

Para começar o processo de integração no backend, você precisa antes obter um **access token**. Isso exige seu **Client ID** e **Client Secret**, enviados por e-mail quando você se registra no Merchant Portal. Se você não recebeu essas credenciais, entre em contato com o suporte da Getnet.  

Cada access token é válido por **60 minutos**. Recomendamos implementar um mecanismo que obtenha automaticamente um novo token antes que o atual expire, para garantir acesso contínuo às APIs.

Para consumir as APIs, use os seguintes valores de DNS para a chave `host_getnet_api`:

* [**https://api.globalgetnet.com**](https://api.globalgetnet.com) (ambiente de produção)

**Exemplo de requisição com Curl**

```json
curl --location '{{host_getnet_api}}/authentication/oauth2/access_token' 
--header 'Content-Type: application/x-www-form-urlencoded' 
--header 'Accept: application/json' 
--data-urlencode 'grant_type=client_credentials' 
--data-urlencode 'client_id={{PUT_YOUR_CLIENT_ID_HERE}}' 
--data-urlencode 'client_secret={{PUT_YOUR_CLIENT_SECRET_HERE}}'
```

**Resposta**

```json
{
    "access_token": "eyJ0eXAiOiJKV1QiLCJraWQiOiI1amhLMy9xK0ZpK0tTRkIrRUwwN3VhMFYwdGM9Ii...",
    "scope": "name-scope:r",
    "token_type": "Bearer",
    "expires_in": 3599
}
```

**Exemplo de requisição com Node.js e Axios**

```json
const axios = require('axios');
const qs = require('qs');
let data = qs.stringify({
  'grant_type': 'client_credentials',
  'client_id': '{{client_id}}',
  'client_secret': '{{client_secret}}' 
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: '{{host_getnet_api}}/authentication/oauth2/access_token',
  headers: { 
    'Content-Type': 'application/x-www-form-urlencoded', 
    'Accept': 'application/json'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});
```

**Exemplo de requisição com PHP**

```json
<?php
$client = new Client();
$headers = [
  'Content-Type' => 'application/x-www-form-urlencoded',
  'Accept' => 'application/json'
];
$options = [
'form_params' => [
  'grant_type' => 'client_credentials',
  'client_id' => '{{client_id}}',
  'client_secret' => '{{client_secret}}'
]];
$request = new Request('POST', '{{host_getnet_api}}/authentication/oauth2/access_token', $headers);
$res = $client->sendAsync($request, $options)->wait();
echo $res->getBody();
```

### Próximos passos

Agora que você concluiu o processo de autenticação, siga para os próximos passos:

* [Como configurar um payment link](/pt/payment-link-api/first-step-plk/configure-link-plk)
* [Métodos de pagamento suportados](/pt/payment-link-api/first-step-plk/suported-payments-methods-plk)