josemmo/facturae-php

Librería para la generación, firma y envío de facturas electrónicas

Maintainers

👁 josemmo

Package info

github.com/josemmo/Facturae-PHP

pkg:composer/josemmo/facturae-php

Fund package maintenance!

josemmo

Statistics

Installs: 610 573

Dependents: 0

Suggesters: 0

Stars: 285

Open Issues: 0

v1.8.4 2025-11-24 14:05 UTC

Requires

  • php: >=5.6

Requires (Dev)

Suggests

  • ext-curl: For communicating with remote TSA Servers and SOAP Web Services
  • ext-fileinfo: For getting MIME types when using FacturaeFile
  • ext-openssl: For signing and timestamping both invoices and SOAP requests
  • lib-libxml: For parsing SOAP XML responses for FACe and FACeB2B

Provides

None

Conflicts

None

Replaces

None

MIT 21283e460d2a24d58c06454596fcaecc63c8f123

facefacturaexadesfaceb2b


README

👁 CI
👁 Codacy Badge
👁 Coverage
👁 Última versión estable
👁 Versión de PHP
👁 Documentación

Facturae-PHP es un paquete escrito puramente en PHP que permite generar facturas electrónicas siguiendo el formato estructurado Facturae, añadirlas firma electrónica XAdES y sellado de tiempo, e incluso enviarlas a FACe o FACeB2B sin necesidad de ninguna librería o clase adicional.

Note

Esta librería no genera registros de facturación de VERI*FACTU. Para ello, consulta Verifactu-PHP.

En apenas 25 líneas de código y con un tiempo de ejecución inferior a 0,4 µs es posible generar, firmar y exportar una factura electrónica totalmente válida:

$fac = new Facturae();
$fac->setNumber('FAC201804', '123');
$fac->setIssueDate('2018-04-01');

$fac->setSeller(new FacturaeParty([
 "taxNumber" => "A00000000",
 "name" => "Perico de los Palotes S.A.",
 "address" => "C/ Falsa, 123",
 "postCode" => "12345",
 "town" => "Madrid",
 "province" => "Madrid"
]));
$fac->setBuyer(new FacturaeParty([
 "isLegalEntity" => false,
 "taxNumber" => "00000000A",
 "name" => "Antonio",
 "firstSurname" => "García",
 "lastSurname" => "Pérez",
 "address" => "Avda. Mayor, 7",
 "postCode" => "54321",
 "town" => "Madrid",
 "province" => "Madrid"
]));

$fac->addItem("Lámpara de pie", 20.14, 3, Facturae::TAX_IVA, 21);

$fac->sign("certificado.pfx", null, "passphrase");
$fac->export("mi-factura.xsig");

También permite firmar facturas que hayan sido generadas con otro programa:

$signer = new FacturaeSigner();
$signer->loadPkcs12("certificado.pfx", "passphrase");

$xml = file_get_contents(__DIR__ . "/factura.xml");
$signedXml = $signer->sign($xml);
file_put_contents(__DIR__ . "/factura.xsig", $signedXml);

Requisitos

  • PHP 5.6 o superior
  • OpenSSL (solo para firmar facturas)
  • cURL (solo para timestamping y FACe / FACeB2B)
  • libXML (solo para FACe y FACeB2B)

Características

Usan Facturae-PHP

Estas son algunas de las organizaciones y soluciones software que usan Facturae-PHP o mantienen un fork interno basado en el código de la librería:

👁 Holded
👁 hotelgest
👁 InvoiceNinja
👁 FacturaScripts

Licencia

Facturae-PHP se encuentra bajo licencia MIT. Eso implica que puedes utilizar este paquete en cualquier proyecto (incluso con fines comerciales), siempre y cuando hagas referencia al uso y autoría de la misma.