XmlPeruDevDocs

Autenticación (usuario / contraseña)

Intercambia el usuario y la contraseña de la empresa por un token de acceso temporal (Bearer) que luego se usa en los endpoints de compatibilidad.

Autenticación: usuario/contraseña (sin Bearer).

Consideraciones

  • Pensado para migrar sin cambiar el flujo: si tu proveedor actual usa login con usuario y contraseña, aquí funciona igual.
  • El usuario/contraseña son las credenciales SOAP de la empresa (soap_username/soap_password). Se obtienen al crear la empresa o con GET credenciales.
  • El token caduca en 1 hora (expires_in, en segundos). Renuévalo volviendo a iniciar sesión: pasado ese tiempo los endpoints responden 401.
  • Cada login reemplaza la sesión anterior: hay una viva por empresa. Si tienes dos procesos emitiendo y ambos inician sesión, el segundo deja fuera al primero — usa el token permanente si necesitas varios a la vez.
  • No afecta al token permanente de la empresa: los dos estilos pueden convivir.
  • El token devuelto tiene el ámbito de firma de la empresa; úsalo como Authorization: Bearer en generar, enviar y consultar.
  • Alternativa API-first (sin login): usa directamente el token de empresa con ámbito cpe:sign.
  • Acepta también las llaves en español usuario/contrasena además de username/password.
  • La respuesta incluye entorno (demo · produccion): compáralo con el que tenga configurado tu sistema antes de emitir. Es el mismo dato que devuelve GET /v1/me.
POSThttps://api.xmlperu.dev/api/auth/cpe/tokenCopiar

Cuánto dura

El token caduca en 1 hora. La respuesta lo dice en expires_in (y en expira_en, para clientes que esperan el nombre en español), así que no hace falta suponerlo: renueva cuando se acerque ese tiempo, o vuelve a iniciar sesión al recibir un 401.

Una sesión por empresa

Cada login reemplaza la sesión anterior. Si tu sistema emite desde dos procesos y ambos inician sesión, el segundo deja al primero sin token y este empezará a recibir 401.

Para ese caso usa el token permanente, que no caduca ni se reemplaza. Los dos estilos conviven: iniciar sesión no invalida el token permanente.

Este endpoint existe para que un cliente que ya integró con otro proveedor (login usuario/contraseña) pueda migrar sin reescribir su autenticación. Si estás integrando desde cero, te recomendamos el token de empresa directo (ámbito cpe:sign), que evita el paso de login.

Headers

NameTypeDescription
Acceptstringapplication/json
Content-Typestringapplication/json

Body

NameTypeDescription
usuario*stringUsuario de la empresa (soap_username). Acepta también username.
password*stringContraseña de la empresa (soap_password). Acepta también contrasena.

Ejemplo de solicitud

Copiar
curl -X POST https://api.xmlperu.dev/api/auth/cpe/token \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "usuario": "t22kwlgu",
  "password": "5OrDJAfa"
}'

Respuesta

200 Token emitidoapplication/json
Devuelve el token en inglés (access_token) y en español (token_acceso) para máxima compatibilidad. expires_in está en segundos.
{
  "access_token": "26|J3krUfzfhfXnHFG0fZqNx2rH4TtwOK7BIuLSAV9Q54abd74d",
  "expires_in": 86400,
  "token_acceso": "26|J3krUfzfhfXnHFG0fZqNx2rH4TtwOK7BIuLSAV9Q54abd74d",
  "expira_en": 86400,
  "entorno": "demo"
}
401 Credenciales inválidasapplication/json
El usuario o la contraseña no corresponden a ninguna empresa.
{
  "success": false,
  "message": "No autorizado (no ha iniciado sesión)"
}