Built for integrations that don't break
Webhooks are signed according to Standard Webhooks and retried up to 12 times over about 3 days. An Idempotency-Key makes a retried POST, PATCH, or DELETE safe, and sajn stores the response for 24 hours. You pin the API version by date with the Sajn-Version header. Every error uses one format with a closed list of codes, and every response carries a Sajn-Request-Id.
Signed webhooks with retries
Idempotency keys
Date-based versioning
One error format with request IDs
Test everything before it counts
A sandbox is a separate organization where you build your integration. BankID is mocked and the signed PDF is watermarked as a test, so nothing you sign there is legally binding. Request logs keep request and response bodies for 7 days, and the delivery log shows every webhook delivery so you can send any of them again.
Free sandbox with mocked BankID
Watermarked test PDFs
Request logs with bodies for 7 days
Webhook delivery log and resend
Signing your customers trust
Signers can identify with Swedish BankID, Norwegian BankID, MitID, MitID Erhverv, FTN, and iDIN.
Embedded signing is on the Enterprise plan, and sajn turns it on for each organization.
See the signing methods (in Swedish)Building for your own customers?
Manage your customers' sajn organizations from one place, or let them connect their own sajn account to your app.
See how (in Swedish)Pricing
The sandbox is free on every plan, including the free Basic plan. Basic includes one sandbox, and paid plans include three.
Production API access is included from the Team plan, from 499 kr per month.
Rate limits per organization: 600 requests per minute on Team, 2,000 on Enterprise, and 60 in a sandbox.
See all plans