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"
}
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"
}
}
Renueva el token a los 50 minutos para evitar que expire durante una operación crítica.
Próximos pasos
- 📊 Perfil Summary - Consultar datos básicos de empresas
- ❓ Preguntas Frecuentes - Dudas comunes sobre autenticación