Ayuda a desarrolladores para integrar Verifactu con PHP: aprende a realizar peticiones REST, generar facturas con QR, firmar con certificado digital y crear XML de forma eficiente.
Para cumplir con los requisitos de Verifactu, existen dos opciones principales:
Integrarse directamente con la administración: Este enfoque presenta varios retos técnicos, entre ellos:
Usar una API REST como Verifacti: Una solución sencilla que permite realizar peticiones en JSON sin necesidad de certificado digital y sin los retos técnicos de la integración directa. Ver documentación API Verifactu.
De cara a usar una API Rest como la de Verifactu, es necesario poder realizar llamadas a este tipo de APIs. Para realizar una petición HTTP a una API REST desde PHP, puedes utilizar diferentes métodos. Las librerías más comunes son:
A continuación, un ejemplo de cómo realizar la misma petición usando cURL en PHP:
<?php
$url = "https://api.verifacti.com/verifactu/create";
$apiKey = "<API_KEY>";
$data = '{
"serie": "A",
"numero": "234634",
"fecha_expedicion": "02-12-2024",
"tipo_factura": "F1",
"descripcion": "Descripcion de la operacion",
"nif": "A15022510",
"nombre": "Empresa de prueba SL",
"lineas": [{
"base_imponible": "200",
"tipo_impositivo": "21",
"cuota_repercutida": "42"
}],
"importe_total": "242"
}';
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer " . $apiKey,
"Content-Type: application/json"
),
));
$response = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
if ($error) {
echo "cURL Error: " . $error;
} else {
echo $response;
}
?>
Parte de la integración requerirá pegar un QR en un documento PDF desde PHP. Para ello puedes utilizar:
Ejemplo con FPDF:
require('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->Image('qr_code.png', 10, 10, 50, 50);
$pdf->Output('factura.pdf', 'F');
Si vas a optar por generar tú mismo el QR, para generar un código QR en PHP, puedes utilizar librerías como:
Ejemplo usando QRcode
:
include('phpqrcode/qrlib.php');
QRcode::png('Texto de ejemplo', 'qr_code.png');
Nota: Este paso sería innecesario si se usa Verifacti, ya que la API proporciona el QR.
“No dejes para mañana lo que puedes hacer hoy.”
Benjamin Franklin
Los contenidos proporcionados por Bilbabit SL en cualquiera de sus secciones (Blog, guías, landing pages, sección preguntas frecuentes, emails comerciales o de atención al cliente) son exclusivamente informativos y no tienen validez legal. BILBABIT no es una empresa de consultoría fiscal, sino una desarrolladora de software fiscal, por lo que la información que ofrece es de carácter orientativo. En cualquier caso, cualquier actividad relacionada con la facturación y la fiscalidad debe ser consultada siempre y sin excepción con un asesor fiscal que entienda las implicaciones específicas de cada normativa para cada empresa o profesional en particular.