PHP code example of josemmo / verifactu-php

1. Go to this page and download the library: Download josemmo/verifactu-php library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

josemmo / verifactu-php example snippets



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

down[0]->taxType = TaxType::IVA;
$record->breakdown[0]->regimeType = RegimeType::C01;
$record->breakdown[0]->operationType = OperationType::S1;
$record->breakdown[0]->taxRate = '21.00';
$record->breakdown[0]->baseAmount = '10.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,
    __DIR__ . '/certificado.pfx',
    'contraseña',
);
$client->setProduction(false); // <-- para usar el entorno de preproducción
$res = $client->sendRegistrationRecords([$record]);

// Obtiene la respuesta
echo $res->asXML() . "\n";