Instalación (PHP 8.3)
# composer
composer require verifactu/sdk:^3.0
Ejemplo rápido (PHP)
<?php
use Verifactu\SDK\Client;
$client = new Client(getenv('VERIFACTU_API_KEY'));
$factura = $client->facturas()->crear([
'emisor' => ['nif' => 'B00000000'],
'receptor' => ['nif' => '00000000A', 'nombre' => 'Cliente Demo'],
'lineas' => [ ['concepto' => 'Servicio', 'cantidad' => 1, 'precio' => 9.99] ],
]);
echo $factura['qr'];
Instalación (.NET 8)
// dotnet CLI
dotnet add package Verifactu.Sdk --version 3.*
Ejemplo rápido (C#)
using Verifactu.Sdk;
var apiKey = Environment.GetEnvironmentVariable("VERIFACTU_API_KEY");
var client = new VerifactuClient(apiKey);
var invoice = await client.Invoices.CreateAsync(new InvoiceRequest {
Emitter = new Emitter { Nif = "B00000000" },
Receiver = new Receiver { Nif = "00000000A", Name = "Cliente Demo" },
Lines = new[] { new Line { Concept = "Servicio", Quantity = 1, Price = 9.99m } }
});
Console.WriteLine(invoice.Qr);
Novedades comunes
- Validación de modelos más estricta y mensajes de error detallados.
- Soporte de idempotencia nativo y reintentos automáticos configurables.
- Cliente HTTP con timeouts y reintentos exponenciales por defecto.
Notas de migración
- Revisa los espacios de nombres y nombres de métodos.
- Activa idempotencia en operaciones críticas.
- Actualiza variables de entorno y claves en CI/CD.
Recursos
• Documentación de SDKs
• Probar en Playground
¿Por qué usar los SDKs oficiales con la Verifactu API?
Los SDKs oficiales abstraen detalles de bajo nivel (reintentos, timeouts, serialización) y exponen un diseño idiomático por lenguaje. Así reduces tiempo de desarrollo y adoptas buenas prácticas por defecto al trabajar con la Verifactu API.
Ejemplos avanzados
Manejo de reintentos e idempotencia (PHP)
<?php
$client->setRetryPolicy(['retries' => 3, 'factor' => 2]);
$invoice = $client->facturas()->crear($payload, [
'idempotencyKey' => sha1('pedido:'.$pedidoId)
]);
echo $invoice['qr'];
Time-outs y control de concurrencia (.NET)
var client = new VerifactuClient(apiKey, new ClientOptions {
Timeout = TimeSpan.FromSeconds(15)
});
// ejecuta en paralelo con límite
await Parallel.ForEachAsync(pedidos, new ParallelOptions { MaxDegreeOfParallelism = 10 }, async (p, ct) => {
await client.Invoices.CreateAsync(Map(p));
});
Compatibilidad y rendimiento
- SDK PHP probado en 8.1, 8.2 y 8.3; transporte PSR-18.
- SDK .NET compatible con .NET 6/7/8; HttpClientFactory recomendado.
- Serialización eficiente y validaciones previas para reducir 422.
FAQs
¿Puedo mezclar SDK y llamadas HTTP directas?
Sí. Los SDKs conviven con integraciones existentes; migra rutas críticas primero.
¿Cómo gestiono claves y entornos?
Usa variables de entorno y un gestor de secretos. Aísla sandbox y producción.
Enlaces internos recomendados
- API Verifactu · visión general y propuesta de valor.
- API Verifactu · endpoints y ejemplos.
- Documentación · guías por lenguaje.
- Precios · planes según volumen.
- Contacto · soporte técnico.