Our security page lists which controls exist today — and what is in progress.Learn more

Developers

Two routes, one response shape, origin on every transition.

The counterparty surface is deliberately small. No login, no session, one envelope around every response. Whatever happens in the system carries where it came from.

01

Two routes, no login

The counterparty surface is two token-authenticated routes. There is no account, no session and no auth library — the token in the link is the credential.

counterparty routes

GET /f/••••••••••••••••••••••••

GET /s/••••••••••••••••••••••••

# no account · no session · token = credential

02

One response shape

Every response is either an ok envelope with data, or an ok:false envelope with a message written to be read by the counterparty directly. Those messages are shown to the user as they arrive.

200
{
"ok": true,
"data": { "instance": "NORDEN-0142" }
}
200
{
"ok": false,
"message": "This link was replaced by a newer email."
}

The message is shown to the counterparty exactly as it arrives.

03

Origin follows every transition

Every state transition records where it came from: the app, an agent, the system itself, or another service. An automated action is traceable as automated.

transitions · NORDEN-0142
draft createdactor=elvira.sandstromorigin=app
intake submittedactor=elvira.sandstromorigin=agent
reminder sentactor=elvira.sandstromorigin=system
agreement activeactor=elvira.sandstromorigin=service

04

Embedded signing

The signing view can run on your own domain, so the counterparty never leaves your flow.

nordenstudio.example/avtal/signera

Assignment agreement · NORDEN-0142

§4 Compensation · A

belopp · 48 000 SEK · start · 2026-09-01

Sign

05

Test environment

A separate environment with its own templates where no real emails are sent.

productionsandbox
own templatessandbox
outbound_emaildisabled