Skip to content

Monitoring (overvågning)

Lasso monitors the CVR registry and fires events for the more than 2.000 daily changes registered. You can receive notifications by e-mail and webhooks every time such an even is fired. This section will describe how to set up a webhook that will receive events relevant to you and your business' needs.

Examples of events include

  • Company address changes
  • Submission of annual reports
  • Ownership changes
  • Employee count changes
  • Mentions in news outlets
  • Many, many more..

Creating, testing and registering your webhook

You will need to provide an endpoint that functions as a webhook, and Lasso will then send notifications to this webhooks everytime a relevant event is fired.

Create your webhook

A webhook is an endpoint that receives data when something happens. In this case, the webhook is created and hosted by you, and Lasso will send it data whenever an event is fired. Your webhook must satisfy the following conditions:

  • Be publically available over the internet, e.g. on https://mywebsite.com/webhook
  • Accept a HTTP POST request with a body as described in the webhook payload section.
  • Optionally, the webhook can be require authentication.

Once your webhook is set up, you're ready to register it in a Lasso monitor.

Test your webhook

We provide an endpoint you can call to test the webhook that you set up in the previous section. When calling this endpoint, Lasso will send a test notification to your webhook and report back whether it was successful or not.

To test your webhook, do the following: Send a POST request to the below endpoint where you include your webhook URL, your API Key and the Lasso Id for the company you want to send a test notification for. If Lasso Id not provided, data for Lasso X will be sent.

POST https://api.lassox.com/apps/monitoring/testwebhook?url={YOUR_WEBHOOK_URL}&lassoId=CVR-1-{CVR_NUMBER}&accessKey={API-KEY}

Lasso will then send an example payload to your webhook.

If you receive a result code 204 from Lasso, your webhook successfully handled the notification sent by Lasso. If your webhook fails to receive the notification, an error message including error details will be returned to you.

Once your webhook is tested to be working, you're ready to register it in Lasso to begin receiving notifications!

Register your webhook in a monitor

In order to listen for events you first have to set up your monitor. Monitors are created and set up in the Overvågning module in Lasso. Contact Lasso if you do not yet have access to the Overvågning module.

Once in Overvågning, create a monitor that monitors your desired target group. You'll receive notifications to your webhook when something happens to companies in your monitor's target group.

When editing the monitor, look for the Webhook section to register your webhook:

Register your webhook

Fill out the relevant fields:

  • Hændelser: Select the event types you want your webhook to receive. See event types.
  • Sikkerhed: If your webhook has authentication, set it up here.
  • Webhook URL: Enter the webhook URL that you created in step 1

When the webhook is set up, save the monitor. If your monitor is activated you will start receiving webhooks right away. If you wish to test your webhook before enabling it, make sure the monitor is disabled.

The webhook payload

The data sent by the CVR event webhook will tell you the who, the when and the what about the CVR update. Whenever possible, we also provide the data prior to the event, meaning that you can make comparisons that might suit your business needs. If you need to know if the employee count change caused a rise or decline in employees, this can easily be answered through the data provided by the webhook.

Below is an example of the webhook payload that is sent when a company changes status and a person leaves management.

{
    "lassoId":"CVR-1-34580821",
    "timestamp" : "2018-09-15T09:50:30.890Z",
    "updates": {
        "status": {
            "updated": true, 
            "before": "NORMAL", 
            "after": "UNDER KONKURS" 
        },     
        "name": { 
            "updated": false, 
            "before": null, 
            "after": null,
        },
        "management": { 
            "updated": true, 
            "added": [], 
            "removed": [
                { 
                    "name": "Jens Jensen", 
                    "lassoId": "CVR-3-8172635419",
                    "type": "Person"
                }
            ] 
        }
        ... other events exluded for brevity ...
    }
}
  • lassoId is the company related to event. Read about Lasso Ids.
  • timestamp is the time that the event was registrered in CVR.
  • updates is an object containing all the potential changes made. Please note that all update types are sent, but it's the updated field in each update that tells you if a particular type of change was made. Data will therefore not be available if this is false. For the sake of brevity, we've left out most event types above. See below for a complete list.

Types of events

There are a number of different event types, which we will list below. For data examples, please refer to the next section, as the data format will change depending on the event type.

Event name Description Data format (see next section for examples)
name The name of the company has changed String change
altNames One or more alternate names (binavne) has changed List of String changes
address The address of the company has changed Address change
industry The industry of the company has changed Industry change
altIndustries The alternate industries (bibrancher) has changed List of industry changes
purpose The purpose of the company has changed String change
powerToBind The power to bind (tegningsregler) has changed String change
capital The company capital (selskabskapital) has changed Capital change
form The company form (selskabsform) has changed Company form change
email The company e-mail has changed String change
fax The company fax number has changed String change
phoneNumber The company phone number has changed String change
website The company website has changed String change
newReport A new yearly report (årsregnskab) was published IMPORTANT: SEE NOTE 1 Report
newCompany A new company was created Entity reference
ownership A company had ownership changes Lists of ownership changes
accountant A company's accountant was changed Relation changes
board A company's board (bestyrelse) changed Relation changes
management A company's manegement (direktion) changed Relation changes
status A company's status changed String change
stakeholder A company's stakeholders changed Relation changes
merger A company has merged with another Merger
productionUnit A company's production units changed Relation changes
pUnitAdded A production unit was added Entity reference
pUnitRemoved A production unit was removed Entity reference
subsidiaryFounded A company's stakeholders changed Ownership
commercialProtection A company's commercial protection status (Reklamebeskyttelse) Bool change
monthlyEmployeeCount A company's monthly employee count falls or rises (exact numbers). Monthly Employee Count change
quarterlyEmployees A company's quarterly employee count falls or rises (interval). Quarterly Employee Count change
yearlyEmployees A company's yearly employee count falls or rises (interval). Yearly Employee Count change
newArticle A new newsarticle from some source New Article

NOTE 1: Currently, this property contains both a Report and a Data property, each containing an old and a new version of the key figure data, respectively. The Report property is deprecated, but remains to ensure backwards comptability. It will be removed in the future. Please use Data.

Event data formats

For each type of event, the format of the included data will change. See the below examples for the possible event data formats.

String change
{
    "updated": true,
    "before": 'Text before the change',
    "after": 'Text after the change'
}
List of String changes
{
    "updated": true,
    "added": [
        "Alternate Name ApS",
        "Another Name ApS"            
    ],
    "removed": [
        "Old Name ApS"
    ]
}
Address change
{
    "updated": true,
    "before": {
        "countryCode": "DK",
        "freeText": null,
        "roadCode": 7632,
        "municipality": {
        "period": {
            "from": "2007-01-01T00:00:00",
            "to": null,
            "original": null,
            "isNow": true
        },
        "name": "ODENSE",
        "code": 461,
        "original": null,
        "lastUpdated": "2006-11-12T23:00:00",
        "relatedLassoId": null,
        "relatedUpdates": []
        },
        "houseNumberFrom": 14,
        "houseNumberTo": null,
        "houseLetterFrom": null,
        "houseLetterTo": null,
        "floor": null,
        "sideDoor": null,
        "coName": null,
        "postalBox": null,
        "streetName": "Skt. Hans Gade",
        "cityName": null,
        "postalCode": 5000,
        "postalDistrict": "Odense C",
        "period": {
        "from": "2015-01-14T00:00:00",
        "to": "2018-11-14T00:00:00",
        "original": null,
        "isNow": false
        },
        "original": null,
        "lastUpdated": "2018-11-15T10:33:23",
        "relatedLassoId": null,
        "relatedUpdates": []
    },
    "after": { same format as the "before" field }
  }
Entity reference
{
    "updated": true,
    "entity": {
        "lassoId": "CVR-1-40024212", // could also be a place or place or person
        "name": "Wohn Systems ApS",
        "type": "Company" // could also be a place or place or person
    },
}
Industry change
{
    "updated": true,
    "before": {
        "period": {
          "from": "2018-10-01T00:00:00",
          "to": "2018-11-14T00:00:00",          
          "isNow": false
        },
        "industryCode": "107120",
        "industryText": "Fremstilling af friske bageriprodukter",
        "lastUpdated": "2018-11-15T11:19:41"
    },
    "after": { same format as "before" field above }
}
List of industry changes
{
    "updated": true,
    "added": [
        {
            "period": {
                "from": "2018-10-01T00:00:00",
                "to": "2018-11-14T00:00:00",          
                "isNow": true
            },
            "industryCode": "107120",
            "industryText": "Fremstilling af friske bageriprodukter",
            "lastUpdated": "2018-11-15T11:19:41"
        }       
    ],
    "removed": []
}
Company form change
{
    "updated": true,
    "before": {
        "companyFormCode": 80,
        "shortDescription": "APS",
        "longDescription": "Anpartsselskab",
        "responsibleDataProvider": "E&S",
        "period":{
            "from": "1999-01-01T00:00:00",
            "to": "2006-02-08T00:00:00", 
            "isNow": false
        },
        "lastUpdated": "2013-11-22T18:00:13"
    },
    "after": { same format as "before" field above }
}
Relation changes
{
    "updated": true,
    "added": [
        {
            "lassoId": "CVR-3-4000054321",
            "name": "Peter Petersen",
            "type": "Person"
        }
    ],
    "removed": [
        {
            "lassoId": "CVR-3-4000012345",
            "name": "Jens Jensen",
            "type": "Person"
        }
    ]
}
Ownership changes
{
    "updated": true,
    "added": [
        {
            "lassoId": "CVR-3-4000054321",
            "name": "Peter Petersen",
            "type": "Person",
            "ownership": "10-15" // percentage interval

        }
    ],
    "removed": [
        {
            "lassoId": "CVR-1-12345678",
            "name": "Firmaet ApS",
            "type": "Company",
            "ownership": "15-20" // percentage interval
        }
    ],
    "changed": [
        {
            "lassoId": "CVR-3-4000056789",
            "name": "Lars Larsen",
            "type": "Person",
            "ownership": "10-15" // percentage interval
        }
    ],

}
Ownership
{
    "updated": true,
    "ownership": {
        "lassoId": "CVR-1-34580820",
        "name": "Lasso X A/S",
        "type": "Company",
        "ownership": "10-15" // percentage interval
    }
}
Merger
{
    "updated": true,
    "entity": {
        "lassoId": "CVR-1-34580820",
        "name": "Lasso X A/S",
        "type": "Company"
    },
    "dissolved": true / false // Whether the current company has been dissolved with the merger.
}
Bool change
{
    "updated": true,
    "before": false,
    "after": true
}
ReportRead more about this format
{
    "cvr": 34580820,
    "reportType": "Yearly",
    "period": {
        "from": "2019-01-01T00:00:00",
        "to": "2019-12-31T00:00:00",
        "instant": null
    },
    "publicationTime": "2020-05-29T14:56:10",
    "reportUrl": "https://api.lassox.com/data/virk/report?id=02808543/amNsb3VkczovLzAzLzJmLzkwLzY3LzNiL2VkMjctNDYyOC04NTNmLThhNDEyM2EwYzMzOQ.pdf",
    "xbrlUrl": "http://regnskaber.virk.dk/02808543/amNsb3VkczovLzAzLzIwLzA1L2EzL2VjLzllY2EtNGRiNy1iMjQyLTdmYjMyZmVjYzgzMA.xml",
    "reportYear": 2019,
    "currencies": ["DKK"],
    "convertedFromCurrencies": null,
    "administrativeExpenses": null,
    "assets": {
        "unit": "DKK",
        "value": 14053715.0,
        "sources": ["Assets"],
        "possibleError": false,
        "error": false
    },
    "auditors": [{
            "companyName": "Christensen Kjærulff, Statsautoriseret Revisionsaktieselskab",
            "companyCVR": 15915641,
            "id": "mne33765",
            "name": "Elan Schapiro",
            "title": "statsautoriseret revisor"
        }
    ],
    "bankCVR": null,
    "bankName": null,
    "capital": {
        "unit": "DKK",
        "value": 1737691.0,
        "sources": ["ContributedCapital"],
        "possibleError": false,
        "error": false
    },
    "cashHoldings": {
        "unit": "DKK",
        "value": 4166529.0,
        "sources": ["CashAndCashEquivalents"],
        "possibleError": false,
        "error": false
    },
    "classOfReportingEntity": {
        "value": "Regnskabsklasse B",
        "sources": ["ClassOfReportingEntity"],
        "possibleError": false,
        "error": false
    },
    "coverage": {
        "unit": "Percentage",
        "value": 66.445075982201184179603839320,
        "sources": ["GrossResult", "Revenue"],
        "possibleError": false,
        "error": false
    },
    "currentAssets": {
        "unit": "DKK",
        "value": 8027213.0,
        "sources": ["CurrentAssets"],
        "possibleError": false,
        "error": false
    },
    "debt": {
        "unit": "DKK",
        "value": 14220504.0,
        "sources": ["LiabilitiesAndEquity", "Equity"],
        "possibleError": false,
        "error": false
    },
    "deferredTaxAssets": {
        "unit": "DKK",
        "value": 887586.0,
        "sources": ["CurrentDeferredTaxAssets"],
        "possibleError": false,
        "error": false
    },
    "depreciations": {
        "unit": "DKK",
        "value": -1843855.0,
        "sources": ["DepreciationAmortisationExpenseAndImpairmentLossesOfPropertyPlantAndEquipmentAndIntangibleAssetsRecognisedInProfitOrLoss"],
        "possibleError": false,
        "error": false
    },
    "descriptionOfQualifications": null,
    "dividend": null,
    "ebitda": {
        "unit": "DKK",
        "value": -2641193.0,
        "sources": ["ProfitLossFromOrdinaryOperatingActivities", "DepreciationAmortisationExpenseAndImpairmentLossesOfPropertyPlantAndEquipmentAndIntangibleAssetsRecognisedInProfitOrLoss"],
        "possibleError": false,
        "error": false
    },
    "employeeExpenses": {
        "unit": "DKK",
        "value": 7184696.0,
        "sources": ["EmployeeBenefitsExpense"],
        "possibleError": true,
        "error": false
    },
    "employees": {
        "unit": "pure",
        "value": 19.0,
        "sources": ["AverageNumberOfEmployees"],
        "possibleError": false,
        "error": false
    },
    "equity": {
        "unit": "DKK",
        "value": -166789.0,
        "sources": ["Equity"],
        "possibleError": false,
        "error": false
    },
    "equityLoan": null,
    "equityReturn": {
        "unit": "Percentage",
        "value": 3023.7042011163805766567339573,
        "sources": ["ProfitLossFromOrdinaryActivitiesBeforeTax", "Equity"],
        "possibleError": false,
        "error": false
    },
    "externalExpenses": {
        "unit": "DKK",
        "value": 2784480.0,
        "sources": ["OtherExternalExpenses"],
        "possibleError": false,
        "error": false
    },
    "financialFixedAssets": {
        "unit": "DKK",
        "value": 154664.0,
        "sources": ["LongtermInvestmentsAndReceivables"],
        "possibleError": false,
        "error": false
    },
    "goingConcern": null,
    "grossResult": {
        "unit": "DKK",
        "value": 4543503.0,
        "sources": ["GrossResult"],
        "possibleError": false,
        "error": false
    },
    "intangibleFixedAssets": {
        "unit": "DKK",
        "value": 5422167.0,
        "sources": ["IntangibleAssets"],
        "possibleError": false,
        "error": false
    },
    "inventories": null,
    "landAndBuildings": null,
    "liabilitiesAndEquity": {
        "unit": "DKK",
        "value": 14053715.0,
        "sources": ["LiabilitiesAndEquity"],
        "possibleError": false,
        "error": false
    },
    "liquidityRatio": {
        "unit": "Percentage",
        "value": 185.63141798336137271565753797,
        "sources": ["CurrentAssets", "ShorttermLiabilitiesOtherThanProvisions"],
        "possibleError": false,
        "error": false
    },
    "longtermInvestmentsInAssociates": null,
    "longtermInvestmentsInGroupEnterprises": null,
    "longtermLiabilities": {
        "unit": "DKK",
        "value": 9896229.0,
        "sources": ["LongtermLiabilitiesOtherThanProvisions"],
        "possibleError": false,
        "error": false
    },
    "managementsReview": null,
    "nonCurrentAssets": {
        "unit": "DKK",
        "value": 6026502.0,
        "sources": ["NoncurrentAssets"],
        "possibleError": false,
        "error": false
    },
    "operatingMargin": {
        "unit": "Percentage",
        "value": -65.590218636109507730569087400,
        "sources": ["ProfitLossFromOrdinaryOperatingActivities", "Revenue"],
        "possibleError": false,
        "error": false
    },
    "opinionOnFinancialStatements": {
        "value": "Vi har revideret årsregnskabet for Lasso X A/S for regnskabsåret 1. januar - 31. december 2019, der omfatter anvendt regnskabspraksis, resultatopgørelse, balance og noter. Årsregnskabet udarbejdes efter årsregnskabsloven.\n\nDet er vores opfattelse, at årsregnskabet giver et retvisende billede af selskabets aktiver, passiver og finansielle stilling pr. 31. december 2019 samt af resultatet af selskabets aktiviteter for regnskabsåret 1. januar - 31. december 2019 i overensstemmelse med årsregnskabsloven.\n",
        "sources": ["OpinionOnAuditedFinancialStatements"],
        "possibleError": false,
        "error": false
    },
    "otherFinanceExpenses": {
        "unit": "DKK",
        "value": 556358.0,
        "sources": ["OtherFinanceExpenses"],
        "possibleError": true,
        "error": false
    },
    "otherFinanceIncome": {
        "unit": "DKK",
        "value": -1800.0,
        "sources": ["OtherFinanceIncome"],
        "possibleError": false,
        "error": false
    },
    "pensions": {
        "unit": "DKK",
        "value": 146000.0,
        "sources": ["PostemploymentBenefitExpense"],
        "possibleError": false,
        "error": false
    },
    "profitFromOrdinaryOperatingActivities": {
        "unit": "DKK",
        "value": -4485048.0,
        "sources": ["ProfitLossFromOrdinaryOperatingActivities"],
        "possibleError": false,
        "error": false
    },
    "propertyCost": null,
    "provisions": null,
    "reportingCompanyName": {
        "value": "Lasso X A/S",
        "sources": ["NameOfReportingEntity"],
        "possibleError": false,
        "error": false
    },
    "Response": {
        "unit": "DKK",
        "value": -3447760.0,
        "sources": ["ProfitLoss"],
        "possibleError": false,
        "error": false
    },
    "resultBeforeTax": {
        "unit": "DKK",
        "value": -5043206.0,
        "sources": ["ProfitLossFromOrdinaryActivitiesBeforeTax"],
        "possibleError": false,
        "error": false
    },
    "revenue": {
        "unit": "DKK",
        "value": 6837983.0,
        "sources": ["Revenue"],
        "possibleError": false,
        "error": false
    },
    "roi": {
        "unit": "Percentage",
        "value": -31.913611454337874362757463060,
        "sources": ["ProfitLossFromOrdinaryOperatingActivities", "Assets"],
        "possibleError": false,
        "error": false
    },
    "salaries": {
        "unit": "DKK",
        "value": 6879406.0,
        "sources": ["WagesAndSalaries"],
        "possibleError": false,
        "error": false
    },
    "shorttermInvestments": null,
    "shorttermLiabilities": {
        "unit": "DKK",
        "value": 4324275.0,
        "sources": ["ShorttermLiabilitiesOtherThanProvisions"],
        "possibleError": false,
        "error": false
    },
    "shorttermPayablesToGroupEnterprises": null,
    "shorttermReceivables": {
        "unit": "DKK",
        "value": 3860684.0,
        "sources": ["ShorttermReceivables"],
        "possibleError": false,
        "error": false
    },
    "shorttermReceivablesFromGroupEnterprises": null,
    "shorttermReceivablesFromOwnersAndManagement": null,
    "shorttermTradeReceivables": {
        "unit": "DKK",
        "value": 3860684.0,
        "sources": ["ShorttermReceivables"],
        "possibleError": false,
        "error": false
    },
    "socialSecurityExpenses": {
        "unit": "DKK",
        "value": 64848.0,
        "sources": ["SocialSecurityContributions"],
        "possibleError": false,
        "error": false
    },
    "solvencyRatio": {
        "unit": "Percentage",
        "value": -1.1867965160813350775933623200,
        "sources": ["Equity", "Assets"],
        "possibleError": false,
        "error": false
    },
    "submittingCompanyCVR": {
        "unit": null,
        "value": 15915641.0,
        "sources": ["IdentificationNumberCvrOfSubmittingEnterprise"],
        "possibleError": false,
        "error": false
    },
    "submittingCompanyName": {
        "value": "Christensen Kjærulff, Statsautoriseret Revisionsaktieselskab",
        "sources": ["NameOfSubmittingEnterprise"],
        "possibleError": false,
        "error": false
    },
    "supplementaryInformation": [],
    "tangibleFixedAssets": {
        "unit": "DKK",
        "value": 449671.0,
        "sources": ["PropertyPlantAndEquipment"],
        "possibleError": false,
        "error": false
    },
    "taxExpense": {
        "unit": "DKK",
        "value": -1595446.0,
        "sources": ["TaxExpenseOnOrdinaryActivities"],
        "possibleError": false,
        "error": false
    },
    "typeOfAuditorAssistance": {
        "value": "Revision",
        "sources": ["TypeOfAuditorAssistance"],
        "possibleError": false,
        "error": false
    },
    "typeOfBasisForModifiedOpinion": null
}
Monthly Employee Count Change
{
    "updated": true,
    "year": 2020,
    "month": 1,
    "before": 12,
    "after": 13
}
Quarterly Employee Count Change
{
    "updated": true,
    "year": 2020,
    "quarter": 1,
    "before": "2-4",
    "after": "5-9"
}
Yearly Employee Count Change
{
    "updated": true,
    "year": 2019,
    "before": "2-4",
    "after": "5-9"
}
New Article
{
  "updated": true,
  "source": "Paqle",
  "headline": "De offentlige data skal sættes fri",
  "tagline": null,
  "content": "Det gælder blandt andet Lasso X, der ved hjælp af data fra CVR, Tinglysningsretten og Ejerregisteret overvåger ændringer i virksomheders oplysninger og sammensætning. ",
  "time": "2019-04-08T10:13:00Z",
  "link": "http://entityapi.paqle.net/articles/1ddd8d139d56bd48439eb02f01988c0c53b178358e0d99e13f6badccce72276e4eb96a75ec7e3eaabc102990669cbcd5"
}