Consumer Intelligence V3 (1.0.0)

Download OpenAPI specification:

Introduction

This reference provides a comprehensive overview of the Consumer Intelligence API endpoints for accessing and subscribing to person data and related statistical analytical data.

The API follows REST principles, and uses OAuth 2.0.

ℹ️ Getting started

New to the API? Explore our guides to learn how to make your first API calls.

Environments

We provide multiple environments, each with unique data access policies, and live/mocked persons.

Environments are isolated from each other. Client credentials are tied to a specific environment and cannot be reused across environments.

Production

Features the latest stable software, live persons, and strict data access controls.

Name URL
API https://api.bisnode.com/consumer-intelligence/v3
OAuth Token https://login.bisnode.com/as/token.oauth2

Sandbox

Includes the latest stable software and mocked persons.

Name URL
API https://sandbox-api.bisnode.com/consumer-intelligence/v3
OAuth Token https://login.bisnode.com/sandbox/v1/token.oauth2

Authentication

The Consumer Intelligence API uses OAuth 2.0 client access tokens for authenticating server requests.

API credentials

Consumer Intelligence API access begins with a client and its corresponding client ID and client secret. Clients organize data, are separate, and relate to a specific environment.

API credentials are used to obtain an access token for accessing client-wide endpoints and user-specific endpoints.

Key Description
Client ID The identifier for your client, referred to as the client_id.
Client secret The secret for your client, referred to as the client_secret.

⚠️ Keep your API credentials secret

Transmit and store your API credentials securely. Avoid including them in source code. If you suspect a leak, contact customer support.

Generating a new secret immediately invalidates the previous one, blocking access for all API requests using it. Note that this action is irreversible.

⚠️ Getting access to API credentials

Clients are only issued by contacting us.

Getting an access token

The access token authorizes client access to all data and functionality. Obtain it via the OAuth 2.0 client credentials grant using the API credentials and the relevant OAuth URLs for your client's environment.

curl https://login.bisnode.com/as/token.oauth2  \
-X POST \
-u {YOUR_CLIENT_ID}:{YOUR_CLIENT_SECRET} \
-d "grant_type=client_credentials&scope=bci"

After requesting the token URL, you'll receive an access token in the response. Cache this token on your server until it expires and needs refreshing. Keep the access token secret.

{
    "access_token": "{YOUR_ACCESS_TOKEN}",
    "expires_in": 3600,
    "scope": "bci",
    "token_type": "bearer"
}

ℹ️ Use an existing OAuth client for authentication

Our API follows the OAuth 2.0 specification without modification, allowing you to use various OAuth clients for authentication. We recommend this over creating your own implementation. See this reference for available clients in your language.

Refreshing access tokens

Access tokens expire hourly, indicated by the expires_in key in the response. When expired, obtain a new token.

Accessing the API with the access token

Authenticate all API requests using a bearer authentication header. This header accesses client-wide endpoints (e.g. persons, consumers, webhooks, etc.).

Type Value
Header Authorization: Bearer {YOUR_ACCESS_TOKEN}
curl https://api.bisnode.com/consumer-intelligence/v3/webhooks \
-H "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \

Errors and problems

Errors when accessing resources

When using an access_token to access resources, you may encounter the following 4XX range HTTP Status Codes:

HTTP Status Code Explanation
400 Bad Request The request payload failed schema validation or parsing.
401 Unauthorized Missing or invalid authentication details.
403 Forbidden Authentication succeeded, but the client lacks access to the resource due to missing permissions.
404 Not Found Requested resource doesn't exist.
405 Method Not Allowed HTTP method is not available for the given endpoint.
409 Conflict Request was rejected due to a conflicting state.
429 Too Many Requests Request was rejected due to rate limiting.

In all cases, an RFC7807 Problem Details body is returned to aid in debugging.

Problems

Title Description
Bad Request Some part of the request was malformed. See associated detail message for more information.
Bad Gateway The service is currently unavailable. Most likely the service was slow to respond, might be overloaded or down for maintenance. Other endpoints might still be available.
You may want to retry the request using a randomized backoff delay.
Check the Consumer Intelligence Status page if this problem persists.
Constraint Violation Some part of the request does not validate the requirements. See associated violations for more information.
Forbidden The current context is not allowed to access the requested resource.
Gateway Timeout A request timed out.
Internal Server Error A critical error has occurred. An employee has been alerted and will work to remedy the situation.
Not Found The requested entity was not found.
Unauthorized The request contained an invalid or expired token.

Pagination

Consumer Intelligence endpoints returning collections of a specific type of resource, such as GET /consumers, will return a paginated response. Each response will consist of a subset of the resources, called a page.To retrieve the entire collection, subsequent pages need to be fetched.

Each response includes two properties: data and nextPageToken. The data property contains the records of the current page and the nextPageToken property contains the cursor of the next page. The cursors are unique identifiers for specific records in the dataset that help you keep track of your position and navigate through the pages.

Querying a paginated API endpoint

When querying a paginated endpoint, you may provide the following pagination query parameters:

  • pageSize
  • pageToken

All of these pagination query parameters are optional. If pageSize is not provided, the default page size of 100 is used. If pageToken is not provided, the returned page will contain the first set of resources in the collection.

Responses from most paginated endpoints are sorted in ascending order according to when the resource was created. Hence, for a request like GET /consumers, the most dated uploaded consumers appear on the first page.

How to navigate through paginated API responses

The nextPageToken property in a paginated response typically looks like this:

{
  "nextPageToken": "4fsezJ2bJf3Jz3zbfwBuCRWsh"
}

The nextPageToken property provides the cursor required to fetch the next page of resources.

If you are on the last page, there are no more subsequent resources. nextPageToken will then be null. The only endpoint this differs from is the List subscribed person and List audit events endpoints, in which case the cursor is supposed to be used as a way to start retrieving changes that has happened since last.

Versioning

Consumer Intelligence's API is versioned. A new version is released when breaking changes occur, while new features and bug fixes (additive changes) are available in all API versions.

Labels

Some endpoints we have are labelled. Here's an explanation of each label:

Beta

This endpoint is now feature complete and the implementation will not change. There may be bugs or stability issues but they are actively being worked on. We are still open to receiving feedback before delivering a stable release.

Experimental

This endpoint is being released in an early stage to get feedback. There are likely bugs or other issues that may not necessarily be prioritized. The whole implementation may be completely changed or removed.

Persons

Find person Beta

path Parameters
market
required
string
Request Body schema: application/json
required
legalId
string [ 0 .. 250 ] characters

National identity number.

Has different flavors in different countries and can contain multiple different identification numbers/strings.

Example: 198001022386 (faked swedish "personnummer" in the supported format, please note that the year is four digits).

firstName
string [ 0 .. 250 ] characters

The first name of the consumer. Multiple first names are supported, but will only use the first 3 provided.

Names can be separated using space, comma, dash, or any other similar non alpha-character.

familyName
string [ 0 .. 250 ] characters

The last name of the consumer. Multiple last names (or additional names) are supported, but will only use the first 3 provided.

Names can be separated using space, comma, dash, or any other similar non alpha-character.

dateOfBirth
string <date>

Date of birth in accordance with https://en.wikipedia.org/wiki/ISO_8601, i.e. YYYY-MM-DD (W3C-DTF).

yearOfBirth
integer <int32> [ 0 .. 9999 ]

A four digit representation of the year this consumer was born.

streetName
string [ 0 .. 250 ] characters

The street name of an address this consumer is, or has been, registered to.

streetNumber
string [ 0 .. 250 ] characters

The street number of an address this consumer is, or has been, registered to.

postalCode
string [ 0 .. 250 ] characters

The postal code (zip code) of an address this consumer is, or has been, registered to.

city
string [ 0 .. 250 ] characters

The postal city (district) of an address this consumer is, or has been, registered to.

entrance
string [ 0 .. 250 ] characters

The entrance of an address this consumer is, or has been, registered to.

floor
string [ 0 .. 250 ] characters

The floor of an address this consumer is, or has been, registered to.

apartment
string [ 0 .. 250 ] characters

The apartment of an address this consumer is, or has been, registered to.

fullAddress
string [ 0 .. 250 ] characters

The full address is an address the consumer is registered to, provided as one string. When this field is provided, it will be parsed and used to populate any of the following fields with null values: streetName, streetNumber, entrance, floor, apartment, postalCode, city. If any non-null value is provided in any of these fields we assume the provided value is more correct than the parsed value.

Please use the specific components whenever you can, it will probably provide a better hit rate for your queries.

Some examples:

Given that you do not know the streetNumber and entrance, and do not wish to parse this yourself, you can provide the following query to Consumer Intelligence:

{
  "postalCode": "41114",
  "city": "Göteborg",
  "fullAddress": "Storgatan 22B"
}

Consumer Intelligence will then populate the missing fields streetName, streetNumber and entrance from the provided fullAddress into the following:

{
  "streetName": "Storgatan",
  "streetNumber": "22",
  "entrance": "B",
  "postalCode": "41114",
  "fullAddress": "Storgatan 22B"
}

If you wish a field not to be parsed, you can provide an empty field:

{
  "entrance": ""
  "fullAddress": "Storgatan 22B"
}

Would result in:

{
  "streetName": "Storgatan",
  "streetNumber": "22",
  "entrance": "",
  "fullAddress": "Storgatan 22B"
}
phoneNumber
string [ 0 .. 250 ] characters

Phone number that belongs, or has belonged, to the consumer. Preferably in E.164 format. E.g. +46704284712

gender
string
Enum: "MALE" "FEMALE" "OTHER"

The gender of the consumer.

Responses

Request samples

Content type
application/json
{
  • "legalId": 198001022386,
  • "firstName": "string",
  • "familyName": "string",
  • "dateOfBirth": "1980-09-23",
  • "yearOfBirth": 1969,
  • "streetName": "Storgatan",
  • "streetNumber": 22,
  • "postalCode": 41114,
  • "city": "Göteborg",
  • "entrance": "A",
  • "floor": 3,
  • "apartment": 1522,
  • "fullAddress": "Storgatan 22B",
  • "phoneNumber": "+46704284712",
  • "gender": "MALE"
}

Response samples

Content type
application/json
{
  • "status": {
    },
  • "relationships": {
    },
  • "relocationEvents": [
    ],
  • "addresses": [
    ],
  • "birthPlace": {
    },
  • "phoneNumbers": [
    ],
  • "enrichment": {
    },
  • "customEnrichment": {
    },
  • "metadata": {
    },
  • "languageTag": "string",
  • "directMarketingRestriction": true,
  • "charityMarketingRestriction": true,
  • "onlineMarketingRestriction": true,
  • "sex": "FEMALE",
  • "gender": "FEMALE",
  • "minor": "NO",
  • "citizenship": [
    ],
  • "legalId": {
    },
  • "estimatedAge": 0,
  • "firstNames": [
    ],
  • "possibleNicknames": [
    ],
  • "preferredFirstName": "string",
  • "additionalName": "string",
  • "familyName": "string",
  • "honorificPrefix": "string",
  • "honorificSuffix": "string",
  • "shortenedFullName": "string",
  • "baseNameCode": "string",
  • "birthDate": "2019-08-24",
  • "birthDatePrecision": "YEAR",
  • "maritalStatus": "DIVORCED",
  • "diplomaticImmunity": true,
  • "futureLegalAuthorization": true,
  • "identificationClaim": true
}

List subscribed persons Experimental

Returns a paginated list of your subscribed persons.

Your subscribed persons is a de-duplicated list of your identified consumers. Please see our guide on how to subscribe to new persons.

List is sorted in ascending order according to the person's changed timestamp. In other words, the first page will return the persons with oldest changed timestamps. When reaching the end, you will still receive a nextPageToken, but the response will be empty. Hence, if you have a job running to download latest changes since last, you should store the last received nextPageToken for use in the next job execution.

query Parameters
pageToken
string

The pageToken can be used for pagination. Cannot be used with fromDate.

fromDate
string <date>

The fromDate can be used to start pagination from a specific date UTC. Cannot be used with pageToken.

pageSize
integer <int32> [ 1 .. 1000 ]
Default: 100

Responses

Response samples

Content type
application/json
{
  • "nextPageToken": "string",
  • "data": [
    ]
}

Get person Beta

path Parameters
gedi
required
string

Responses

Response samples

Content type
application/json
{
  • "status": {
    },
  • "relationships": {
    },
  • "relocationEvents": [
    ],
  • "addresses": [
    ],
  • "birthPlace": {
    },
  • "phoneNumbers": [
    ],
  • "enrichment": {
    },
  • "customEnrichment": {
    },
  • "metadata": {
    },
  • "languageTag": "string",
  • "directMarketingRestriction": true,
  • "charityMarketingRestriction": true,
  • "onlineMarketingRestriction": true,
  • "sex": "FEMALE",
  • "gender": "FEMALE",
  • "minor": "NO",
  • "citizenship": [
    ],
  • "legalId": {
    },
  • "estimatedAge": 0,
  • "firstNames": [
    ],
  • "possibleNicknames": [
    ],
  • "preferredFirstName": "string",
  • "additionalName": "string",
  • "familyName": "string",
  • "honorificPrefix": "string",
  • "honorificSuffix": "string",
  • "shortenedFullName": "string",
  • "baseNameCode": "string",
  • "birthDate": "2019-08-24",
  • "birthDatePrecision": "YEAR",
  • "maritalStatus": "DIVORCED",
  • "diplomaticImmunity": true,
  • "futureLegalAuthorization": true,
  • "identificationClaim": true
}

Consumers

List consumers Experimental

List all uploaded consumers.

query Parameters
pageToken
string
pageSize
integer <int32> [ 1 .. 1000 ]
Default: 100
state
string (ConsumerStateTypeDto)
Enum: "UPLOADED" "IDENTIFYING" "IDENTIFIED" "NOT_IDENTIFIED"

Responses

Response samples

Content type
application/json
{
  • "nextPageToken": "string",
  • "data": [
    ]
}

Upload consumers Experimental

Upload a batch of consumers to match for corresponding persons in your configured sources. Found persons will automatically be subscribed to any future changes, as long as they have connected consumers.

Request Body schema: application/json
required
Array
market
required
string non-empty [A-Z]{2}

Used to determine which dataset or integration to use when identifying a consumer and subscribing to changes.

Two letter representation of a country in accordance with [ISO_3166-1_alpha-2]https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), e.g SE, NO, DK, FI.

required
object (ConsumerDataDto)

Consumer data provided to identify a person. Provide as much data as possible for a higher hit rate.

consumerId
required
string [ 1 .. 250 ] characters ^(?!_)[a-zA-Z0-9@\-_]+$

A (to you) unique id for this consumer. You will use this id to find the identification result of a consumer and/or changes to the related subscription.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "status": 400,
  • "detail": "Request body contains one or more errors",
  • "type": "about:blank",
  • "title": "Constraint Violation",
  • "instance": "urn:bisnode:traceid:7a40216a-4506-4e20-a404-0e60854759cb",
  • "violations": [
    ]
}

Delete consumers Experimental

Delete a batch of uploaded consumers. This will also automatically unsubscribe any related persons if no other consumer is already connected to the subscribed person.

Request Body schema: application/json
required
consumerIds
required
Array of strings [ 1 .. 250 ] items [ items^(?!_)[a-zA-Z0-9@\-_]+$ ]

Unique ids for your consumers.

Responses

Request samples

Content type
application/json
{
  • "consumerIds": [
    ]
}

Response samples

Content type
application/json
{
  • "status": 400,
  • "detail": "Request body contains one or more errors",
  • "type": "about:blank",
  • "title": "Constraint Violation",
  • "instance": "urn:bisnode:traceid:7a40216a-4506-4e20-a404-0e60854759cb",
  • "violations": [
    ]
}

Audit events

List audit events Experimental

Returns a paginated list of all available audit events.

Audit events are events happening to your resources within Consumer Intelligence. These events are usually synonymous to the webhook events.

Audit events are only stored for up to 1 year.

query Parameters
pageToken
string
pageSize
integer <int32> [ 1 .. 1000 ]
Default: 100

Responses

Response samples

Content type
application/json
{
  • "nextPageToken": "string",
  • "data": [
    ]
}

Webhooks

List webhooks Experimental

Responses

Response samples

Content type
application/json
{
  • "webhooks": [
    ]
}

Create webhook Experimental

Request Body schema: application/json
required
url
required
string
events
required
Array of strings (WebhookEventTypeDto)
Items Enum: "*" "PING" "CONSUMER_UPLOADED" "CONSUMER_DELETED" "CONSUMER_IDENTIFIED" "CONSUMER_NOT_IDENTIFIED" "PERSON_SUBSCRIBED" "PERSON_UNSUBSCRIBED" "PERSON_REIDENTIFIED" "PERSON_CHANGED" "ENRICHMENT_CHANGED" "LIFE_EVENT"
description
string

Responses

Request samples

Content type
application/json
{
  • "url": "string",
  • "events": [
    ],
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "url": "string",
  • "events": [
    ],
  • "description": "string",
  • "secret": "string"
}

Delete webhook Experimental

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "url": "string",
  • "events": [
    ],
  • "description": "string"
}

Webhook events

PING Webhook

Used for testing and validating the use of the webhook.

Request Body schema: application/json
required
type
required
string (WebhookEventTypeDto)
Enum: "PING" "*" "CONSUMER_UPLOADED" "CONSUMER_DELETED" "CONSUMER_IDENTIFIED" "CONSUMER_NOT_IDENTIFIED" "PERSON_SUBSCRIBED" "PERSON_UNSUBSCRIBED" "PERSON_REIDENTIFIED" "PERSON_CHANGED" "ENRICHMENT_CHANGED" "LIFE_EVENT"
id
required
string
timestamp
required
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "type": "*",
  • "id": "string",
  • "timestamp": "2019-08-24T14:15:22Z"
}

CONSUMER_UPLOADED Webhook

A consumer has been uploaded.

Request Body schema: application/json
required
type
required
string (WebhookEventTypeDto)
Enum: "CONSUMER_UPLOADED" "*" "PING" "CONSUMER_DELETED" "CONSUMER_IDENTIFIED" "CONSUMER_NOT_IDENTIFIED" "PERSON_SUBSCRIBED" "PERSON_UNSUBSCRIBED" "PERSON_REIDENTIFIED" "PERSON_CHANGED" "ENRICHMENT_CHANGED" "LIFE_EVENT"
id
required
string
timestamp
required
string <date-time>
consumerId
required
string

A client unique id of the consumer.

market
required
string
Enum: "DK" "FI" "NO" "SE" "XX"

Market of the consumer.

Responses

Request samples

Content type
application/json
{
  • "type": "*",
  • "id": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "consumerId": "string",
  • "market": "DK"
}

CONSUMER_DELETED Webhook

A consumer has been deleted.

Request Body schema: application/json
required
type
required
string (WebhookEventTypeDto)
Enum: "CONSUMER_DELETED" "*" "PING" "CONSUMER_UPLOADED" "CONSUMER_IDENTIFIED" "CONSUMER_NOT_IDENTIFIED" "PERSON_SUBSCRIBED" "PERSON_UNSUBSCRIBED" "PERSON_REIDENTIFIED" "PERSON_CHANGED" "ENRICHMENT_CHANGED" "LIFE_EVENT"
id
required
string
timestamp
required
string <date-time>
consumerId
required
string

A client unique id of the consumer.

market
required
string
Enum: "DK" "FI" "NO" "SE" "XX"

Market of the consumer.

Responses

Request samples

Content type
application/json
{
  • "type": "*",
  • "id": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "consumerId": "string",
  • "market": "DK"
}

CONSUMER_IDENTIFIED Webhook

A person has been identified for a consumer.

Request Body schema: application/json
required
type
required
string (WebhookEventTypeDto)
Enum: "CONSUMER_IDENTIFIED" "*" "PING" "CONSUMER_UPLOADED" "CONSUMER_DELETED" "CONSUMER_NOT_IDENTIFIED" "PERSON_SUBSCRIBED" "PERSON_UNSUBSCRIBED" "PERSON_REIDENTIFIED" "PERSON_CHANGED" "ENRICHMENT_CHANGED" "LIFE_EVENT"
id
required
string
timestamp
required
string <date-time>
consumerId
required
string

A client unique id of the consumer.

market
required
string
Enum: "DK" "FI" "NO" "SE" "XX"

Market of the consumer.

gedi
required
string

Gedi of identified consumer.

source
required
string (SourceName)
Enum: "CPR" "CUSTOM_SANDBOX" "DUN_BRADSTREET" "DVV" "FREG" "SPAR"

Identification source.

Responses

Request samples

Content type
application/json
{
  • "type": "*",
  • "id": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "consumerId": "string",
  • "market": "DK",
  • "gedi": "string",
  • "source": "CPR"
}

CONSUMER_NOT_IDENTIFIED Webhook

No person could be identified for the consumer.

Request Body schema: application/json
required
type
required
string (WebhookEventTypeDto)
Enum: "CONSUMER_NOT_IDENTIFIED" "*" "PING" "CONSUMER_UPLOADED" "CONSUMER_DELETED" "CONSUMER_IDENTIFIED" "PERSON_SUBSCRIBED" "PERSON_UNSUBSCRIBED" "PERSON_REIDENTIFIED" "PERSON_CHANGED" "ENRICHMENT_CHANGED" "LIFE_EVENT"
id
required
string
timestamp
required
string <date-time>
consumerId
required
string

A client unique id of the consumer.

market
required
string
Enum: "DK" "FI" "NO" "SE" "XX"

Market of the consumer.

sources
required
Array of strings (SourceName)
Items Enum: "CPR" "CUSTOM_SANDBOX" "DUN_BRADSTREET" "DVV" "FREG" "SPAR"

List of sources the consumer could not be identified in.

Responses

Request samples

Content type
application/json
{
  • "type": "*",
  • "id": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "consumerId": "string",
  • "market": "DK",
  • "sources": [
    ]
}

PERSON_REIDENTIFIED Webhook

A subscribed person who was previously identified is identified again with a different gedi, and possibly also with a new source. Can occur when one person has been identified as two different gedis, but are now de-duplicated

Request Body schema: application/json
required
type
required
string (WebhookEventTypeDto)
Enum: "PERSON_REIDENTIFIED" "*" "PING" "CONSUMER_UPLOADED" "CONSUMER_DELETED" "CONSUMER_IDENTIFIED" "CONSUMER_NOT_IDENTIFIED" "PERSON_SUBSCRIBED" "PERSON_UNSUBSCRIBED" "PERSON_CHANGED" "ENRICHMENT_CHANGED" "LIFE_EVENT"
id
required
string
timestamp
required
string <date-time>
consumerIds
required
Array of strings

List of consumer ids related to the re-identified person.

market
required
string
Enum: "DK" "FI" "NO" "SE" "XX"

Market of the subscribed person.

required
object (GediSource)

The gedi and source for the person that was previously identified

required
object (GediSource)

The gedi and source that has replaced the previously identified person

Responses

Request samples

Content type
application/json
{
  • "type": "*",
  • "id": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "consumerIds": [
    ],
  • "market": "DK",
  • "previous": {
    },
  • "replacedBy": {
    }
}

PERSON_CHANGED Webhook

A subscribed person has changed.

Request Body schema: application/json
required
type
required
string (WebhookEventTypeDto)
Enum: "PERSON_CHANGED" "*" "PING" "CONSUMER_UPLOADED" "CONSUMER_DELETED" "CONSUMER_IDENTIFIED" "CONSUMER_NOT_IDENTIFIED" "PERSON_SUBSCRIBED" "PERSON_UNSUBSCRIBED" "PERSON_REIDENTIFIED" "ENRICHMENT_CHANGED" "LIFE_EVENT"
id
required
string
timestamp
required
string <date-time>
consumerIds
required
Array of strings

List of consumer ids related to the subscribed person.

gedi
required
string

Gedi of the subscribed person.

source
required
string (SourceName)
Enum: "CPR" "CUSTOM_SANDBOX" "DUN_BRADSTREET" "DVV" "FREG" "SPAR"

Source that generated the change.

jsonPointers
required
Array of strings

Not yet implemented. List of RFC 6901 JSON Pointers affected by the change.

changedId
required
string

Not yet implemented. A change ID that can be used to get the full RFC 6902 JSON Patch when retrieving the person using the getPerson API.

Responses

Request samples

Content type
application/json
{
  • "type": "*",
  • "id": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "consumerIds": [
    ],
  • "gedi": "string",
  • "source": "CPR",
  • "jsonPointers": [
    ],
  • "changedId": "string"
}

ENRICHMENT_CHANGED Webhook

One or more enrichment variables of a subscribed person has changed.

Request Body schema: application/json
required
type
required
string (WebhookEventTypeDto)
Enum: "ENRICHMENT_CHANGED" "*" "PING" "CONSUMER_UPLOADED" "CONSUMER_DELETED" "CONSUMER_IDENTIFIED" "CONSUMER_NOT_IDENTIFIED" "PERSON_SUBSCRIBED" "PERSON_UNSUBSCRIBED" "PERSON_REIDENTIFIED" "PERSON_CHANGED" "LIFE_EVENT"
id
required
string
timestamp
required
string <date-time>
consumerIds
required
Array of strings

List of consumer ids related to the subscribed person.

gedi
required
string

Gedi of the subscribed person.

variable
required
string

Name of the enrichment variable that has changed.

Responses

Request samples

Content type
application/json
{
  • "type": "*",
  • "id": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "consumerIds": [
    ],
  • "gedi": "string",
  • "variable": "string"
}

LIFE_EVENT Webhook

A life event, to a subscribed person, occurred.

Request Body schema: application/json
required
id
required
string
type
required
string (WebhookEventTypeDto)
Enum: "LIFE_EVENT" "*" "PING" "CONSUMER_UPLOADED" "CONSUMER_DELETED" "CONSUMER_IDENTIFIED" "CONSUMER_NOT_IDENTIFIED" "PERSON_SUBSCRIBED" "PERSON_UNSUBSCRIBED" "PERSON_REIDENTIFIED" "PERSON_CHANGED" "ENRICHMENT_CHANGED"
timestamp
required
string <date-time>
phase
required
string

The phase of the Life Event

market
required
string
Enum: "DK" "FI" "NO" "SE" "XX"

Market of the subscribed person.

gedi
required
string

Gedi of the subscribed person.

consumerIds
required
Array of strings

List of consumer ids related to the subscribed person.

trigger
required
string (LifeEventTrigger)
Enum: "HOUSEHOLD_MOVE" "SINGLE_TO_COUPLE" "MOVE_FROM_APARTMENT_TO_HOUSE" "MOVE_FROM_HOUSE_TO_APARTMENT" "MOVE_URBANIZATION"

The life event trigger

probability
integer <int32>

The probability that the Life Event will occur. 1-99.

withinEstimatedDays
integer <int64>

Within how many days is the prediction valid.

Responses

Request samples

Content type
application/json
Example
{
  • "type": "LIFE_EVENT",
  • "id": "e965c1b7-597d-431b-a89a-47a0990e4070",
  • "timestamp": "2024-01-04T10:15:30Z",
  • "trigger": "HOUSEHOLD_MOVE",
  • "consumerIds": [
    ],
  • "gedi": "gedi-123456789",
  • "market": "SE",
  • "phase": "PREDICT",
  • "probability": 75,
  • "withinEstimatedDays": 120
}