SDK .NET para España
CorpMerch.SDK en NuGet — .NET 8, HttpClientFactory, modelos AOT-friendly source-gen para España.
Arquitectura — Instalación e init para España
NuGet: dotnet add package CorpMerch.SDK. Init en Program.cs: builder.Services.AddCorpMerch(o => { o.ApiKey = builder.Configuration["CorpMerch:ApiKey"]; o.Country = "España"; });. Usa HttpClientFactory con políticas Polly v8. IVA 21% aplicado en servidor; canal FACe/SII para facturas. .NET 8 / .NET Standard 2.1.
Cómo integrarlo — Quickstart con cancelación
var order = await _cm.Orders.CreateAsync(new OrderCreateOptions { IdempotencyKey = Guid.NewGuid().ToString(), Buyer = new() { VatId = "EU…" }, Lines = [new() { Sku = "TSH-001", Qty = 200 }] }, cancellationToken);. Serializadores System.Text.Json source-generated — AOT-friendly, cold start rápido en Azure Functions y AWS Lambda.
Operación y casos límite — Verificación de webhook (ASP.NET Core)
Mapea un endpoint: app.MapPost("/wh", async (HttpRequest req, ICorpMerchWebhooks wh) => { var ev = await wh.ConstructEventAsync(req); return Results.Ok(); });. Lanza SignatureVerificationException ante firma inválida — conectada a 400. Minimal APIs y MVC. IDs de confirmación FACe / Suministro Inmediato de Información (SII) en InvoiceEvent.AcknowledgementId.
Preguntas frecuentes
¿Soporte de framework?
.NET 8 y .NET Standard 2.1. .NET Framework 4.8 en el SDK legacy 1.x.
¿AOT y trimming?
Sí — System.Text.Json source-generated, sin reflection en runtime. Listo para AOT publish y builds trimmed.
¿Reintentos con Polly?
Retry, timeout y circuit-breaker integrados vía Polly v8. Configurable con AddCorpMerch(o => { o.Retry.MaxAttempts = 5; }).
¿Soporte F#?
Sí — assembly .NET puro, usable desde F#. Wrappers discriminated union en paquete companion.
¿IVA 21% y FACe/SII?
country: 'España' aplica IVA 21%. Los eventos de webhook de factura incluyen id de confirmación FACe/SII.