factus-js iconfactus-js

Autenticación

Cómo funciona la autenticación OAuth2 automática en factus-js para conectarse a la API de facturación electrónica Factus.

La API de Factus utiliza OAuth2 para autenticar a los clientes. factus-js gestiona todo el ciclo de vida del token de forma completamente automática por lo que no necesitas llamar ningún método de autenticación manualmente.

Para más información revisa la documentación original: Introducción a la autenticación.

Configuración

Pasa las credenciales al constructor de FactusClient:

import { FactusClient } from "factus-js";

const factus = new FactusClient({
  clientId: "tu-client-id",
  clientSecret: "tu-client-secret",
  username: "tu@email.com",
  password: "tu-contraseña",
  environment: "sandbox", // o "production"
});

Prop

Type

URLs base

EntornoURL
sandboxhttps://api-sandbox.factus.com.co
productionhttps://api.factus.com.co

Ciclo de vida del token

El SDK gestiona el token internamente mediante la clase HttpClient. El flujo es el siguiente:

  1. Primera llamada: antes de la primera petición HTTP, el SDK hace un POST /oauth/token con grant_type=password para obtener un access token y un refresh token.
  2. Buffer de expiración: el SDK considera el token expirado 60 segundos antes de su expiración real, para evitar errores por latencia de red.
  3. Renovación automática: cuando el token está próximo a expirar, el SDK hace un POST /oauth/token con grant_type=refresh_token usando el refresh token almacenado.
  4. Relogin como fallback: si el refresh token falla por cualquier motivo, el SDK reinicia sesión automáticamente con las credenciales originales.

Todo este proceso es transparente. Puedes hacer llamadas a la API sin preocuparte por los tokens.

Entorno sandbox

Factus ofrece un entorno de pruebas (sandbox) completamente separado del entorno de producción. Usa environment: "sandbox" durante el desarrollo para no generar documentos fiscales reales.

// Desarrollo / pruebas
const factus = new FactusClient({
  // ... credenciales de sandbox
  environment: "sandbox",
});

// Producción
const factus = new FactusClient({
  // ... credenciales de producción
  environment: "production",
});

Las credenciales de sandbox y producción son distintas. Asegúrate de usar las correctas para cada entorno.

Seguridad

  • Guarda siempre las credenciales en variables de entorno (.env.local), nunca directamente en el código fuente.
  • Nunca expongas credenciales en el lado del cliente. factus-js está diseñado para ejecutarse en entornos de servidor (Node.js, Edge Runtime, etc.).

En esta página