Nuevos SDKs disponibles: PHP 8.3 y .NET 8 con soporte nativo

Rendimiento mejorado, tipado más estricto y nuevas utilidades para integraciones modernas.

← Volver al Blog Ver Documentación

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

  1. Revisa los espacios de nombres y nombres de métodos.
  2. Activa idempotencia en operaciones críticas.
  3. 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