# API · Autenticación

> Cómo obtener el token del API y el token del SDK, cuánto duran y cómo se envían en cada llamada.

- kind: api-operation
- status: stable
- api_version: v1
- last_verified: 2026-08-28
- url: https://www.tilopay.com/developers/api/autenticacion

Todo el API y el SDK viven en un único host: `https://app.tilopay.com`. No hay un host
distinto para pruebas — ver [entornos](/developers/concepts/entornos).

## Las dos operaciones [#operaciones]

| Operación | Ruta | Para qué |
|---|---|---|
| Token del API | `POST /api/v1/login` | Llamadas servidor a servidor al API |
| Token del SDK | `POST /api/v1/loginSdk` | El token que se le pasa a `Tilopay.Init()` |

`loginSdk` es el método que el artículo anterior llamaba "GetTokenSdk". Es el mismo.

## Obtener el token del API [#token-api]

```bash
curl -X POST https://app.tilopay.com/api/v1/login \
  -H "Content-Type: application/json" \
  -d '{ "apiuser": "TU_APIUSER", "password": "TU_PASSWORD" }'
```

### Cuerpo [#cuerpo]

<Param id="login-apiuser" name="apiuser" type="string" required>
Usuario de API del comercio.
</Param>

<Param id="login-password" name="password" type="string" required>
Contraseña de API del comercio.
</Param>

### Respuesta [#respuesta]

<Param id="login-access-token" name="access_token" type="string">
El token que se envía en las llamadas siguientes.
</Param>

<Param id="login-token-type" name="token_type" type="string">
Siempre `bearer`.
</Param>

<Param id="login-expires-in" name="expires_in" type="integer">
Vigencia del token. El tiempo exacto viene en esta respuesta: no lo asumás desde el
cliente.
</Param>

## Obtener el token del SDK [#token-sdk]

```bash
curl -X POST https://app.tilopay.com/api/v1/loginSdk \
  -H "Content-Type: application/json" \
  -d '{ "apiuser": "TU_APIUSER", "password": "TU_PASSWORD" }'
```

El token resultante es el que se pasa al parámetro `token` de
[`Tilopay.Init()`](/developers/sdk/reference/init).

## Vigencia [#vigencia]

- **Token del API: 24 horas.**
- **Token del SDK: 1 hora.**

El valor exacto siempre llega en `expires_in`. Cachealo del lado servidor y renovalo
cuando expire.

## Cómo se envía [#envio]

```http
Authorization: bearer <token>
```

## Revocación y límites [#revocacion]

- **Los tokens no se pueden revocar.** Si un token se filtra, no hay una operación para
  invalidarlo: hay que tratar la fuga como un incidente y rotar credenciales con Tilopay.
- **No hay límite** de tokens simultáneos por comercio. Podés pedir uno por proceso sin
  invalidar los anteriores.

## Dónde se obtienen las credenciales [#credenciales]

`apiuser`, `password` y `key` se obtienen en el panel del comercio, en
`admin.tilopay.com/admin/checkout`. Si no tenés acceso todavía, empezá por
[el registro de developer](/developers/registro).

<Callout type="warn">
Nunca pongas `apiuser` ni `password` en el navegador. El login corre en tu servidor; al
navegador solo baja el token del SDK.
</Callout>
