# Overvågning

> Følg en virksomhed og få besked via webhook eller mail, når noget ændrer sig.

Overvågning sender dig ændringer i de virksomheder, du følger: nyt navn eller adresse, ny direktør, konkurs, nyt regnskab, negativ egenkapital og fald eller stigning i kreditscoren. Betalt pakke. Start kan følge 25 virksomheder, Pro 250.
Fuld kan følge 5.000.

## POST /v1/overvaag

Følg en virksomhed. Angiv en `webhook_url` (HTTPS), `email: true` eller begge.

```bash curl
curl -X POST "https://cvrradar.dk/v1/overvaag" \
  -H "Authorization: Bearer cvr_DIN_NOEGLE" \
  -H "Content-Type: application/json" \
  -d '{"cvr": "10203040", "webhook_url": "https://dit-system.example/cvrradar", "email": true}'
```
```js JavaScript
const svar = await fetch("https://cvrradar.dk/v1/overvaag", {
  method: "POST",
  headers: {
    Authorization: "Bearer cvr_DIN_NOEGLE",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"cvr": "10203040", "webhook_url": "https://dit-system.example/cvrradar", "email": true}),
});
if (!svar.ok) throw new Error(`cvrradar svarede ${svar.status}`);
const data = await svar.json();
```
```php PHP
$ch = curl_init("https://cvrradar.dk/v1/overvaag");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => '{"cvr": "10203040", "webhook_url": "https://dit-system.example/cvrradar", "email": true}',
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer cvr_DIN_NOEGLE",
        "Content-Type: application/json",
    ],
]);
$data = json_decode(curl_exec($ch), true);
```
```python Python
import requests

svar = requests.post(
    "https://cvrradar.dk/v1/overvaag",
    headers={"Authorization": "Bearer cvr_DIN_NOEGLE"},
    json={"cvr": "10203040", "webhook_url": "https://dit-system.example/cvrradar", "email": True},
    timeout=10,
)
svar.raise_for_status()
data = svar.json()
```

```json
{
  "cvr": "10203040",
  "overvaaget": true,
  "webhook_hemmelighed": "whsec_…",
  "bemaerkning": "Webhooks signeres med X-Cvrradar-Signature: t=<tid>,v1=<hex HMAC-SHA256 af \"<tid>.<body>\"> med din webhook-hemmelighed.",
  "kilde": "cvrradar.dk"
}
```

Svaret er `201`, første gang du følger virksomheden, og `200`, hvis du allerede gjorde. Gem `webhook_hemmelighed`: den bruges til at tjekke signaturen og vises kun her. Se [Webhooks](https://cvrradar.dk/docs/integrationer/webhooks.md).

| Fejl                        | Betydning                                                     |
| --------------------------- | ------------------------------------------------------------- |
| `402`                       | Kræver en betalt pakke                                        |
| `404`                       | CVR-nummeret findes ikke                                      |
| `422` med `kode: "graense"` | Du følger allerede så mange virksomheder, som pakken tillader |

## GET /v1/overvaag

Listen over de virksomheder, du følger.

```bash curl
curl "https://cvrradar.dk/v1/overvaag" \
  -H "Authorization: Bearer cvr_DIN_NOEGLE"
```
```js JavaScript
const svar = await fetch("https://cvrradar.dk/v1/overvaag", {
  headers: {
    Authorization: "Bearer cvr_DIN_NOEGLE",
  },
});
if (!svar.ok) throw new Error(`cvrradar svarede ${svar.status}`);
const data = await svar.json();
```
```php PHP
$ch = curl_init("https://cvrradar.dk/v1/overvaag");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer cvr_DIN_NOEGLE",
    ],
]);
$data = json_decode(curl_exec($ch), true);
```
```python Python
import requests

svar = requests.get(
    "https://cvrradar.dk/v1/overvaag",
    headers={"Authorization": "Bearer cvr_DIN_NOEGLE"},
    timeout=10,
)
svar.raise_for_status()
data = svar.json()
```

```json
{
  "overvaagede": [
    {
      "cvr": "10203040",
      "navn": "Havnens Smedje ApS",
      "webhook_url": "https://dit-system.example/cvrradar",
      "email": true,
      "oprettet": "2026-11-13T10:00:00Z"
    }
  ],
  "graense": 25
}
```

## DELETE /v1/overvaag/{cvr}

Stop med at følge en virksomhed.

```bash curl
curl -X DELETE "https://cvrradar.dk/v1/overvaag/10203040" \
  -H "Authorization: Bearer cvr_DIN_NOEGLE"
```
```js JavaScript
const svar = await fetch("https://cvrradar.dk/v1/overvaag/10203040", {
  method: "DELETE",
  headers: {
    Authorization: "Bearer cvr_DIN_NOEGLE",
  },
});
if (!svar.ok) throw new Error(`cvrradar svarede ${svar.status}`);
const data = await svar.json();
```
```php PHP
$ch = curl_init("https://cvrradar.dk/v1/overvaag/10203040");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "DELETE",
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer cvr_DIN_NOEGLE",
    ],
]);
$data = json_decode(curl_exec($ch), true);
```
```python Python
import requests

svar = requests.delete(
    "https://cvrradar.dk/v1/overvaag/10203040",
    headers={"Authorization": "Bearer cvr_DIN_NOEGLE"},
    timeout=10,
)
svar.raise_for_status()
data = svar.json()
```

Mail-besked kommer som én samlet mail om dagen med alle ændringer. Webhooks sendes, så snart ændringen er registreret, typisk om natten efter CVR-synkroniseringen.
