Formulario de Testing — Veri*Fac*WOO

1. Instalación y activación

1.1. Activar plugin → sin fatales PHP OBL
1.2. Verificar tablas creadas: vfwoo_invoices, vfwoo_invoice_events, vfwoo_cron OBL
1.3. Plugin aparece en menú de WooCommerce OBL
1.4. Tab API muestra badge rojo "Sin conexión" y versión del plugin OBL
1.5. API key válida → badge azul "Conectado - Sandbox/Producción" y redirección a tab General OBL
1.6. API key inválida → mensaje "Conexión fallida: Unauthorized" y badge rojo OBL
1.7. Desactivar y reactivar → sin errores OBL
1.8. Activar con otro plugin de facturación activo → sin conflictos JS/CSS OPC

2. Configuración — Tab General

2.1. NIF empresa se muestra (campo solo lectura — editable desde Tab API) OBL
2.2. Guardar política "Al completar pago" → se persiste OBL
2.3. Guardar política "Al cambiar a estado Completado" → se persiste OBL
2.4. Activar facturas simplificadas F2 → aparece opción "Sector autorizado" OBL
2.5. Desactivar F2 → opción "Sector autorizado" se oculta OBL
2.6. F2 activo + sector autorizado activo → ambos persisten al recargar OPC

3. Configuración — Tab API

3.1. Guardar API key válida → sin error, se persiste OBL
3.2. Guardar API key vacía → mensaje de error o advertencia visible OBL
3.3. Test de conexión con key válida → respuesta correcta OPC

4. Configuración — Tab PDF

4.1. Guardar ajustes de PDF → sin errores OBL
4.2. Cambiar datos empresa en PDF y guardar → persisten al recargar OBL

5. Configuración — Tab IVA

5.1. Mapeo de impuestos WC visible (tasas definidas en WooCommerce) OBL
5.2. Asignar tipo fiscal a cada tasa y guardar → persiste OBL
5.3. Guardar sin mapear una tasa → se guarda sin romper nada OBL
5.4. Añadir nueva tasa en WC → aparece en el mapeo al recargar tab OPC

6. Configuración — Tab Numeración

6.1. Serie de factura normal configurable y guardable OBL
6.2. Serie de rectificativa configurable y guardable OBL
6.3. Número inicial configurable y guardable OBL
6.4. Forzar número de inicio y emitir → factura usa ese número OPC

7. Configuración — Tab Factura

7.1. Ajustes guardables sin error OBL
7.2. Cambiar descripción de factura → se refleja en payload OPC

8. Configuración — Tab Extras

8.1. Ajustes guardables sin error OBL
8.2. Activar debug automático → captura requests en siguiente emisión OPC

9. Configuración — Tab Shortcodes

9.1. Tab carga sin error OBL
9.2. Lista de shortcodes disponibles visible OBL

10. Emisión manual — Vitamin (panel de pedido)

10.1. Panel Vitamin visible en pedido procesado OBL
10.2. Botón "Emitir" con API key válida → éxito, estado cambia a PEN/ENV OBL
10.3. Botón "Emitir" con API key inválida → error visible en modal, no rompe pedido OBL
10.4. Modal de debug muestra request y response correctamente OBL
10.5. No se puede emitir dos veces la misma factura (botón deshabilitado o warning) OBL
10.6. Emitir desde listado de pedidos (bulk action si existe) OPC

11. Emisión automática — Política "Al completar pago"

11.1. Crear pedido y marcar como pagado → factura emitida automáticamente OBL
11.2. Verificar en Tab Emisiones que aparece la factura OBL
11.3. Estado de la factura correcto (PEN o ENV según API) OBL

12. Emisión automática — Política "Al cambiar a estado Completado"

12.1. Cambiar pedido a "Completado" manualmente → factura emitida automáticamente OBL
12.2. Pago completado solo (sin completar pedido) → NO emite OBL
12.3. Verificar en Tab Emisiones OBL

13. Tipos de comprador — Factura Normal F1

13.1. Comprador particular con NIF español válido → tipo F1, nif en payload OBL
13.2. Empresa con NIF/CIF español → tipo F1, nif en payload OBL

14. Tipos de comprador — Factura Simplificada F2

14.1. F2 activado + comprador sin NIF → tipo F2, sin nif en payload OBL
14.2. F2 desactivado + comprador sin NIF → tipo F1 o error según configuración OBL
14.3. F2 + NIF inválido → comportamiento controlado (F2 o validación) OPC

15. Tipos de comprador — Comprador extranjero

15.1. País de facturación no ES + sin NIF español → payload incluye id_otro con código país OBL
15.2. País extranjero con NIF local del país → id_otro correcto OBL
15.3. País ES con NIF vacío y F2 desactivado → comportamiento controlado OPC

16. Tipos de pedido — IVA

16.1. Pedido con IVA 21% → línea de impuesto en payload correcta OBL
16.2. Pedido con IVA 10% → línea correcta OBL
16.3. Pedido con IVA 4% → línea correcta OBL
16.4. Pedido exento 0% → línea con tipo_impositivo: 0 OBL
16.5. Pedido con múltiples productos a distintos IVAs → múltiples líneas en payload OBL
16.6. Pedido con descuento → importe total correcto en payload OPC

17. Rectificativas (reembolsos WooCommerce)

17.1. Reembolso total de pedido con factura F1 emitida → genera R1, referencia factura original OBL
17.2. Reembolso parcial → genera R1 con importe correcto OBL
17.3. Reembolso de 0€ → bloqueado, sin emisión, sin error fatal OBL
17.4. Pedido sin factura previa → reembolso no emite rectificativa (o warning controlado) OBL
17.5. Reembolso de F2 → genera negativo F2 o sustitución según lógica del builder OPC

18. Anulación

18.1. Anular factura emitida (desde Vitamin) → request de cancelación enviado a API OBL
18.2. Estado cambia a CAN en Tab Emisiones OBL
18.3. Anular factura ya anulada → error controlado, sin fatal OBL
18.4. Anular factura en estado PEN → comportamiento controlado OPC

19. Cron — Verificación de facturas pendientes

19.1. Factura en estado PEN → cron ejecuta verificación de estado con API OBL
19.2. API responde "no encontrada" → registro eliminado de verifactu_cron (sin reintento infinito) OBL
19.3. Forzar ejecución de cron manualmente (WP-CLI o Action Scheduler) → sin fatales OPC

20. PDF

20.1. Descarga PDF desde pedido admin → PDF generado correctamente OBL
20.2. PDF incluye datos de empresa, NIF, líneas de pedido OBL
20.3. PDF de rectificativa → diferenciado visualmente OBL
20.4. Preview PDF en navegador → sin errores de header OPC

21. QR VERIFACTU

21.1. QR visible en pedido admin tras emisión OBL
21.2. QR es imagen válida (no roto) OBL
21.3. QR incluido en email al cliente (si configurado) OPC

22. Shortcodes en frontend

22.1. Shortcode de descarga PDF funciona en página de pedido cliente OBL
22.2. Shortcode de QR funciona en página de pedido cliente OPC

23. Tab Diagnóstico

23.1. Tab carga sin errores OBL
23.2. Muestra estado de configuración (NIF, API key, extensiones PHP) OBL
23.3. Muestra comparativa legacy vs nuevo de options OBL
23.4. Con API key inválida → diagnóstico lo detecta OPC

24. Seguridad y permisos

24.1. Usuario sin manage_woocommerce no ve menú del plugin OBL
24.2. AJAX de emisión sin nonce válido → deniega con 403 OBL
24.3. AJAX de anulación sin nonce válido → deniega con 403 OBL
24.4. Endpoint AJAX público nopriv no existe (QR sin autenticación bloqueado) OPC
Escenarios Fiscales

25. Fiscal — Nacional estándar

25.1. IVA (21%/10%/4%/0%) OBL
25.2. Cálculo IVA desglosado OBL
25.3. Validación NIF español OBL
25.4. Retención IRPF si autónomo OPC

26. Fiscal — Nacional exento

26.1. Exento IVA (e.g., educación, sanidad) OBL
26.2. Asegurar 0% IVA OBL
26.3. Mención legal de exención (art. 20 LIVA) OPC

27. Fiscal — Territorios especiales: Canarias

27.1. Exento IVA OBL
27.2. No cobrar IVA OBL
27.3. IGIC aplica en destino (no gestionado por emisor) OBL
27.4. Marcar exención (art. 21 LIVA) OPC
27.5. Probar exportación de bienes OPC

28. Fiscal — Territorios especiales: Ceuta/Melilla

28.1. Exento IVA OPC
28.2. No cobrar IVA OPC
28.3. IGIC aplica en destino (no gestionado por emisor) OPC
28.4. Marcar exención (art. 21 LIVA) OPC
28.5. Probar exportación de bienes OPC

29. Fiscal — Intracomunitario (UE) B2B

29.1. Exento IVA si VAT válido (reverse charge) OBL
29.2. Error si VAT inválido OBL
29.3. Verificar VAT con VIES OPC
29.4. Mención "Inversión del sujeto pasivo" OPC

30. Fiscal — Intracomunitario (UE) B2C

30.1. IVA español aplica (límite umbral 10.000€/año para servicios digitales) OPC
30.2. Cálculo IVA origen; umbrales para reverse charge OPC

31. Fiscal — Exportación no UE

31.1. Exento IVA (exportación) OBL
31.2. No IVA en factura OBL
31.3. Justificante exención (e.g., DUA aduanas) OPC

32. Fiscal — Exportación no UE con impuestos

32.1. Servicio no califica como exportación → aplicar IVA si regla de localización lo requiere OPC

33. Fiscal — Operaciones mixtas

33.1. Desglose por línea; validación totales OBL
33.2. IVA parcial + exenciones en mismo pedido OPC