Saltar al contenido principal
Version: v1

Obtener Token

La API de Sheriff usa autenticación basada en tokens JWT. Este endpoint intercambia tus credenciales de API (accessKey y accessSecret) por un token de acceso que deberás incluir en el resto de las solicitudes.

Credenciales de API

Las credenciales se obtienen desde el dashboard de Sheriff. Consulta la guía de autenticación para conocer el flujo completo y las buenas prácticas de cacheo del token.

Vigencia del Token

El token tiene una vigencia de 1 hora. Para renovarlo sin volver a enviar tus credenciales, usa el endpoint de Refrescar Token.


Endpoint​

POST /v1/autenticacion/obtener-token

Rate Limit

Los endpoints de autenticación están limitados a un máximo de 10 intentos cada 15 minutos por IP. Al superar el límite, la API responde con 429 Too Many Requests. Cachea el token y reutilízalo durante su vigencia en lugar de solicitarlo en cada llamada.

Headers​

HeaderRequeridoDescripción
AuthorizationSíEsquema Basic con tus credenciales codificadas en Base64: Basic <base64(accessKey:accessSecret)>

Este endpoint no recibe cuerpo (body). Las credenciales viajan únicamente en el header Authorization.

Ejemplo de Solicitud​

# Reemplaza TUS_CREDENCIALES_BASE64 por base64(accessKey:accessSecret)
curl -X POST https://api-public.thesheriff.pe/v1/autenticacion/obtener-token \
-H "Authorization: Basic TUS_CREDENCIALES_BASE64"
const accessKey = process.env.SHERIFF_ACCESS_KEY;
const accessSecret = process.env.SHERIFF_ACCESS_SECRET;
const credentials = Buffer.from(`${accessKey}:${accessSecret}`).toString(
"base64",
);

const response = await fetch(
"https://api-public.thesheriff.pe/v1/autenticacion/obtener-token",
{
method: "POST",
headers: {
Authorization: `Basic ${credentials}`,
},
},
);

const { data } = await response.json();
console.log("Token:", data.token);

Ejemplo de Respuesta​

Una respuesta exitosa (200 OK) devuelve el token de acceso dentro del objeto data.

{
"statusCode": 200,
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expiresIn": "1h",
"tokenType": "Bearer"
}
}

Descripción de Campos​

CampoTipoDescripción
data.tokenstringToken JWT de acceso. Inclúyelo como Authorization: Bearer <token> en cada llamada.
data.expiresInstring | numberTiempo de vigencia del token (por defecto 1h).
data.tokenTypestringTipo de token. Siempre Bearer.

Errores​

Los errores se devuelven con el código de estado HTTP correspondiente y la siguiente estructura:

{
"statusCode": 401,
"error": "Unauthorized",
"message": "Invalid credentials."
}
CódigomessageCausa
401Missing Authorization headerNo se envió el header Authorization.
401Invalid authorization format.El header no usa el esquema Basic o está mal formado.
401Invalid credentials format.El contenido Base64 no respeta el formato accessKey:accessSecret.
401Invalid credentials.El accessKey no existe.
401Credentials are disabled.Las credenciales fueron deshabilitadas. Contacta a soporte.
401Invalid secret for access key.El accessSecret no corresponde al accessKey.
429Authentication rate limit exceeded. Try again in N seconds.Se superó el límite de 10 intentos cada 15 minutos por IP.