Secure .NET integrations in minutes

Swish & BankID SDK by NordAPI • mTLS • HMAC • Anti-replay

GitHub: Private NuGet: Coming soon Downloads: 0
.NET 8+ MIT SDK & Webhooks

Quickstart (5 minutes)

Install package

dotnet add package NordAPI.Swish

NuGet package contains client, models and helpers for Swish.

Basic payment (sandbox)

var swish = new SwishClient(cfg => cfg.UseDevDefaults());
await swish.PayAsync(new SwishPaymentRequest {
    Amount = 100m, Currency = "SEK", PayerAlias = "46712345678",
    Message = "Order #123"
});

Configure certs + mTLS for prod. See checklist below.

Webhook (verified)

app.MapPost("/swish/webhook", async (HttpRequest req) => {
    var evt = await SwishWebhook.ParseAsync(req);
    if (!evt.IsValid) return Results.Unauthorized();
    // handle payment success/failed here
    return Results.Ok();
});

HMAC validation and nonce-replay protection built-in.

Why NordAPI?

Security first

mTLS, HMAC, nonce/replay protection and request signing out-of-the-box.

Fast integration

Production-ready client, minimal plumbing and sane defaults for .NET.

Webhooks & SDK

End-to-end flow: create payments, receive callbacks, verify and persist.

Observability

Structured logging and IDs that make troubleshooting straightforward.

Lightning-fast Swish & BankID integration

Go from zero to sandbox in minutes. Verified webhooks, mTLS helpers, and clean .NET APIs — designed for production from day one.

Try the 5-minute quickstart

Going to production?

Follow the checklist for timestamp strictness (±5 min), persistent nonces, HTTPS only, and secrets via KeyVault/env.