# 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 fluentParty— Entidades vendedor/comprador (empresas e individuos)Entities/— Líneas, pagos, adjuntos, desglose fiscal, direccionesEnums/— Tipos impositivos, métodos de pago, tipos de factura, motivos de correcciónExporter/— Generación XMLSigner/— Firma digital XAdES-EPESValidation/— 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.