# Autenticación

Las APIs descritas en esta documentación usan autenticación OAuth2. Esto significa que todas las solicitudes deben incluir un token de acceso, que se obtiene mediante una solicitud de autenticación con tu Client ID y Client Secret.

## Obtener el token de acceso

Para comenzar el proceso de integración backend, primero debes obtener un **token de acceso**. Esto requiere tu **Client ID** y **Client Secret**, que se envían por correo electrónico cuando te registras en el Merchant Portal. Si no recibiste estas credenciales, contacta al soporte de Getnet.  

Ten en cuenta que cada token de acceso es válido durante **60 minutos**. Se recomienda implementar un mecanismo que obtenga automáticamente un nuevo token antes de que expire el actual, para garantizar un acceso ininterrumpido a las APIs.

Para consumir las APIs, usa los siguientes valores DNS para la clave `host_getnet_api`:

* [**https://api.globalgetnet.com**](https://api.globalgetnet.com) (entorno de producción)

**Ejemplo de solicitud con 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}}'
```

**Respuesta**

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

**Ejemplo de solicitud con Node.js y 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);
});
```

**Ejemplo de solicitud con 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 pasos

Ahora que completaste el proceso de autenticación, continúa con los siguientes pasos:

* [Cómo configurar un payment link](/es/payment-link-api/first-step-plk/configure-link-plk)
* [Métodos de pago admitidos](/es/payment-link-api/first-step-plk/suported-payments-methods-plk)