ForsideGuidesAPI-integration for revisionsfirmaer: kom i gang med LegalDock
Virksomhed10 min læsetid

API-integration for revisionsfirmaer: kom i gang med LegalDock

Lær, hvordan dit revisionsfirma integrerer LegalDock's API og begynder at generere juridiske dokumenter programmatisk. Guide med curl og TypeScript.

LegalDock Redaktionen
31. maj 2026

# API-integration for revisionsfirmaer: kom i gang med LegalDock

Moderne revisionsfirmaer digitaliserer i stigende grad. Klienter forventer hurtige svar, og de interne systemer — fra bogholderisoftware til klientportaler — skal hænge bedre sammen. Juridiske dokumenter er det næste led i den digitale kæde.

LegalDock's API giver revisionsfirmaer mulighed for at generere, udfylde og sende juridiske dokumenter programmatisk — direkte fra jeres eget system. Ingen manuel kopiering, ingen forældet Word-skabeloner, ingen printede underskrifter.

Denne guide viser dig, hvordan du integrerer LegalDock API på under en time.

---

Hvad kan LegalDock API?

LegalDock's REST API giver adgang til:

FunktionBeskrivelse
DokumentgenereringUdfyld en skabelon med felter og modtag en færdig PDF
Digital underskriftSend dokumentet til underskrift via MitID
WebhooksModtag events når dokumentet underskrives, afvises eller udløber
SkabelonlisteHent alle tilgængelige skabeloner og feltbeskrivelser
DokumentarkivHent, download og administrér oprettede dokumenter

Alle kald sker over HTTPS. Autentificering bruger API-nøgler (Bearer token). Rate limits: 100 kald/minut på Partner Pro, 1.000 kald/minut på Partner API-planen.

---

Forudsætninger

Inden du begynder:

1. LegalDock Partner API-konto — Partner Pro eller Partner API plan ([opret her](/partner/signup))

2. API-nøgle — Hent den under Indstillinger → API → Generér nøgle

3. HTTP-klient — `curl` til test, Node.js 18+ til TypeScript-eksemplerne

---

Trin 1: Verificer forbindelsen

```bash

curl https://api.legaldock.org/v1/ping \

-H "Authorization: Bearer DIN_API_NØGLE"

```

Forventet svar:

```json

{ "status": "ok", "version": "1.0" }

```

En `401 Unauthorized`-fejl betyder, at API-nøglen er ugyldig eller udløbet. Generér en ny under Indstillinger.

---

Trin 2: Hent tilgængelige skabeloner

```bash

curl https://api.legaldock.org/v1/templates \

-H "Authorization: Bearer DIN_API_NØGLE"

```

```json

{

"templates": [

{ "id": "ansaettelseskontrakt", "name": "Ansættelseskontrakt" },

{ "id": "nda-standard", "name": "NDA – Fortrolighedsaftale" },

{ "id": "lejekontrakt-erhverv", "name": "Erhvervslejekontrakt" },

{ "id": "aktionaeroverenskomst", "name": "Aktionæroverenskomst" },

{ "id": "konsulentaftale", "name": "Konsulentaftale" }

]

}

```

Inspicér en skabelon for at se feltlisten:

```bash

curl https://api.legaldock.org/v1/templates/nda-standard \

-H "Authorization: Bearer DIN_API_NØGLE"

```

---

Trin 3: Generér et dokument

```bash

curl -X POST https://api.legaldock.org/v1/documents \

-H "Authorization: Bearer DIN_API_NØGLE" \

-H "Content-Type: application/json" \

-d '{

"templateId": "nda-standard",

"fields": {

"part1Navn": "TechStart ApS",

"part2Navn": "Udvikler A/S",

"formaal": "Drøftelse af muligt teknologisamarbejde",

"varighed": "2 år",

"dato": "2026-06-01"

},

"meta": {

"reference": "klient-456-nda-2026"

}

}'

```

Svar:

```json

{

"documentId": "doc_xyz789",

"status": "draft",

"downloadUrl": "https://api.legaldock.org/v1/documents/doc_xyz789/pdf",

"previewUrl": "https://app.legaldock.org/preview/doc_xyz789"

}

```

Tip: Brug `meta.reference` til at gemme jeres interne klient- eller sagsnummer. Det gør det muligt at finde dokumentet fra jeres eget system og koble API-svaret til den rigtige klientjournal.

---

Trin 4: Anmod om digital underskrift

```bash

curl -X POST https://api.legaldock.org/v1/documents/doc_xyz789/sign \

-H "Authorization: Bearer DIN_API_NØGLE" \

-H "Content-Type: application/json" \

-d '{

"signers": [

{ "name": "Klaus Jensen", "email": "kj@techstart.dk", "role": "party1" },

{ "name": "Sara Holm", "email": "sh@udvikler-as.dk", "role": "party2" }

],

"deadline": "2026-06-15",

"notifyOnSigned": "webhook",

"webhookUrl": "https://jeres-system.dk/webhooks/legaldock"

}'

```

LegalDock sender e-mail til begge parter med signeringslink. Begge underskriver via MitID på desktop eller mobil.

---

TypeScript-integration

Eksempel på en genbrugelig hjælpeklasse til Node.js/TypeScript:

```typescript

// src/legaldock.ts

const BASE = 'https://api.legaldock.org/v1';

interface CreateDocumentPayload {

templateId: string;

fields: Record;

reference: string;

}

interface Signer {

name: string;

email: string;

role: string;

}

export async function createDocument(

apiKey: string,

payload: CreateDocumentPayload

): Promise<{ documentId: string; downloadUrl: string }> {

const res = await fetch(`${BASE}/documents`, {

method: 'POST',

headers: {

Authorization: `Bearer ${apiKey}`,

'Content-Type': 'application/json',

},

body: JSON.stringify({

templateId: payload.templateId,

fields: payload.fields,

meta: { reference: payload.reference },

}),

});

if (!res.ok) {

const { message } = await res.json() as { message: string };

throw new Error(`LegalDock createDocument: ${message}`);

}

return res.json() as Promise<{ documentId: string; downloadUrl: string }>;

}

export async function requestSignature(

apiKey: string,

documentId: string,

signers: Signer[],

webhookUrl: string,

deadline?: string

): Promise<{ signingSessionId: string }> {

const res = await fetch(`${BASE}/documents/${documentId}/sign`, {

method: 'POST',

headers: {

Authorization: `Bearer ${apiKey}`,

'Content-Type': 'application/json',

},

body: JSON.stringify({

signers,

deadline,

notifyOnSigned: 'webhook',

webhookUrl,

}),

});

if (!res.ok) {

const { message } = await res.json() as { message: string };

throw new Error(`LegalDock requestSignature: ${message}`);

}

return res.json() as Promise<{ signingSessionId: string }>;

}

```

Integrer i din eksisterende kodebase:

```typescript

import { createDocument, requestSignature } from './src/legaldock';

const API_KEY = process.env.LEGALDOCK_API_KEY!;

const WEBHOOK = process.env.LEGALDOCK_WEBHOOK_URL!;

// Kaldt når revisor onboarder ny klient-medarbejder

export async function issueEmploymentContract(

employeeName: string,

employeeEmail: string,

employerName: string,

employerEmail: string,

startDate: string,

monthlySalary: number,

clientRef: string

) {

const doc = await createDocument(API_KEY, {

templateId: 'ansaettelseskontrakt',

fields: {

medarbejdernavn: employeeName,

virksomhedsnavn: employerName,

startdato: startDate,

maanesdsloenn: monthlySalary,

arbejdssted: 'Se separat bilag',

},

reference: clientRef,

});

await requestSignature(

API_KEY,

doc.documentId,

[

{ name: employeeName, email: employeeEmail, role: 'employee' },

{ name: employerName, email: employerEmail, role: 'employer' },

],

WEBHOOK,

'2026-07-01'

);

return doc.documentId;

}

```

---

Webhooks: modtag events automatisk

Undgå manuel polling — brug webhooks til at opdatere jeres system, når dokumenter underskrives.

```typescript

// Express webhook handler

import express from 'express';

import crypto from 'crypto';

const router = express.Router();

router.post('/webhooks/legaldock', express.json(), (req, res) => {

const sig = req.headers['x-legaldock-signature'] as string;

const expected = crypto

.createHmac('sha256', process.env.LEGALDOCK_WEBHOOK_SECRET!)

.update(JSON.stringify(req.body))

.digest('hex');

if (sig !== expected) {

return res.status(401).json({ error: 'Invalid signature' });

}

const { event, documentId, reference } = req.body as {

event: string;

documentId: string;

reference: string;

};

if (event === 'document.signed') {

// Opdatér klientjournal, send bekræftelse, arkivér PDF

console.log(`Underskrevet: ${documentId} (klient ref: ${reference})`);

}

res.json({ ok: true });

});

export default router;

```

---

Bedste praksis for revisionsfirmaer

Brug sandbox til test. LegalDock tilbyder et sandbox-miljø på `https://api-sandbox.legaldock.org/v1`. Brug det under integration — dokumenter tæller ikke mod kvoten og sender ikke rigtige e-mails.

Gem altid PDF lokalt. Download og arkivér PDF-filen i jeres eget system straks efter underskrift. Brug `downloadUrl` fra API-svaret.

Sæt deadline på underskriftsanmodninger. En NDA der ikke underskrives i tide skaber forvirring. Brug `deadline`-feltet til at styre forventningsafstemning.

Overvåg fejlrate. Log alle API-kald og overvåg 4xx/5xx-svar. En pludselig stigning i 429-fejl (rate limit) signalerer, at I skal opgradere planen eller implementere backoff.

---

Fejlhåndtering: reference tabel

HTTP-kodeÅrsagLøsning
400Ugyldige felterTjek feltnavne mod skabelonens spec
401Ugyldig API-nøgleGenerér ny nøgle under Indstillinger
403PlanbegrænsningOpgrader til Partner API
404Ressource ikke fundetTjek `templateId`/`documentId`
429Rate limitImplementér exponential backoff
500LegalDock serverfejlKontakt [support@legaldock.org](mailto:support@legaldock.org)

---

Klar til at integrere?

Kom i gang med LegalDock API i dag:

1. [Opret en gratis partnerkonto](/partner/signup)

2. [Generér din API-nøgle](/partner/settings/api)

3. [Læs den fulde API-reference](/api/docs)

4. [Kontakt partnersupport](mailto:partner@legaldock.org)

Se også: [Hvordan revisorer automatiserer juridiske dokumenter](/blog/revisorer-automatiser-juridiske-dokumenter) — for det strategiske perspektiv.

Få mere juridisk viden

Tilmeld dig vores nyhedsbrev og bliv klogere på dansk jura.

Gratis at starte

Opret dit dokument nu

Professionelle skabeloner. Digital underskrift. Færdigt på minutter.

API-integration for revisionsfirmaer: kom i gang med LegalDock | LegalDock