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
- El usuario hace clic en el botón de facturación.
- El sistema valida que el ingreso tenga toda la información requerida.
- Se obtiene un token de autenticación de Factus.
- Se preparan los datos del ingreso en el formato requerido por Factus.
- Se realiza la solicitud a la API de Factus.
- 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.