# Autenticação

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

## Obtenha o access token

Para iniciar o processo de integração do backend, você deve primeiro obter um **access token**. Isso requer seu **Client ID** e **Client Secret**, enviados por e-mail quando você se cadastra 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, garantindo acesso contínuo às APIs.

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

* [**https://api.pre.globalgetnet.com**](https://api.pre.globalgetnet.com) (ambiente de homologação)
* [**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:

* Crie sua primeira transação de pagamento: [Quickstart: Criar Pagamento](/pt/web-checkout/first-steps-wbc/quick-create-payment-wbc)
* Veja todas as opções de pagamento disponíveis: [Métodos de Pagamento Suportados](https://docs.globalgetnet.com/en/products/online-payments/regional-api)