# Introducción

PHP FacturaE es una librería moderna y tipada para generar, validar y firmar facturas electrónicas en formato FacturaE — el estándar oficial de facturación electrónica en España.

¿Qué es FacturaE?

FacturaE es el formato de factura electrónica basado en XML exigido por las Administraciones Públicas españolas (AAPP) y ampliamente adoptado en el sector privado. Está gestionado por la Agencia Tributaria (AEAT) y garantiza el cumplimiento fiscal y la interoperabilidad.

¿Por qué PHP FacturaE?

PHP FacturaE proporciona una API fluent y tipada que hace que crear facturas conformes sea intuitivo y libre de errores:

Invoice::create('FAC-001')
->series('A')
->date('2025-03-01')
->seller(Party::company('B12345678', 'Mi Empresa S.L.')
->address('C/ Mayor 10', '28013', 'Madrid', 'Madrid'))
->buyer(Party::person('12345678Z', 'Laura', 'Gómez', 'Ruiz')
->address('C/ Sol 3', '28012', 'Madrid', 'Madrid'))
->line('Diseño logotipo', price: 450.00, vat: 21)
->transferPayment(iban: 'ES91 2100 0418 4502 0005 1332', dueDate: '2025-03-31')
->export('factura.xml');

Características principales

  • API fluent con Enums — Sin arrays asociativos ni constantes sueltas — todo tipado con enums y propiedades readonly de PHP 8.2+
  • Firma digital XAdES-EPES — Soporte nativo para certificados PKCS#12 (.pfx) y PEM con sellado de tiempo TSA opcional
  • Validación XSD — Validación automática contra los esquemas oficiales FacturaE 3.2, 3.2.1 y 3.2.2
  • Cero dependencias — Solo extensiones PHP estándar: ext-openssl, ext-dom — sin paquetes externos

Soporte fiscal completo

  • 29 tipos impositivos incluyendo IVA, IRPF, IGIC, recargo de equivalencia e impuestos especiales
  • 19 métodos de pago desde transferencia hasta tarjeta y domiciliación
  • 36 unidades de medida desde unidades hasta kWh y horas
  • 22 motivos de corrección para facturas rectificativas

Rendimiento

  • ~0.2 ms por factura simple
  • ~22 ms para 100 facturas
  • Generación XML eficiente con huella de memoria mínima

Casos de uso

  • Plataformas SaaS que generan facturas para clientes españoles
  • E-commerce que necesita formato FacturaE para ventas B2B
  • Software de contabilidad con integración FACe/FACeB2B
  • Autónomos y agencias que facturan a la Administración Pública

Arquitectura

La librería está organizada en namespaces enfocados:

  • Invoice — Punto de entrada principal con API fluent
  • Party — Entidades vendedor/comprador (empresas e individuos)
  • Entities/ — Líneas, pagos, adjuntos, desglose fiscal, direcciones
  • Enums/ — Tipos impositivos, métodos de pago, tipos de factura, motivos de corrección
  • Exporter/ — Generación XML
  • Signer/Firma digital XAdES-EPES
  • Validation/Validación contra esquemas

Cada clase usa propiedades readonly y tipos estrictos (PHP 8.2+) para máxima seguridad y soporte de autocompletado en el IDE.