Skip to content

Integración con Factus para Facturación Electrónica

Este módulo proporciona una integración con la API de Factus para la generación de facturas electrónicas.

Estructura de carpetas

app/
└── Services/
    └── Factus/
        ├── AuthService.php           # Servicio de autenticación
        ├── CatalogService.php        # Servicio para obtener catálogos
        ├── FacturaService.php        # Servicio principal para generar facturas
        ├── FactusHelper.php          # Constantes y datos de referencia
        └── README.md                 # Este archivo

Componentes principales

AuthService

Maneja la autenticación con la API de Factus, obteniendo y administrando tokens de acceso.

CatalogService

Gestiona la obtención de datos de catálogos como: - Rangos de numeración - Municipios - Tributos - Unidades de medida

FacturaService

Proporciona funcionalidad para generar facturas electrónicas a partir de los ingresos registrados en el sistema.

FactusHelper

Contiene constantes y métodos de utilidad para mapear datos entre el sistema y Factus.

Configuración

Las credenciales de acceso a Factus se obtienen de la tabla credenciales_facturacion en la base de datos, permitiendo credenciales diferentes para cada usuario/cliente.

Uso

La integración se utiliza a través del botón de "Facturar Electrónicamente" en la vista de ingresos, que realiza una solicitud AJAX al controlador FactusController.

Flujo de funcionamiento

  1. El usuario hace clic en el botón de facturación.
  2. El sistema valida que el ingreso tenga toda la información requerida.
  3. Se obtiene un token de autenticación de Factus.
  4. Se preparan los datos del ingreso en el formato requerido por Factus.
  5. Se realiza la solicitud a la API de Factus.
  6. Se muestra al usuario el resultado de la operación.

Modo de prueba vs. Producción

Por defecto, el sistema utiliza el entorno de sandbox para pruebas: - URL Base: https://api.factus.com.co

Para cambiar al entorno de producción, use el método setBaseUrl() de cada servicio.