juanantoniodatabis/verifactu-php-8

Librería para la implementación del sistema VERI*FACTU de la AEAT española php 8.0

Fund package maintenance!
josemmo

Installs: 4

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/juanantoniodatabis/verifactu-php-8

dev-main 2026-01-08 11:02 UTC

This package is not auto-updated.

Last update: 2026-01-09 05:52:40 UTC


README

Forked from: https://github.com/josemmo/Verifactu-PHP Verifactu-PHP es una librería sencilla escrita en PHP que permite generar registros de facturación según el sistema VERI*FACTU y posteriormente enviarlos telemáticamente a la Agencia Tributaria (AEAT).

Este fork integra la libreria para una versión anterior de PHP.

Instalación

Asegúrate de que tu entorno de ejecución cumple los siguientes requisitos:

  • PHP 7.4 o superior
  • libXML

Ejemplo de uso

use juanantoniodatabis\Verifactu\Models\ComputerSystem;
use juanantoniodatabis\Verifactu\Models\Records\BreakdownDetails;
use juanantoniodatabis\Verifactu\Models\Records\FiscalIdentifier;
use juanantoniodatabis\Verifactu\Models\Records\InvoiceIdentifier;
use juanantoniodatabis\Verifactu\Models\Records\InvoiceType;
use juanantoniodatabis\Verifactu\Models\Records\OperationType;
use juanantoniodatabis\Verifactu\Models\Records\RegimeType;
use juanantoniodatabis\Verifactu\Models\Records\RegistrationRecord;
use juanantoniodatabis\Verifactu\Models\Records\TaxType;
use juanantoniodatabis\Verifactu\Models\Responses\ResponseStatus;
use juanantoniodatabis\Verifactu\Services\AeatClient;

require __DIR__ . '/vendor/autoload.php';

// Genera un registro de facturación
$record = new RegistrationRecord();
$record->invoiceId = new InvoiceIdentifier();
$record->invoiceId->issuerId = 'A00000000';
$record->invoiceId->invoiceNumber = 'TICKET-2025-06-001';
$record->invoiceId->issueDate = new DateTimeImmutable('2025-06-10');
$record->issuerName = 'Perico de los Palotes, S.A.';
$record->invoiceType = InvoiceType::Simplificada;
$record->description = 'Factura simplificada de prueba';
$record->breakdown[0] = new BreakdownDetails();
$record->breakdown[0]->taxType = TaxType::IVA;
$record->breakdown[0]->regimeType = RegimeType::C01;
$record->breakdown[0]->operationType = OperationType::Subject;
$record->breakdown[0]->baseAmount = '10.00';
$record->breakdown[0]->taxRate = '21.00';
$record->breakdown[0]->taxAmount = '2.10';
$record->totalTaxAmount = '2.10';
$record->totalAmount = '12.10';
$record->previousInvoiceId = null; // primera factura de la cadena
$record->previousHash = null;      // primera factura de la cadena
$record->hashedAt = new DateTimeImmutable();
$record->hash = $record->calculateHash();
$record->validate();

// Define los datos del SIF
$system = new ComputerSystem();
$system->vendorName = 'Perico de los Palotes, S.A.';
$system->vendorNif = 'A00000000';
$system->name = 'Sistema Informático de Prueba';
$system->id = 'PA';
$system->version = '0.0.1';
$system->installationNumber = '1234';
$system->onlySupportsVerifactu = true;
$system->supportsMultipleTaxpayers = false;
$system->hasMultipleTaxpayers = false;
$system->validate();

// Crea un cliente para el webservice de la AEAT
$taxpayer = new FiscalIdentifier('Perico de los Palotes, S.A.', 'A00000000');
$client = new AeatClient($system, $taxpayer);
$client->setCertificate(__DIR__ . '/certificado.pfx', 'contraseña');
$client->setProduction(false); // <-- para usar el entorno de preproducción
$aeatResponse = $client->send([$record])->wait();

// Obtiene la respuesta
if ($aeatResponse->status === ResponseStatus::Correct) {
    $csv = $aeatResponse->csv;
    echo "Registro aceptado sin errores: $csv\n";
} else {
    $errorDescription = $aeatResponse->items[0]->errorDescription;
    echo "Registro rechazado o aceptado con errores: $errorDescription\n";
}

Exención de responsabilidad

Esta librería se proporciona sin una declaración responsable al no ser un Sistema Informático de Facturación (SIF). Verifactu-PHP es una herramienta para crear SIFs, es tu responsabilidad auditar su código y usarlo de acuerdo a la normativa vigente.

Para más información, consulta el Artículo 13 del RD 1007/2023.

Licencia

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