Skip to main content

Autenticación

Sheriff API usa un flujo de autenticación de dos pasos: primero obtienes un token JWT con tus credenciales, luego usas ese token en cada request.

1. Obtener token JWT

Endpoint

POST /v1/auth/token

Header Requerido

Debes enviar el header Authorization con el esquema Basic, codificando tus credenciales en Base64 (accessKey:accessSecret).

Ejemplos de Request

# Reemplaza TUS_CREDENCIALES_BASE64 por base64(key:secret)
curl -X POST https://api.sheriff.pe/v1/autenticacion/obtener-token \
-H "Authorization: Basic TUS_CREDENCIALES_BASE64"
const fetch = require("node-fetch");

const accessKey = process.env.SHERIFF_ACCESS_KEY;
const accessSecret = process.env.SHERIFF_ACCESS_SECRET;
const credentials = Buffer.from(`${accessKey}:${accessSecret}`).toString(
"base64"
);

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

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

Respuesta exitosa (200)

{
"token": "eyJhbGciOiJI.abc123...",
"expiresIn": "1h",
"tokenType": "Bearer"
}
info

El token expira en 1 hora. Usa el endpoint /autenticacion/refrescar-token para renovarlo sin volver a enviar tus credenciales.

Errores comunes

401 - Credenciales inválidas

{
"statusCode": 401,
"error": "Unauthorized",
"message": "Invalid credentials"
}

Causa: accessKey o accessSecret incorrectos.

401 - Credenciales deshabilitadas

{
"statusCode": 401,
"error": "Unauthorized",
"message": "Credentials are disabled"
}

Causa: Tu cuenta fue suspendida. Contacta a soporte.

401 - Header faltante

{
"statusCode": 401,
"error": "Unauthorized",
"message": "Missing Authorization header"
}

Causa: No enviaste el header Authorization.


2. Usar el token

Incluye el token en el header Authorization de cada request:

Authorization: Bearer <tu-token-jwt>

Ejemplo

curl https://api.sheriff.pe/v1/perfiles/201XXXX8056/resumen \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";

const response = await fetch(
"https://api.sheriff.pe/v1/perfiles/201XXXX8056/resumen",
{
headers: {
Authorization: `Bearer ${token}`,
},
}
);

const empresa = await response.json();
console.log(empresa.razonSocial);

3. Renovar token

Antes de que expire (1 hora), renuévalo sin volver a enviar tus credenciales.

Endpoint

POST /v1/autenticacion/refrescar-token

Request

curl -X POST https://api.sheriff.pe/v1/autenticacion/refrescar-token \
-H "Authorization: Bearer <tu-token-actual>"

Respuesta (200)

{
"statusCode": 200,
"data": {
"token": "eyJhbGci... (nuevo token)",
"expiresIn": "1h",
"tokenType": "Bearer"
}
}
Buena práctica

Renueva el token a los 50 minutos para evitar que expire durante una operación crítica.


Próximos pasos