PHPackages                             orangecat/module-verifactuapi - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. orangecat/module-verifactuapi

ActiveMagento2-module[API Development](/categories/api)

orangecat/module-verifactuapi
=============================

Magento 2 integration with Verifactu API for Spanish electronic invoicing (AEAT)

1.0.2(6mo ago)315↓100%1OSL-3.0PHPPHP ^7.4|^8.0|^8.1

Since Oct 25Pushed 6mo agoCompare

[ Source](https://github.com/olivertar/m2_verifactu)[ Packagist](https://packagist.org/packages/orangecat/module-verifactuapi)[ RSS](/packages/orangecat-module-verifactuapi/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (3)Versions (4)Used By (0)

Orangecat Verifactuapi - Módulo de Integración VERIFACTU para Magento 2
=======================================================================

[](#orangecat-verifactuapi---módulo-de-integración-verifactu-para-magento-2)

⚠️ AVISO IMPORTANTE
-------------------

[](#️-aviso-importante)

**Este módulo NO ha sido probado en ambientes productivos y debe ser utilizado bajo la exclusiva responsabilidad de quien lo instale y use.**

El módulo se proporciona "tal cual" sin garantías de ningún tipo. Se recomienda encarecidamente realizar pruebas exhaustivas en entornos de desarrollo y staging antes de considerar su uso en producción.

📋 Sobre VERIFACTU
-----------------

[](#-sobre-verifactu)

A partir de **julio de 2026**, la Agencia Tributaria española (AEAT) implementará el sistema **VERIFACTU** (anteriormente conocido como VeriFactu), que exigirá que todos los sistemas de facturación cumplan con los requisitos de trazabilidad e integridad establecidos en el reglamento.

Este módulo facilita la integración de Magento 2 con el sistema VERIFACTU para cumplir con esta obligación legal.

### ⚙️ Arquitectura de Integración

[](#️-arquitectura-de-integración)

**IMPORTANTE:** Este módulo **NO se comunica directamente con la API de la AEAT**. En su lugar, utiliza el servicio intermediario **VERIFACTU API de NEMON INVOCASH** (), que actúa como puente entre Magento y la AEAT.

**Flujo de trabajo:**

```
Magento 2 → VERIFACTU API (NEMON INVOCASH) → AEAT

```

🚀 Características Principales
-----------------------------

[](#-características-principales)

### Para el Cliente (Frontend)

[](#para-el-cliente-frontend)

- **Visualización de QR de Verificación:** Los clientes pueden ver el código QR de VERIFACTU directamente en:

    - Área privada de cliente (sección "Mis Pedidos" &gt; "Ver Factura")
    - Vista de impresión de facturas
- **URL de Verificación:** Junto al QR, se muestra la URL para verificar la factura en la sede electrónica de la AEAT
- **Mensajes de Estado:** Información clara sobre el estado de la factura:

    - Pendiente de envío
    - Enviada y pendiente de validación AEAT
    - Confirmada por AEAT
    - Advertencias (si las hay)

### Para el Administrador (Backend)

[](#para-el-administrador-backend)

#### Panel de Control de Facturas

[](#panel-de-control-de-facturas)

- **Columna de Estado Verifactu** en el grid de facturas con estados codificados por colores:

    - 🟠 Pendiente (pending)
    - 🟡 Reintento (retry)
    - 🔵 Enviada - esperando confirmación AEAT (sent)
    - 🟢 Confirmada por AEAT (confirmed)
    - 🟠 Confirmada con advertencias (warning)
    - 🔴 Fallida (failed)
- **Columna QR Code:** Visualización de códigos QR directamente en el grid (click para ampliar)
- **Acción de Reenvío Manual:** Botón "Enviar a Verifactu" en cada factura para forzar un reenvío
- **PDFs con QR:** Los PDFs de facturas generados desde el admin incluyen automáticamente el código QR de VERIFACTU

#### Grid de Logs de API

[](#grid-de-logs-de-api)

Accesible desde **Sistema &gt; Herramientas &gt; Verifactu API Logs**

- Registro detallado de todas las comunicaciones con la API
- Filtros por estado (success/error/pending)
- Enlaces directos a las facturas
- Visualización de totales y errores
- Limpieza automática configurable de logs antiguos

#### Webhooks

[](#webhooks)

- **Registro Automático:** Botón en la configuración para registrar el webhook en la API de VERIFACTU
- **Notificaciones en Tiempo Real:** Recepción automática de confirmaciones de la AEAT vía webhook
- **Seguridad:** Sistema de verificación de firma secreta

📦 Instalación
-------------

[](#-instalación)

```
composer require orangecat/module-verifactuapi
php bin/magento module:enable Orangecat_CspWhitelist
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
php bin/magento cache:flush
```

⚙️ Configuración
----------------

[](#️-configuración)

Navega a: **Tiendas &gt; Configuración &gt; Orangecat &gt; Verifactu API**

### 1. Configuración General (General Settings)

[](#1-configuración-general-general-settings)

- **Activar Módulo:** Habilita/deshabilita el módulo

### 2. Credenciales de API (API Credentials)

[](#2-credenciales-de-api-api-credentials)

- **Email de API:** Tu email de cuenta en VERIFACTU API
- **Contraseña de API:** Tu contraseña de API

> 💡 **Nota:** Necesitas crear una cuenta en  para obtener estas credenciales

### 3. Información del Emisor (Emisor Information)

[](#3-información-del-emisor-emisor-information)

- **NIF:** NIF/CIF de tu empresa
- **Nombre de Empresa:** Razón social de tu empresa
- **Código Postal:** Código postal de tu empresa

### 4. Configuración de Reintentos (Retry Settings)

[](#4-configuración-de-reintentos-retry-settings)

- **Número Máximo de Reintentos:** Cantidad de veces que se intentará enviar una factura antes de marcarla como fallida (predeterminado: 3)
- **Intervalo de Reintento (minutos):** Tiempo entre reintentos en minutos (predeterminado: 30)

### 5. Configuración de Notificaciones (Notification Settings)

[](#5-configuración-de-notificaciones-notification-settings)

- **Activar Notificaciones por Email:** Envía emails cuando una factura falla después de agotar los reintentos
- **Destinatarios de Email:** Lista de emails separados por comas
- **Remitente del Email:** Identidad del remitente

### 6. Configuración del Webhook (Webhook Configuration)

[](#6-configuración-del-webhook-webhook-configuration)

- **URL del Webhook Actual:** Muestra la URL del webhook de tu tienda
- **Botón Registrar Webhook:** Registra automáticamente el webhook en la API de VERIFACTU

### 7. Configuración de Visualización del QR (QR Display Settings)

[](#7-configuración-de-visualización-del-qr-qr-display-settings)

Personaliza los mensajes mostrados a los clientes:

- **Título de la Sección QR:** Título mostrado encima del QR
- **Mensaje de Pendiente:** Para facturas pendientes o en reintento
- **Mensaje de Esperando Confirmación:** Para facturas enviadas pero no confirmadas
- **Mensaje de Advertencia:** Para facturas confirmadas con advertencias
- **Mensaje de Fallo:** Para facturas que fallaron la validación

### 8. Configuración de Depuración (Debug Settings)

[](#8-configuración-de-depuración-debug-settings)

- **Activar Registro Detallado:** Guarda todos los requests y responses de la API en la base de datos
- **Días de Retención de Registros:** Número de días antes de eliminar logs automáticamente (predeterminado: 30)

🔄 Funcionamiento del Sistema
----------------------------

[](#-funcionamiento-del-sistema)

### Proceso Automático

[](#proceso-automático)

1. **Creación de Factura:** Cuando se crea una factura en Magento, se crea automáticamente un registro en estado "pendiente"
2. **Procesamiento por Cron:** El cron job (`*/5 * * * *` - cada 5 minutos) procesa hasta 50 facturas pendientes por ejecución
3. **Envío a VERIFACTU:** Las facturas se envían a la API de VERIFACTU con todos los datos fiscales necesarios
4. **Estado "Enviada":** La factura pasa a estado "sent" (enviada), esperando validación de la AEAT
5. **Webhook de Confirmación:** Cuando la AEAT valida la factura, VERIFACTU envía una notificación webhook con el resultado
6. **Estado Final:** La factura pasa a estado "confirmed" (confirmada), "warning" (confirmada con advertencias), o se reintenta si hay errores

### Gestión de Errores

[](#gestión-de-errores)

- Si una factura falla, el sistema la marca como "retry"
- Se reintentará según la configuración (por defecto, 3 intentos con 30 minutos entre cada uno)
- Si se agotan los reintentos, la factura se marca como "failed" y se envía notificación por email
- Los administradores pueden forzar el reenvío manualmente desde el grid de facturas

🌍 Idiomas Soportados
--------------------

[](#-idiomas-soportados)

El módulo incluye traducciones completas para:

- 🇪🇸 **Castellano** (es\_ES)
- 🇪🇸 **Catalán** (ca\_ES)
- 🇪🇸 **Gallego** (gl\_ES)
- 🇪🇸 **Euskera** (eu\_ES)

Las traducciones se encuentran en el directorio `i18n/`

🔧 Tareas Cron
-------------

[](#-tareas-cron)

El módulo registra dos tareas cron:

1. **Procesamiento de Facturas Pendientes**

    - Job: `orangecat_verifactuapi_process_pending`
    - Frecuencia: Cada 5 minutos (`*/5 * * * *`)
    - Función: Envía facturas pendientes a VERIFACTU (máximo 50 por ejecución)
2. **Limpieza de Logs Antiguos**

    - Job: `orangecat_verifactuapi_clean_logs`
    - Frecuencia: Diaria a las 2:00 AM (`0 2 * * *`)
    - Función: Elimina logs más antiguos que el período configurado

📊 Base de Datos
---------------

[](#-base-de-datos)

El módulo crea dos tablas:

1. **orangecat\_verifactu\_invoice:** Almacena el estado y datos de cada factura enviada a VERIFACTU
2. **orangecat\_verifactu\_api\_log:** Registra todas las comunicaciones con la API (si el debug está activado)

🐛 Debug y Resolución de Problemas
---------------------------------

[](#-debug-y-resolución-de-problemas)

### Activar Logs Detallados

[](#activar-logs-detallados)

1. Navega a la configuración del módulo
2. En "Debug Settings", activa "Activar Registro Detallado"
3. Revisa los logs en **Sistema &gt; Herramientas &gt; Verifactu API Logs**

### Logs del Sistema

[](#logs-del-sistema)

Los logs del módulo también se escriben en:

- `var/log/system.log`
- `var/log/exception.log`

Busca líneas que contengan "Verifactu" para filtrar información relevante.

### Problemas Comunes

[](#problemas-comunes)

**Facturas que no se envían:**

- Verifica que el módulo esté habilitado
- Comprueba las credenciales de API
- Revisa que el cron de Magento esté ejecutándose correctamente
- Consulta el grid de logs de API para ver errores específicos

**Webhook no funciona:**

- Asegúrate de haber registrado el webhook desde la configuración
- Verifica que tu servidor sea accesible desde internet (no localhost)
- Comprueba los logs de API para ver si se reciben las notificaciones

**PDFs sin QR:**

- Verifica que la factura esté en estado "confirmed" o "warning"
- Comprueba que el QR se haya guardado correctamente en la base de datos

📝 Notas Técnicas
----------------

[](#-notas-técnicas)

### Cálculo de Impuestos

[](#cálculo-de-impuestos)

El módulo agrupa automáticamente los artículos de la factura por tipo impositivo y los ajusta a las tasas válidas españolas (0%, 2%, 4%, 5%, 7.5%, 10%, 21%).

### Destinatario (Cliente)

[](#destinatario-cliente)

El NIF del cliente solo se incluye en el registro si:

- El campo `customer_taxvat` contiene un valor
- El valor tiene más de 5 caracteres

### Compatibilidad

[](#compatibilidad)

- **Magento:** 2.4.x
- **PHP:** 7.4+
- **Base de datos:** MySQL 5.7+ / MariaDB 10.2+

🤝 Soporte
---------

[](#-soporte)

No se brinda ningun tipo de soporte sobre el codigo de este modulo

Para soporte relacionado con la API de VERIFACTU, contacta con NEMON INVOCASH en

🔗 Enlaces Útiles
----------------

[](#-enlaces-útiles)

- **API VERIFACTU:**
- **Documentación AEAT sobre VERIFACTU:**
- **Normativa:** Reglamento de facturación (Real Decreto pendiente de publicación)

---

**Versión del módulo:** 1.0.0
**Última actualización:** 2025

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance66

Regular maintenance activity

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

196d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2b0424a2b27fcf1f5c4362f5ab7f4fc78b56dfffe4897c4fd8177623b50fb953?d=identicon)[olivertar](/maintainers/olivertar)

---

Top Contributors

[![olivertar](https://avatars.githubusercontent.com/u/959440?v=4)](https://github.com/olivertar "olivertar (4 commits)")

### Embed Badge

![Health badge](/badges/orangecat-module-verifactuapi/health.svg)

```
[![Health](https://phpackages.com/badges/orangecat-module-verifactuapi/health.svg)](https://phpackages.com/packages/orangecat-module-verifactuapi)
```

###  Alternatives

[smile/elasticsuite

Magento 2 merchandising and search engine built on ElasticSearch

8044.5M33](/packages/smile-elasticsuite)[mollie/magento2

Mollie Payment Module for Magento 2

1121.6M10](/packages/mollie-magento2)[dotdigital/dotdigital-magento2-extension

Dotdigital for Magento 2

50374.2k18](/packages/dotdigital-dotdigital-magento2-extension)[subscribepro/subscribepro-magento2-ext

Subscribe Pro Magento 2 Integration Extension

24157.3k](/packages/subscribepro-subscribepro-magento2-ext)[pagbank/payment-magento

PagBank - Payment for Magento and Adobe

2128.3k7](/packages/pagbank-payment-magento)[o2ti/sigep-web-carrier

O2TI - Sigep Web Carrier

141.5k](/packages/o2ti-sigep-web-carrier)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
