Skip to content

📝 Genera, firma, envía y recibe facturas electrónicas sin necesidad de ninguna librería adicional

License

Notifications You must be signed in to change notification settings

josemmo/Facturae-PHP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

edb213c · Nov 23, 2024
Nov 23, 2024
Nov 23, 2024
Nov 23, 2024
Nov 23, 2024
Jul 2, 2023
Jul 2, 2023
Apr 10, 2019
Apr 10, 2021
Dec 1, 2018
Jan 17, 2019
Apr 15, 2024
Dec 1, 2018
Aug 3, 2024
Feb 5, 2022
Jan 31, 2021

Repository files navigation

Facturae-PHP

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.

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.