Secure .NET integrations in minutes

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

GitHub NuGet Downloads
.NET 8+ SDK & Webhooks

NordAPI: Production-ready .NET SDKs for Swedish payment integrations

NordAPI provides a production-ready .NET SDK for Swish and BankID. It handles payments, webhook verification and mTLS out of the box.

Built for .NET 8+
it reduces integration time from weeks to hours.

Quickstart

Install package

dotnet add package NordAPI.Swish

NuGet package contains client, models and helpers for Swish.

Basic payment (sandbox)

var swish = app.Services.GetRequiredService<ISwishClient>();

var request = new CreatePaymentRequest(
  PayerAlias: "46712345678",
  PayeeAlias: "1231181189",
  Amount: "100.00",
  Currency: "SEK",
  Message: "Order #123",
  CallbackUrl: "https://example.com/webhook/swish"
);

var payment = await swish.CreatePaymentAsync(request);

Configure certs + mTLS for prod. See checklist below.

Webhook (placeholder)

app.MapPost("/webhook/swish", (
  HttpRequest req,
  SwishWebhookVerifier verifier) =>
{
  // Verify the request (see sample app)
  return Results.Ok(new { received = true });
});

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.