# Autenticación

Las APIs descritas en esta documentación usan autenticación OAuth 2.0. Esto significa que todas las solicitudes deben incluir un access token. Este token se obtiene mediante una solicitud de autenticación con su Client ID y Client Secret.

## Obtener el access token

Para comenzar el proceso de integración del backend, primero debe obtener un **access token**. Esto requiere su **Client ID** y **Client Secret**, que se envían por correo electrónico al registrarse en el Merchant Portal. Si no ha recibido estas credenciales, contacte al soporte de Getnet.

Cada access token es válido durante **60 minutos**. Le recomendamos implementar un mecanismo que obtenga un nuevo token de forma automática antes de que expire el actual. Así garantiza acceso continuo a las APIs.

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

* [**https://api.pre.globalgetnet.com**](https://api.pre.globalgetnet.com) (entorno de homologación)
* [**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 completó el proceso de autenticación, continúe con los próximos pasos:

* Cree su primera transacción de pago: [Quickstart: Create Payment](/es/web-checkout/first-steps-wbc/quick-create-payment-wbc)
* Consulte todas las opciones de pago disponibles: [Supported Payment Methods](https://docs.globalgetnet.com/en/products/online-payments/regional-api)