Skip to content

Data Exchange API (5)

This API 1 provides services to upload, manipulate and download businesspartner data in the CDL Cloud.

Download OpenAPI description
Languages
Servers
Production

https://api.cdq.com/data-exchange/rest/

Seed Updates

Manages operations such as creating, updating, or transforming Business Partner data to ensure that the information is current and accurate.

Operations

Analytics

Provides functionalities for analyzing and processing Business Partner data, enabling users to gain insights and perform various analytical operations on the data.

Operations

Business Partner Storages

Provides functionalities for creating, retrieving, updating and deleting Business Partner storage, as well as managing associated data sources and data monitors.

Operations

Business Partners

Provides functionalities for creating, retrieving, updating, and deleting Business Partner records, as well as performing various operations such as lookup and upsert.

Operations

List Business Partners

Request

Read a page of business partners from the storage.

Security
apiKey
Path
storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Query
startAfterstring

Only items with an ID greater than the given one will be retrieved.

When nextStartAfter provided in the response, should be used instead of the ID as an indicator for a next page.

Example: startAfter=5712566172571652
limitinteger(int32)>= 1

Number of items to be returned on the page.

Default 500
Example: limit=100
dataSourceArray of strings(BusinessPartnerDataSource)

Data Source (name or ID) to be measured during calculating statistics. By default, all Data Sources are measured.

Example: dataSource="CUSTOM_DATA_SOURCE" or "648824a691d8d2503d65103e"
countryCodeArray of strings(CountryShortName)

Country code (ISO 3166-1 alpha-2) used to filter the result of business partners returned.

Example: countryCode=CH
hasRawDataboolean

Flag to filter result of business partners based on the existence of the record attribute (raw data).

Default false
Example: hasRawData=false
updateMonitoringboolean

Flag to filter business partners by the value of updateMonitoring attribute.

Example: updateMonitoring=true
modifiedBeforestring

Return entries which were modified before given data. The given date should support ISO-8601 representation.

Example: modifiedBefore=2025-08-19T06:23:16Z
modifiedAfterstring

Return entries which were modified after given data. The given date should support ISO-8601 representation.

Example: modifiedAfter=2025-08-19T06:23:16Z
businessPartnerIdArray of strings(BusinessPartnerId)

Business Partner IDs which should be filtered.

Example: businessPartnerId=63e635235c06b7396330fe40
externalIdArray of strings(BusinessPartnerExternalId)<= 100 items

Business Partner externalIDs.

Example: externalId=The ID managed in the customer's SAP systems.
sharingStatusArray of strings

Business Partner Sharing Status which should be filtered.

Sharing Statuses which can be filtered out:

  • UNDER_CONSIDERATION
  • UNDISCLOSED_RECORD
  • MISSING_INFORMATION_FOR_LINKAGE
  • ERRONEOUS_INFORMATION_FOR_LINKAGE
  • ERRONEOUS_RECORD
  • PENDING_LINKAGE_DECISION
  • PROCESS_ISSUE
  • SHARED_WITH_NO_MATCH
  • SHARED_WITH_CONFIDENT_MATCH
  • SHARED_WITH_NO_MATCH_BY_REVIEW
  • SHARED_BY_REVIEW
Example: sharingStatus=UNDER_CONSIDERATION
featuresOnArray of strings(BusinessPartnersReadFeatureParam)

Features to be activated.

Items Enum ValueDescription
APPLY_CURATION_DECISIONS

Applies curation decisions from Decision Log to business partner if any decisions found. By default, deactivated.

CURATION_LOG_RESULT_STATUSES

Allows to switch fetching curation log result statuses. By default, deactivated.

FETCH_RECORD

Allows to switch fetching record field to reduce data size. By default, turned on.

FETCH_RELATIONS

Allows to switch fetching relations of Business Partners. By default, deactivated. Only for storages with RELATIONS feature activated.

NUMBER_OF_TOTAL

Allows to switch fetching the total number of Business Partners to improve performance. By default, turned on.

USE_NEXT_START_AFTER

Allows to switch fetching the next page of Business Partners using the nextStartAfter value. By default, deactivated.

VALIDATION_LOG_RESULT_STATUSES

Allows to switch fetching validation log result statuses. By default, deactivated.

Example: featuresOn=APPLY_CURATION_DECISIONS
featuresOffArray of strings(BusinessPartnersReadFeatureParam)

Features to be deactivated.

Items Enum ValueDescription
APPLY_CURATION_DECISIONS

Applies curation decisions from Decision Log to business partner if any decisions found. By default, deactivated.

CURATION_LOG_RESULT_STATUSES

Allows to switch fetching curation log result statuses. By default, deactivated.

FETCH_RECORD

Allows to switch fetching record field to reduce data size. By default, turned on.

FETCH_RELATIONS

Allows to switch fetching relations of Business Partners. By default, deactivated. Only for storages with RELATIONS feature activated.

NUMBER_OF_TOTAL

Allows to switch fetching the total number of Business Partners to improve performance. By default, turned on.

USE_NEXT_START_AFTER

Allows to switch fetching the next page of Business Partners using the nextStartAfter value. By default, deactivated.

VALIDATION_LOG_RESULT_STATUSES

Allows to switch fetching validation log result statuses. By default, deactivated.

Example: featuresOff=APPLY_CURATION_DECISIONS
validationLogResultStatusArray of strings(ValidationLevelParam)

Violation level of validation result.

Items Enum ValueDescription
OK

No data quality issues have been found after executing all the rules.

ERROR

At least 1 ERROR defect has been found.

WARNING

At least 1 WARNING defect has been found.

INFO

At least 1 INFO defect has been found.

UNKNOWN

No ERROR has been found, but at least one data quality rule could not be executed.

Example: validationLogResultStatus=WARNING
validationSharingLogResultStatusArray of strings(ValidationLevelParam)

Violation level of sharing validation result.

Items Enum ValueDescription
OK

No data quality issues have been found after executing all the rules.

ERROR

At least 1 ERROR defect has been found.

WARNING

At least 1 WARNING defect has been found.

INFO

At least 1 INFO defect has been found.

UNKNOWN

No ERROR has been found, but at least one data quality rule could not be executed.

Example: validationSharingLogResultStatus=WARNING
curationLogResultStatusArray of strings(CurationLevelParam)

Curation log of curation result.

Items Enum ValueDescription
UNKNOWN

No possibility to determine curation level.

LEVEL_1

The address was not found by the CDQ in the employed external data sources.

LEVEL_2

The address was found, but there were significant changes in critical fields.

LEVEL_3

The address was found and there are minor changes in highly important fields.

LEVEL_4

The address was found by the CDQ. There were only changes in less critical fields such as the address/premise or address/thoroughfare/number.

LEVEL_5

The address was found by the CDQ, but no major changes have been made as the address was correct.

LEVEL_6

The address was found in the shared CDQ data pool. This means another company uses the same address which is a very reliable indicator that the address is correct (only in an alpha version).

Example: curationLogResultStatus=LEVEL_1
reviewStatusstring(ReviewStatusParam)

Review status used for filtering the result data.

Enum ValueDescription
REVIEWED

Reviewed.

NOT_REVIEWED

Not reviewed.

Example: reviewStatus=REVIEWED
fromJobProcessedAtstring

Returns the results which have one of the log result status -> jobProcessedAt after given date. The given date should support ISO-8601 representation.

Example: fromJobProcessedAt=2025-08-19T06:23:16Z
toJobProcessedAtstring

Returns the results which have one of the log result status -> jobProcessedAt before given date. The given date should support ISO-8601 representation.

Example: toJobProcessedAt=2025-08-19T06:23:16Z
fromTriggerProcessedAtstring

Returns the results which have one of the log result status -> triggerProcessedAt after given date. The given date should support ISO-8601 representation.

Example: fromTriggerProcessedAt=2025-08-19T06:23:16Z
toTriggerProcessedAtstring

Returns the results which have one of the log result status -> triggerProcessedAt before given date. The given date should support ISO-8601 representation.

Example: toTriggerProcessedAt=2025-08-19T06:23:16Z
fromProcessedAtstring

Returns the results which have one of the log result status -> processedAt after given date. The given date should support ISO-8601 representation.

Example: fromProcessedAt=2025-08-19T06:23:16Z
toProcessedAtstring

Returns the results which have one of the log result status -> processedAt before given date. The given date should support ISO-8601 representation.

Example: toProcessedAt=2025-08-19T06:23:16Z
logResultTriggerTypeArray of strings(ProcessingLogResultStatusTriggerTypeTechnicalKeyParam)

Trigger type used for filtering the result which should match with at least one of any log result status -> triggerType fields.

Items Enum"CREATED""UPDATED""REFERENCE_DATA_CHANGED""REFRESHED""JOB""INITIALIZED,""CONFIGURATION_MODIFIED""MANUALLY_FORCED""MONITORING_REENABLED"
Example: logResultTriggerType=CREATED
logResultTriggerProvenanceTechnicalKeysArray of strings(ProvenanceTechnicalKey)

Provenance technical keys used for filtering the result which should match with at least one of any log result status -> triggerType fields.

Example: logResultTriggerProvenanceTechnicalKeys=VIES
typeTechnicalKeysArray of strings(BusinessPartnerTypeTechnicalKeyParam)<= 1 items

Business Partner type technical keys which should be filtered.

Items Enum"BP_ADDRESS""LEGAL_ENTITY""ORGANIZATIONAL_UNIT""UNKNOWN""BRAND"
Example: typeTechnicalKeys=LEGAL_ENTITY
tagValuesArray of strings(TagValue)

Tag values that will be used to filter Business Partners. Values are connected with logical 'AND'.

Example: tagValues=Warehouse
tagTypeTechnicalKeystring(TagTypeTechnicalKey)

Type Technical Key of tags that are provided in 'tagValues' query param.

Example: tagTypeTechnicalKey=WAREHOUSE
curationProcessingStatusstring(ProcessingStatusTechnicalKeyEnum)

Curation's processing status technical key to filter by.

Enum ValueDescription
READY

Processing Log Data processing has finished and result ready to consume.

RETRY

Processing Log Data processing has failed and needs to be retried.

BLOCKED

Processing Log Data processing is blocked and needs to be resolved.

IN_PROGRESS

Processing Log Data is being processed.

Example: curationProcessingStatus=IN_PROGRESS
validationProcessingStatusstring(ProcessingStatusTechnicalKeyEnum)

Validation's processing status technical key to filter by.

Enum ValueDescription
READY

Processing Log Data processing has finished and result ready to consume.

RETRY

Processing Log Data processing has failed and needs to be retried.

BLOCKED

Processing Log Data processing is blocked and needs to be resolved.

IN_PROGRESS

Processing Log Data is being processed.

Example: validationProcessingStatus=IN_PROGRESS
curl -i -X GET \
  https://api.cdq.com/data-exchange/rest/v4/storages/72d6900fce6b326088f5d9d91049e3e6/businesspartners \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
startAfterstring(StartAfter)

The ID which is used to read the page.

Example: "5712566172571652"
limitinteger(Limit)

Number of items per page.

Example: "100"
totalinteger(PageTotal)

Total number of items which can be paged.

Example: "67"
valuesArray of objects(BusinessPartner)

List of Business Partners.

nextStartAfterstring

Available only when you used USE_NEXT_START_AFTER feature. Provides a value to be used as a startAfter in next page request.

Example: "5712566172571652"
Response
application/json
{ "startAfter": "5712566172571652", "limit": "100", "total": "67", "values": [ {} ], "nextStartAfter": "5712566172571652" }

Upsert Business Partners

Request

Upsert Business Partners in a Business Partner storage in batches. Maximum of 1000 Business Partners are allowed per batch.

If no data source (via field: dataSource) is provided and the storage has only one, then this data source will be used/set. Other options are to provide an existing data source in the request, which will then be taken for all the Business Partner or to provide a data source for each Business Partner individually.

In the following cases an API error will be thrown:

  1. given data source in the Request or the BusinessPartner is unknown
  2. no data source given and more than one data source is attached to the storage

To start upserting Business Partners into a storage, use the following request.

PUT https://api.corporate-data-league.ch/data-exchange/rest/v4/storages/{YOUR STORAGE ID}/businesspartners
{
  "dataSource": "{YOUR DATA SOURCE}",
  "featuresOn": ["UPSERT_BY_EXTERNAL_ID"],
  "businessPartners": [
   {
     "externalId": "123",
     "record": "{\"MyId\":\"123\", \"City\":\"St. Gallen\"}"
   }]
}

The response is shown below.

{
   "numberOfAccepted": "1",
   "numberOfFailed": "0",
}

Upserting Business Partners enables automated data transformation from the record field to the Business Partner model. It requires a Data Mapper Definition and assigned to dataMapperDefinitionId field of a data source Business Partner is being upserted to.

record field requires stringified JSON. Characters: backslash \ and double quote " must be escaped (respectively: \\\\ and \"). Fields containing . are unallowed."

To enable automated data transformation, one of the following features is required:

  • TRANSFORM_RECORD - synchronous transformation, limited for batch size <= 250,
  • ENABLE_ASYNC - asynchronous transformation. Enabled by default when TRANSFORM_RECORD is not requested.

Automated data transformation can be executed together with the UPSERT_BY_EXTERNAL_ID feature, but it requires to provide external ID as a field externalId of a Business Partner, which is preserved during the transformation.

If there is no name typed LOCAL in businessPartner.names and exists any name with empty type or not filled type.technicalKey, it becomes name of type LOCAL.

Warn: in order to support multiple data sources, include dataSource into the request, either in $.dataSource or $.businessPartners[*].dataSource. Otherwise, multiple data sources with no selection of data source will lead to "No DataSource was provided for the given Business Partners and the storage has more than one attached to it." exception.

Limits

Business Partner and Address fields have defined array size limits

PathMax array size
$.businessPartners[*].names20
$.businessPartners[*].identifiers20
$.businessPartners[*].categories20
$.businessPartners[*].addresses20
$.businessPartners[*].relations20
$.businessPartners[*].types20
$.businessPartners[*].bankAccounts50
$.businessPartners[*].profile.websites20
$.businessPartners[*].profile.classifications20
$.businessPartners[*].profile.contactEmails20
$.businessPartners[*].profile.phoneNumbers20
$.businessPartners[].addresses[].contexts100
$.businessPartners[].addresses[].administrativeAreas20
$.businessPartners[].addresses[].postCodes20
$.businessPartners[].addresses[].localities20
$.businessPartners[].addresses[].thoroughfares20
$.businessPartners[].addresses[].premises20
$.businessPartners[].addresses[].postalDeliveryPoints20
$.businessPartners[].addresses[].types20
Security
apiKey
Path
storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Bodyapplication/jsonrequired

Parameters for Business Partners Upsert.

dataSourcestring(BusinessPartnerDataSource)

Name or ID of a data source. Reflects the associated external system where the record originates from.

Example: "\"CUSTOM_DATA_SOURCE\" or \"648824a691d8d2503d65103e\""
businessPartnersArray of objects(BusinessPartner)[ 1 .. 1000 ] itemsrequired

List of Business Partners.

businessPartners[].​idstring(BusinessPartnerId)

A CDQ ID identifies a business partner uniquely in the context of the Corporate Data League.

Example: "63e635235c06b7396330fe40"
businessPartners[].​createdAtstring(CreatedAt)

Date of creation (ISO 8601-compliant).

Example: "2025-08-19T06:23:16Z"
businessPartners[].​modifiedAtstring(ModifiedAt)

Date of modification (ISO 8601-compliant).

Example: "2025-08-19T06:23:16Z"
businessPartners[].​externalIdstring(BusinessPartnerExternalId)

Arbitrary identifier type to mark customer IDs that are "external" from CDQ's perspective. This is the identifier a customer provides to identify its records.

Example: "The ID managed in the customer's SAP systems."
businessPartners[].​dataSourcestring(BusinessPartnerDataSource)

Name or ID of a data source. Reflects the associated external system where the record originates from.

Example: "\"CUSTOM_DATA_SOURCE\" or \"648824a691d8d2503d65103e\""
businessPartners[].​disclosedboolean(BusinessPartnerDisclosed)

A flag to indicate whether the business partner should participate in the sharing or not. If 'true' this business partner might be used to create a new entry or update an existing entry in the community pool. Otherwise, it will not be considered for the sharing process. For more details, you can read about Sharing Scopes.

Example: "false"
businessPartners[].​updateMonitoringboolean(BusinessPartnerUpdateMonitoring)

A flag to indicate whether the Business Partner should receive updates from non-commercial Reference Data Sources or not. If 'true' this Business Partner will receive updates since the change from 'false'. If 'false' this Business Partner will not receive any new updates since the change. If not provided, the previous value will not be changed. By default, Update Monitoring is activated.

Example: "true"
businessPartners[].​updateCommercialMonitoringArray of objects(BusinessPartnerUpdateCommercialMonitoring)

Enabling update commercial monitoring has 2 possibilities:

  • via Data Mapper Definition: include mapping of updateCommercialMonitoring in the Data Mapper Definition
  • via direct Business Partner model upload: fill complete Business Partner model and updateCommercialMonitoring. Null/undefined updateCommercialMonitoring results in protection of this setup from the previous upsert. Empty or filled updateCommercialMonitoring results in data transition that may link or unlink to / from respective commercial Reference Data Source

Note: follow the approach that is currently used in your storage integration.

businessPartners[].​metadataobject(BusinessPartnerMetadata)

Information about results of Business Partner processing.

businessPartners[].​recordstring(BusinessPartnerRecord)

Stringified JSON of an individual Business Partner record. Characters: backslash \ and double quote " must be escaped (respectively: \\\\ and \"). Fields containing . are unallowed. Maximum size: 15MB.

Example: "{\"name\": \"BUSINESSPARTNER_NAME\", ...}"
businessPartners[].​namesArray of objects(Name)

List of names.

businessPartners[].​legalFormobject(LegalForm)

The legal form of a business partner/type/legal entity is the form it takes in the eyes of the law governing it. The legal form of a company is the general type it may legally use to identify itself according to the local, regional, national, or international law governing it. This is normally reflected in the ending abbreviation after the company's name (e.g. AG, Inc., LLC, S.A.).

businessPartners[].​identifiersArray of objects(Identifier)

List of Identifiers.

businessPartners[].​categoriesArray of objects(BusinessPartnerCategory)

List of Categories.

businessPartners[].​statusobject(BusinessPartnerStatus)

Describes the status of a business partner with respect to its level of activity (e.g. out of business) or legally relevant conditions (e.g. in liquidation).

businessPartners[].​profileobject(PartnerProfile)

Additional documentation can be found here.

businessPartners[].​relationsArray of objects(BusinessPartnerRelation)

List of Relations. Insert or update Business Partner Relations. Relations that are not listed in the request and start in the current business partner, are marked as INACTIVE.

In D&B storages, only not listed relations of class D&B Hierarchy and one of type [https://meta.cdq.com/Business_partner/relation/type/direct_legal_relation](Direct Legal Relation), [https://meta.cdq.com/Business_partner/relation/type/domestic_legal_ultimate_relation](Domestic Legal Ultimate Relation) or [https://meta.cdq.com/Business_partner/relation/type/global_legal_ultimate_relation](Global Legal Ultimate Relation), are marked as INACTIVE.

businessPartners[].​typesArray of objects(BusinessPartnerType)

List of Types.

businessPartners[].​addressesArray of objects(Address)

List of Addresses.

businessPartners[].​bankAccountsArray of objects(BankAccount)

List of Bank Accounts.

businessPartners[].​externalContextobject(ExternalContext)

Represents additional context information that is external to the main Business Partner data.

featuresOnArray of strings(UpsertFeatureParam)

Features to be activated during the upsert.

Items Enum ValueDescription
UPSERT_BY_EXTERNAL_ID

Updates a Business Partners identified by external ID instead of an insert if the external ID is already present in this storage.

API_ERROR_ON_FAILURES

Throws exception instead of default Upsert Failure Log.

TRANSFORM_RECORD

Transforms record into Business Partner model using the dataMapperDefinition attached to the dataSource. Supported only for batch size up to 250 Business Partners.

ENABLE_SETTINGS

Enables usage of user and organization settings in upsert process. Enabled by default.

ENABLE_ASYNC

Stores data to the storage. Enables asynchronous data processing for transformation, updates, indexing and sharing processes. Requires externalId to be present in the businessPartner. Enabled by default when TRANSFORM_RECORD not used.

Example: ["UPSERT_BY_EXTERNAL_ID"]
featuresOffArray of strings(UpsertFeatureParam)

Features to be deactivated during the upsert.

Items Enum ValueDescription
UPSERT_BY_EXTERNAL_ID

Updates a Business Partners identified by external ID instead of an insert if the external ID is already present in this storage.

API_ERROR_ON_FAILURES

Throws exception instead of default Upsert Failure Log.

TRANSFORM_RECORD

Transforms record into Business Partner model using the dataMapperDefinition attached to the dataSource. Supported only for batch size up to 250 Business Partners.

ENABLE_SETTINGS

Enables usage of user and organization settings in upsert process. Enabled by default.

ENABLE_ASYNC

Stores data to the storage. Enables asynchronous data processing for transformation, updates, indexing and sharing processes. Requires externalId to be present in the businessPartner. Enabled by default when TRANSFORM_RECORD not used.

Example: ["UPSERT_BY_EXTERNAL_ID"]
curl -i -X PUT \
  https://api.cdq.com/data-exchange/rest/v4/storages/72d6900fce6b326088f5d9d91049e3e6/businesspartners \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "dataSource": "YOUR_DATASOURCE_ID",
    "featuresOn": [
      "UPSERT_BY_EXTERNAL_ID"
    ],
    "businessPartners": [
      {
        "externalId": "YOUR_EXTERNAL_ID",
        "record": "{\"Customer number\":\"YOUR_EXTERNAL_ID\", \"Name\":\"COMPANY_NAME\", \"Country\":\"COUNTRY_CODE\", \"City\":\"CITY\", \"Street\":\"STREET\", \"Postal code\":\"POSTAL_CODE\"}"
      }
    ]
  }'

Responses

OK

Bodyapplication/json
numberOfAcceptedinteger

When asynchronous processing activated (ENABLE_ASYNC or LAB_USE_QUEUES), then represents number of Business Partners to be processed asynchronously. When synchronous processing activated, then provides number of Business Partners processed.

Example: "10"
numberOfFailedinteger

Number of failed inserts.

Example: "10"
failuresArray of objects(UpsertFailureLog)

List of failures.

featuresOnArray of strings(UpsertFeature)

List of features that cna be activated during the upsert.

Example: ["UPSERT_BY_EXTERNAL_ID"]
Response
application/json
{ "numberOfAccepted": "10", "numberOfFailed": "10", "failures": [ {} ], "featuresOn": [ "UPSERT_BY_EXTERNAL_ID" ] }

List Business Partners Updates

Request

The Read Business Partner Updates endpoint provides an updated Business Partner structure and comprehensive Business Partner information from the Reference Data Sources. By default, only the latest version of a Business Partner from a single data source is provided. However, it's possible to access all historical updates (up to 3 months) by enabling the FeaturesOn: FETCH_HISTORICAL_UPDATES option.

Filtration

A list of updated Business Partners can be filtered in various ways, with tags being the most powerful and important. Tags combine concepts (e.g., NAME_LOCAL, IDENTIFIER, LOCALITY) with actions (e.g., ADDED, MODIFIED). There are two types of classification filters:

  1. summaryClassification: This filter provides Business Partners with a summary classification, which is determined by the highest classificationlevel among all Business Partner concepts.
  2. conceptClassification: This filter indicates the classification of a specific concept of the Business Partner (e.g., name, street, legal form).

Filtration by tag and conceptClassification works in pairs and identifies Business Partners where, for example, the LOCAL_NAME was MODIFIED and this change was classified as MAJOR. When filtering by tag and summaryClassification, the endpoint returns all Business Partners where the specified tags were added to the summary and the general summary classification is, for example, IDENTIFIER_ADDED, + highest classification for all updates =MINOR. Additional filtering options include country, provenance, and external IDs. Providing the data source (or your mirror) in the request can enhance response speed. It's possible to check the total number of updates using featuresOn NUMBER_OF_TOTAL, but can slow down the response.

Recommendations

We recommend periodically reading all Business Partners (at least once) to improve the efficiency of specific filtrations.

Security
apiKey
Path
storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Query
startAfterstring

Only items with an ID greater than the given one will be retrieved.

When nextStartAfter provided in the response, should be used instead of the ID as an indicator for a next page.

Example: startAfter=5712566172571652
limitinteger(int32)>= 1

Number of items to be returned on the page.

Default 500
Example: limit=100
businessPartnerIdsArray of strings(BusinessPartnerId)<= 100 items

Only show updates for listed Business Partner IDs. When providing list of Business Partner IDs, limit is ignored to provide full page.

Example: businessPartnerIds=63e635235c06b7396330fe40
externalIdsArray of strings(BusinessPartnerExternalId)<= 100 items

Filter updates by Business Partner externalId, limit is ignored to provide full page. When used with the businessPartnerIds parameter, only business partners that have one of the specified externalIds AND one of the specified businessPartnerIds will be returned.

Example: externalIds=The ID managed in the customer's SAP systems.
provenanceTechnicalKeysArray of strings(ProvenanceTechnicalKey)

Show updates for selected provenances by technical keys.

Example: provenanceTechnicalKeys=VIES
exceptProvenanceTechnicalKeysArray of strings(ProvenanceTechnicalKey)

Show updates for all provenances except provided by technical keys. By default, includes ORGANIZATION if not present on provenanceTechnicalKeys list.

Example: exceptProvenanceTechnicalKeys=VIES
dataTransformationDefinitionIdstring(DataTransformationDefinitionId)

When dataTransformationDefinitionId is provided, map updatedBusinessPartner using that transformation.

Example: dataTransformationDefinitionId=SAP.ODM
fromstring

Only show updates which have been modified after this date (ISO 8601). Default is to show the 'last seven days' and farthest in the past is 'since three month'.

Example: from=2025-08-19T06:23:16Z
dataSourcesArray of strings(BusinessPartnerDataSource)

Filter by data sources (name or id).

Example: dataSources="CUSTOM_DATA_SOURCE" or "648824a691d8d2503d65103e"
countryShortNamesArray of strings(CountryShortName)

Filter by countries.

Example: countryShortNames=CH
summaryClassificationsArray of strings(UpdateClassificationTechnicalKeyEnum)

Filter by provided summary classifications (logical OR).

Items Enum ValueDescription
CRITICAL

Critical

REJECTED

Update has been rejected

MAJOR

Major change

MINOR

Minor update

TRIVIAL

Trivial update

CONFIRMED

Contents have been confirmed by a data source and not changed

UNCHANGED

Contents have been not changed

Example: summaryClassifications=MAJOR
updateTagsArray of strings(UpdateTagEnum)

Filter by update summary tags.

Items Enum"BANKRUPTCY_BUSINESS_PARTNER""BUSINESS_PARTNER_CATEGORY_ADDED""BUSINESS_PARTNER_CATEGORY_MODIFIED""BUSINESS_PARTNER_CLASSIFICATION_ADDED""BUSINESS_PARTNER_CLASSIFICATION_MODIFIED""BUSINESS_PARTNER_STATUS_ADDED""BUSINESS_PARTNER_STATUS_MODIFIED""BUSINESS_PARTNER_TYPE_ADDED""BUSINESS_PARTNER_TYPE_MODIFIED""DIRECT_LEGAL_RELATION_ADDED"
Example: updateTags=IDENTIFIER_ADDED
updateTagsProfilesArray of strings(UpdateTagsProfileEnum)

Profiled filter by update summary tags.

Items Enum"ADDRESS_DATA""LEGAL_DATA""RELATIONS""VAT_DATA"
Example: updateTagsProfiles=LEGAL_DATA
conceptClassificationsArray of strings(UpdateClassificationTechnicalKeyEnum)

Filter by provided concept classifications (logical OR). When used with the updateTags parameter, only those updates are presented, that match together with respective tag.

Items Enum ValueDescription
CRITICAL

Critical

REJECTED

Update has been rejected

MAJOR

Major change

MINOR

Minor update

TRIVIAL

Trivial update

CONFIRMED

Contents have been confirmed by a data source and not changed

UNCHANGED

Contents have been not changed

Example: conceptClassifications=MAJOR
featuresOnArray of strings(BusinessPartnerUpdatesFeatureParam)

Features to be used during the read Business Partner updates:

  • APPLY_CURATION_DECISIONS - Applies curation decisions from Decision Log to Business Partners in $.values[*].storageBusinessPartner if any decisions found. Requires FETCH_STORAGE_BUSINESS_PARTNER feature. By default, deactivated.
  • FETCH_HISTORICAL_UPDATES - Include historical updates into results. By default, deactivated.
  • FETCH_STORAGE_BUSINESS_PARTNER - Fetch Business Partner from a storage and set in $.values[*].storageBusinessPartner. By default, deactivated.
  • NUMBER_OF_TOTAL - Allows to switch fetching the total number of records to improve performance. By default, deactivated.
Items Enum"APPLY_CURATION_DECISIONS""FETCH_HISTORICAL_UPDATES""FETCH_STORAGE_BUSINESS_PARTNER""NUMBER_OF_TOTAL"
Example: featuresOn=FETCH_STORAGE_BUSINESS_PARTNER
featuresOffArray of strings(BusinessPartnerUpdatesFeatureParam)

Features to be used during the read Business Partner updates:

  • APPLY_CURATION_DECISIONS - Applies curation decisions from Decision Log to Business Partners in $.values[*].storageBusinessPartner if any decisions found. Requires FETCH_STORAGE_BUSINESS_PARTNER feature. By default, deactivated.
  • FETCH_HISTORICAL_UPDATES - Include historical updates into results. By default, deactivated.
  • FETCH_STORAGE_BUSINESS_PARTNER - Fetch Business Partner from a storage and set in $.values[*].storageBusinessPartner. By default, deactivated.
  • NUMBER_OF_TOTAL - Allows to switch fetching the total number of records to improve performance. By default, deactivated.
Items Enum"APPLY_CURATION_DECISIONS""FETCH_HISTORICAL_UPDATES""FETCH_STORAGE_BUSINESS_PARTNER""NUMBER_OF_TOTAL"
Example: featuresOff=FETCH_STORAGE_BUSINESS_PARTNER
curl -i -X GET \
  https://api.cdq.com/data-exchange/rest/v5/storages/72d6900fce6b326088f5d9d91049e3e6/businesspartners/updates \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
limitinteger(Limit)

Number of items per page.

Example: "100"
totalinteger(PageTotal)

Total number of items which can be paged.

Example: "67"
startAfterstring(StartAfter)

The ID which is used to read the page.

Example: "5712566172571652"
nextStartAfterstring

Available only when you used USE_NEXT_START_AFTER feature. Provides a value to be used as a startAfter in next page request.

Example: "5712566172571652"
valuesArray of objects(BusinessPartnerUpdate)

List of Business Partner Updates.

Response
application/json
{ "limit": "100", "total": "67", "startAfter": "5712566172571652", "nextStartAfter": "5712566172571652", "values": [ {} ] }

Delete Business Partners

Request

Delete batches of Business Partners by ID or a combination of DataSource and External ID. Maximum of 1000 Business Partners are allowed per batch. In case only a data source is provided in the request, all Business Partners related to this data source will be deleted, but the data source itself will not be deleted.

Security
apiKey
Path
storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Bodyapplication/jsonrequired

cmd

dataSourcestring(BusinessPartnerStorageDataSourceId)

Unique identifier for a Data Source of the Storage.

Example: "648824a691d8d2503d65103e"
businessPartnersArray of objects<= 1000 items

List of Business Partners to be deleted.

featuresOnArray of strings(DeleteFeatureParam)

List of features to be used during delete.

Items Enum ValueDescription
DELETE_BY_EXTERNAL_ID

Deletion is done by external ID.

DELETE_BUSINESS_PARTNER_DATA

Deletion of Business Partner data.

DELETE_LINKS

Deletion of links.

Example: ["DELETE_BY_EXTERNAL_ID"]
curl -i -X POST \
  https://api.cdq.com/data-exchange/rest/storages/72d6900fce6b326088f5d9d91049e3e6/businesspartners/delete \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "dataSource": "YOUR_DATASOURCE_ID",
    "businessPartners": [
      {
        "externalId": "BP_EXTERNAL_ID"
      }
    ],
    "featuresOn": [
      "DELETE_BY_EXTERNAL_ID"
    ]
  }'

Responses

OK

Bodyapplication/json
numberOfDeletesinteger(NumberOfDeletes)

Number of deleted Business Partners.

Example: "50"
numberOfFailuresinteger(NumberOfFailures)

Number of failures during deletion.

Example: "0"
failuresArray of objects(DeleteFailureLog)

List of failures.

Response
application/json
{ "numberOfDeletes": "50", "numberOfFailures": "0", "failures": [ {} ] }

Toggle Business Partners Update Monitoring

Request

To toggle update monitoring on multiple BusinessPartners, the permission can be changed via a list of Business Partners, identified by their ID.

After the job is finished, the following actions are taken for Business Partners which match the businessPartnerIds criteria:

  • businessPartner.updateMonitoring fields takes a value of ToggleUpdateMonitoringJobRequest#enable
  • if enable is true then:
  • if enable is false then:
    • all existing links of a Business Partner to Business Partners in non-commercial reference data sources are removed
    • updates are no more propagated for this Business Partner
    • linkage is not performed for any non-commercial reference data source

For toggling a complete Data Source or for a certain Country of a Data Source, please go to Start Toggle Update Monitoring Job.

Security
apiKey
Path
storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Bodyapplication/jsonrequired
enableboolean(ToggleUpdateMonitoringRequestEnable)required

Parameter to describe if the Business Partners should be activated for update monitoring (true) or deactivated (false) for non-commercial reference data sources.

Example: "true"
businessPartnerIdsArray of strings(BusinessPartnerId)[ 1 .. 1000 ] itemsrequired

List of Business Partner IDs to identify all those Business Partners that should be activated/deactivated.

Example: ["63e635235c06b7396330fe40"]
curl -i -X PUT \
  https://api.cdq.com/data-exchange/rest/storages/72d6900fce6b326088f5d9d91049e3e6/businesspartners/toggleUpdateMonitoring \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "enable": "true",
    "businessPartnerIds": [
      "63e635235c06b7396330fe40"
    ]
  }'

Responses

OK

Start a Toggle Update Monitoring Job

Request

To toggle update monitoring on multiple BusinessPartners, the permission can be changed in two ways:

  1. A complete Data Source identified by the parameter 'dataSourceId'
  2. Or for a certain Country of a Data Source. This requires both parameters 'dataSourceId' and 'countryShortName' to be set

After the job is finished, the following actions are taken for Business Partners which match the dataSourceId and countryShortName criteria:

  • businessPartner.updateMonitoring fields takes a value of ToggleUpdateMonitoringJobRequest#enable
  • if enable is true then:
  • if enable is false then:
    • all existing links of a Business Partner to Business Partners in non-commercial reference data sources are removed
    • updates are no more propagated for this Business Partner
    • linkage is not performed for any non-commercial reference data source

For toggling via a list of Business Partners, identified by their ID, please go to Toggle Update Monitoring of Business Partners.

Security
apiKey
Bodyapplication/jsonrequired
enableboolean(ToggleUpdateMonitoringRequestEnable)required

Parameter to describe if the Business Partners should be activated for update monitoring (true) or deactivated (false) for non-commercial reference data sources.

Example: "true"
storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: "72d6900fce6b326088f5d9d91049e3e6"
namestring(JobName)

Name of a Job.

Example: "Process vendor data."
descriptionstring(JobDescription)

Detailed description of a Job.

Example: "I started this job to improve quality of our data."
dataSourceIdstring(BusinessPartnerStorageDataSourceId)required

Unique identifier for a Data Source of the Storage.

Example: "648824a691d8d2503d65103e"
countryShortNamestring(CountryShortName)

Country code (ISO 3166-1 alpha-2).

Example: "CH"
curl -i -X POST \
  https://api.cdq.com/data-exchange/rest/jobs/toggleUpdateMonitoringJobs \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "enable": "true",
    "storageId": "72d6900fce6b326088f5d9d91049e3e6",
    "name": "Process vendor data.",
    "description": "I started this job to improve quality of our data.",
    "dataSourceId": "648824a691d8d2503d65103e",
    "countryShortName": "CH"
  }'

Responses

OK

Bodyapplication/json
idstring(JobId)

Unique identifier of a job.

Example: "35f23c03-1c22-45fe-9484-3ffe769325de"
createdBystring(CreatedBy)

Creator of a resource.

Example: "76248934691294444"
createdAtstring(CreatedAt)

Date of creation (ISO 8601-compliant).

Example: "2025-08-19T06:23:16Z"
modifiedAtstring(ModifiedAt)

Date of modification (ISO 8601-compliant).

Example: "2025-08-19T06:23:16Z"
progressinteger(JobProgress)[ 0 .. 100 ]

Progress (%) of the job.

Example: "77"
statusstring(JobStatus)

Job execution status.

Enum ValueDescription
ARCHIVED

Job has been archived.

UNKNOWN

Job becomes in unknown status.

CREATED

Job has been created.

PERSISTED

Job metadata has been persisted.

SCHEDULED

Job has been scheduled for execution.

WAITING

Job is waiting for being scheduled.

COULDNT_START

Job could not be started.

RUNNING

Job is being executed.

FINISHED

Job has finished.

DIED

Job was scheduled and started running but died unexpectedly.

Example: "RUNNING"
statusMessagestring(JobStatusMessage)

Additional information to explain the status.

Example: "The job failed because storage is empty."
enableboolean(ToggleUpdateMonitoringRequestEnable)

Parameter to describe if the Business Partners should be activated for update monitoring (true) or deactivated (false) for non-commercial reference data sources.

Example: "true"
storageIdstring(BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: "72d6900fce6b326088f5d9d91049e3e6"
dataSourceIdstring(BusinessPartnerStorageDataSourceId)

Unique identifier for a Data Source of the Storage.

Example: "648824a691d8d2503d65103e"
countryShortNamestring(CountryShortName)

Country code (ISO 3166-1 alpha-2).

Example: "CH"
Response
application/json
{ "id": "35f23c03-1c22-45fe-9484-3ffe769325de", "createdBy": "76248934691294444", "createdAt": "2025-08-19T06:23:16Z", "modifiedAt": "2025-08-19T06:23:16Z", "progress": "77", "status": "RUNNING", "statusMessage": "The job failed because storage is empty.", "enable": "true", "storageId": "72d6900fce6b326088f5d9d91049e3e6", "dataSourceId": "648824a691d8d2503d65103e", "countryShortName": "CH" }

Poll Toggle Update Monitoring Job

Request

Poll endpoint for a job created in POST toggleUpdateMonitoringJobs.

Security
apiKey
Path
jobIdstring(JobId)required

Unique identifier of a job.

Example: 35f23c03-1c22-45fe-9484-3ffe769325de
curl -i -X GET \
  https://api.cdq.com/data-exchange/rest/jobs/toggleUpdateMonitoringJobs/35f23c03-1c22-45fe-9484-3ffe769325de \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
jobobject(ToggleUpdateMonitoringJob)

Result of the Toggle Update Monitoring job.

statusstring

Status:

  • OK - Toggle Update Monitoring Job has been fetched successfully
  • NOT_FOUND - Toggle Update Monitoring Job with that ID has not been found
Example: "OK"
Response
application/json
{ "job": { "id": "35f23c03-1c22-45fe-9484-3ffe769325de", "createdBy": "76248934691294444", "createdAt": "2025-08-19T06:23:16Z", "modifiedAt": "2025-08-19T06:23:16Z", "progress": "77", "status": "RUNNING", "statusMessage": "The job failed because storage is empty.", "enable": "true", "storageId": "72d6900fce6b326088f5d9d91049e3e6", "dataSourceId": "648824a691d8d2503d65103e", "countryShortName": "CH" }, "status": "OK" }

Update Disclosure

Request

To un-/disclose multiple BusinessPartners, the disclosure can be changed in three ways:

  1. A complete data source identified by the parameter 'dataSourceId' (deprecated - use Sharing Scopes instead. Still applicable, but can be overwritten by Sharing Scopes)
  2. Or for a certain country of a data source. This requires both parameters 'dataSourceId' and 'countryCode' to be set (deprecated - use Sharing Scopes instead. Still applicable, but can be overwritten by Sharing Scopes)
  3. Or a list of Business Partners, identified by their ID. The other parameters should be left empty. Note: disclosure set via Business Partner ID can be overwritten by creation or deletion of a Sharing Scope.

Any other combination may result in a Bad Request.

For more details, you can read about Sharing Scopes.

Security
apiKey
Path
storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Bodyapplication/jsonrequired
disclosedbooleanrequired

Parameter to describe if the BusinessPartners should be disclosed (true) or undisclosed (false).

Example: "true"
businessPartnerIdsArray of strings(BusinessPartnerId)non-empty

List of BusinessPartner IDs to identify all those BusinessPartners that should be un-/disclose.

Example: ["63e635235c06b7396330fe40"]
dataSourceIdstringDeprecated

A DataSource ID for which all related BusinessPartners should be un-/disclose.

Example: "648824a691d8d2503d65103e"
countryCodestringDeprecated

A country code (ISO 3166-2), to be used in combination with a DataSource ID to un-/disclose all matching BusinessPartners.

Example: "DE"
curl -i -X POST \
  https://api.cdq.com/data-exchange/rest/v3/storages/72d6900fce6b326088f5d9d91049e3e6/businesspartners/updateDisclosure \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "disclosed": "true",
    "dataSourceId": "648824a691d8d2503d65103e",
    "countryCode": "DE",
    "businessPartnerIds": [
      "63e635235c06b7396330fe40"
    ]
  }'

Responses

OK

Read Business Partner

Request

Read Business Partner by ID.

Security
apiKey
Path
storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
idstring(BusinessPartnerId)required

Unique identifier of the Business Partner.

Example: 63e635235c06b7396330fe40
Query
featureOnArray of strings(ReadBusinessPartnerFeatureParam)

Features to be used during the read Business Partner.

Items Enum"APPLY_CURATION_DECISIONS""FETCH_RECORD""FETCH_RELATIONS"
Example: featureOn=FETCH_RECORD
featureOffArray of strings(ReadBusinessPartnerFeatureParam)

Features to be deactivated during the read Business Partner.

Items Enum"APPLY_CURATION_DECISIONS""FETCH_RECORD""FETCH_RELATIONS"
Example: featureOff=FETCH_RECORD
curl -i -X GET \
  https://api.cdq.com/data-exchange/rest/v4/storages/72d6900fce6b326088f5d9d91049e3e6/businesspartners/63e635235c06b7396330fe40 \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
idstring(BusinessPartnerId)

A CDQ ID identifies a business partner uniquely in the context of the Corporate Data League.

Example: "63e635235c06b7396330fe40"
createdAtstring(CreatedAt)

Date of creation (ISO 8601-compliant).

Example: "2025-08-19T06:23:16Z"
modifiedAtstring(ModifiedAt)

Date of modification (ISO 8601-compliant).

Example: "2025-08-19T06:23:16Z"
externalIdstring(BusinessPartnerExternalId)

Arbitrary identifier type to mark customer IDs that are "external" from CDQ's perspective. This is the identifier a customer provides to identify its records.

Example: "The ID managed in the customer's SAP systems."
dataSourcestring(BusinessPartnerDataSource)

Name or ID of a data source. Reflects the associated external system where the record originates from.

Example: "\"CUSTOM_DATA_SOURCE\" or \"648824a691d8d2503d65103e\""
disclosedboolean(BusinessPartnerDisclosed)

A flag to indicate whether the business partner should participate in the sharing or not. If 'true' this business partner might be used to create a new entry or update an existing entry in the community pool. Otherwise, it will not be considered for the sharing process. For more details, you can read about Sharing Scopes.

Example: "false"
updateMonitoringboolean(BusinessPartnerUpdateMonitoring)

A flag to indicate whether the Business Partner should receive updates from non-commercial Reference Data Sources or not. If 'true' this Business Partner will receive updates since the change from 'false'. If 'false' this Business Partner will not receive any new updates since the change. If not provided, the previous value will not be changed. By default, Update Monitoring is activated.

Example: "true"
updateCommercialMonitoringArray of objects(BusinessPartnerUpdateCommercialMonitoring)

Enabling update commercial monitoring has 2 possibilities:

  • via Data Mapper Definition: include mapping of updateCommercialMonitoring in the Data Mapper Definition
  • via direct Business Partner model upload: fill complete Business Partner model and updateCommercialMonitoring. Null/undefined updateCommercialMonitoring results in protection of this setup from the previous upsert. Empty or filled updateCommercialMonitoring results in data transition that may link or unlink to / from respective commercial Reference Data Source

Note: follow the approach that is currently used in your storage integration.

metadataobject(BusinessPartnerMetadata)

Information about results of Business Partner processing.

recordstring(BusinessPartnerRecord)

Stringified JSON of an individual Business Partner record. Characters: backslash \ and double quote " must be escaped (respectively: \\\\ and \"). Fields containing . are unallowed. Maximum size: 15MB.

Example: "{\"name\": \"BUSINESSPARTNER_NAME\", ...}"
namesArray of objects(Name)

List of names.

legalFormobject(LegalForm)

The legal form of a business partner/type/legal entity is the form it takes in the eyes of the law governing it. The legal form of a company is the general type it may legally use to identify itself according to the local, regional, national, or international law governing it. This is normally reflected in the ending abbreviation after the company's name (e.g. AG, Inc., LLC, S.A.).

identifiersArray of objects(Identifier)

List of Identifiers.

categoriesArray of objects(BusinessPartnerCategory)

List of Categories.

statusobject(BusinessPartnerStatus)

Describes the status of a business partner with respect to its level of activity (e.g. out of business) or legally relevant conditions (e.g. in liquidation).

profileobject(PartnerProfile)

Additional documentation can be found here.

relationsArray of objects(BusinessPartnerRelation)

List of Relations. Insert or update Business Partner Relations. Relations that are not listed in the request and start in the current business partner, are marked as INACTIVE.

In D&B storages, only not listed relations of class D&B Hierarchy and one of type [https://meta.cdq.com/Business_partner/relation/type/direct_legal_relation](Direct Legal Relation), [https://meta.cdq.com/Business_partner/relation/type/domestic_legal_ultimate_relation](Domestic Legal Ultimate Relation) or [https://meta.cdq.com/Business_partner/relation/type/global_legal_ultimate_relation](Global Legal Ultimate Relation), are marked as INACTIVE.

typesArray of objects(BusinessPartnerType)

List of Types.

addressesArray of objects(Address)

List of Addresses.

bankAccountsArray of objects(BankAccount)

List of Bank Accounts.

externalContextobject(ExternalContext)

Represents additional context information that is external to the main Business Partner data.

Response
application/json
{ "id": "63e635235c06b7396330fe40", "createdAt": "2025-08-19T06:23:16Z", "modifiedAt": "2025-08-19T06:23:16Z", "externalId": "The ID managed in the customer's SAP systems.", "dataSource": "\"CUSTOM_DATA_SOURCE\" or \"648824a691d8d2503d65103e\"", "disclosed": "false", "updateMonitoring": "true", "updateCommercialMonitoring": [ {} ], "metadata": { "sharingStatus": {}, "identityLinks": [], "logResultStatuses": [], "decisionLogResult": {} }, "record": "{\"name\": \"BUSINESSPARTNER_NAME\", ...}", "names": [ {} ], "legalForm": { "name": "Aktiengesellschaft", "url": "https://meta.cdq.com/Business_partner/legal_form", "technicalKey": "DE_9866", "language": {}, "mainAbbreviation": "AG", "categories": [] }, "identifiers": [ {} ], "categories": [ {} ], "status": { "type": {}, "officialDenotation": "Good Standing", "validFrom": "2025-08-19T06:23:16Z", "validUntil": "2025-08-19T06:23:16Z" }, "profile": { "minorityIndicator": {}, "classifications": [], "phoneNumbers": [], "websites": [], "contactEmails": [], "tags": [], "vatPayerStatus": {}, "hcpProfile": {} }, "relations": [ {} ], "types": [ {} ], "addresses": [ {} ], "bankAccounts": [ {} ], "externalContext": { "identifiers": [] } }

Lookup Business Partner

Request

Lookup a Business Partner in provided storage.

Security
apiKey
Path
storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Bodyapplication/jsonrequired

cmd

matchingThresholdnumber(double)(DataMatchingThreshold)[ 0 .. 1 ]

The threshold for the data matching.

Default 0
Example: "0.5"
pageSizeinteger(PageSize)[ 1 .. 1000 ]

Number of items per page.

Default 10
Example: "100"
pageinteger(Page)>= 0

Current page number.

Default 0
Example: "1"
dataSourcesArray of strings

List of Data Sources.

Example: ["\"CUSTOM_DATA_SOURCE\" or \"648824a691d8d2503d65103e\""]
businessPartnerobject(BusinessPartnerLookupParam)

Lookup business partner data in connected data sources like the CDQ Community Data Pool, Business registers, or even in the own data mirror.

featuresOnArray of strings(FetchBusinessPartnerFeatureParam)

Features to be used during the fetch Business Partner.

Items Enum ValueDescription
FETCH_RECORD

Allows to switch fetching record field to reduce data size. By default, turned on.

FETCH_RELATIONS

Allows to switch fetching relations of Business Partners. By default, deactivated. Only for storages with RELATIONS feature activated.

Example: ["FETCH_RECORD"]
featuresOffArray of strings(FetchBusinessPartnerFeatureParam)

Features to be excluded during the fetch Business Partner.

Items Enum ValueDescription
FETCH_RECORD

Allows to switch fetching record field to reduce data size. By default, turned on.

FETCH_RELATIONS

Allows to switch fetching relations of Business Partners. By default, deactivated. Only for storages with RELATIONS feature activated.

Example: ["FETCH_RECORD"]
curl -i -X POST \
  https://api.cdq.com/data-exchange/rest/v4/storages/72d6900fce6b326088f5d9d91049e3e6/businesspartners/lookup \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "matchingThreshold": "0.5",
    "pageSize": "100",
    "page": "1",
    "dataSources": [
      "\"CUSTOM_DATA_SOURCE\" or \"648824a691d8d2503d65103e\""
    ],
    "businessPartner": {
      "externalId": "The ID managed in the customer'\''s SAP systems.",
      "record": "{\"name\": \"BUSINESSPARTNER_NAME\", ...}",
      "names": [
        {
          "value": "Corporate Data Quality AG"
        }
      ],
      "identifiers": [
        {
          "value": "CHE-218.608.886 HR/MWST",
          "type": {
            "technicalKey": "CH_VAT_ID"
          }
        }
      ],
      "legalForm": {
        "name": "Aktiengesellschaft"
      },
      "addresses": [
        {
          "country": {
            "shortName": "CH"
          },
          "administrativeAreas": [
            {
              "value": "Sankt Gallen"
            }
          ],
          "localities": [
            {
              "value": "Sankt Gallen"
            }
          ],
          "postCodes": [
            {
              "value": "9000"
            }
          ],
          "thoroughfares": [
            {
              "value": "Lukasstraße 4",
              "number": "4"
            }
          ]
        }
      ],
      "externalContext": {
        "identifiers": [
          {
            "value": "7250017031",
            "type": {
              "technicalKey": "KUNNR"
            }
          }
        ]
      },
      "profile": {
        "tags": [
          {
            "value": "Warehouse",
            "type": {
              "technicalKey": "WAREHOUSE"
            }
          }
        ]
      }
    },
    "featuresOn": [
      "FETCH_RECORD"
    ],
    "featuresOff": [
      "FETCH_RECORD"
    ]
  }'

Responses

OK

Bodyapplication/json
pageSizeinteger(PageSize)[ 1 .. 1000 ]

Number of items per page.

Default 10
Example: "100"
totalinteger

Total number of items which can be paged. Null if Business Partner was not specified.

Example: "67"
pageinteger(Page)>= 0

Current page number.

Default 0
Example: "1"
valuesArray of objects(BusinessPartnerLookupMatch)

List of matching Business Partners.

debugInfoobject

This is just a reference implementation how to structure external service responses. Usually this should be hidden behind a feature SHOW_DEBUG_INFO.

Response
application/json
{ "pageSize": "100", "total": "67", "page": "1", "values": [ {} ], "debugInfo": { "features": [], "request": {} } }

Fetch Business Partner

Request

Fetch a Business Partner from this storage.

Security
apiKey
Path
storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Bodyapplication/jsonrequired
externalIdstring(BusinessPartnerExternalIdParam)non-emptyrequired

Arbitrary identifier type to mark customer IDs that are "external"\ \ from CDQ's perspective. This is the identifier a customer provides to identify\ \ its records.

Example: "The ID managed in the customer's SAP systems."
dataSourcestring(BusinessPartnerStorageDataSourceId)

Unique identifier for a Data Source of the Storage.

Example: "648824a691d8d2503d65103e"
featuresOnArray of strings(FetchBusinessPartnerFeatureParam)

Features to be used during the fetch Business Partner.

Items Enum ValueDescription
FETCH_RECORD

Allows to switch fetching record field to reduce data size. By default, turned on.

FETCH_RELATIONS

Allows to switch fetching relations of Business Partners. By default, deactivated. Only for storages with RELATIONS feature activated.

Example: ["FETCH_RECORD"]
featuresOffArray of strings(FetchBusinessPartnerFeatureParam)

Features to be excluded during the fetch Business Partner.

Items Enum ValueDescription
FETCH_RECORD

Allows to switch fetching record field to reduce data size. By default, turned on.

FETCH_RELATIONS

Allows to switch fetching relations of Business Partners. By default, deactivated. Only for storages with RELATIONS feature activated.

Example: ["FETCH_RECORD"]
curl -i -X POST \
  https://api.cdq.com/data-exchange/rest/v4/storages/72d6900fce6b326088f5d9d91049e3e6/businesspartners/fetch \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "externalId": "The ID managed in the customer'\''s SAP systems.",
    "dataSource": "648824a691d8d2503d65103e",
    "featuresOn": [
      "FETCH_RECORD"
    ],
    "featuresOff": [
      "FETCH_RECORD"
    ]
  }'

Responses

OK

Bodyapplication/json
businessPartnerobject(BusinessPartner)

An organization which has some degree of involvement with another organization's business dealings. Typically, a company's business partner is another company in the role of a customer, a supplier, a vendor, or a service provider. In the CDL context, the business partner is the core managed entity. A business partner is globally uniquely identifiable by a CDL ID, and all managed information such as addresses, documents, and hierarchies is linked to a business partner.

statusstring(FetchBusinessPartnerStatus)

Status:

  • OK - Business Partner has been fetched successfully.
  • NOT_FOUND - Business Partner with that externalId+dataSource does not exist in storage.
Example: "NOT_FOUND"
messagestring(FetchBusinessPartnerMessage)

Detailed information about the status.

Example: "Business Partner has been fetched successfully."
Response
application/json
{ "businessPartner": { "id": "63e635235c06b7396330fe40", "createdAt": "2025-08-19T06:23:16Z", "modifiedAt": "2025-08-19T06:23:16Z", "externalId": "The ID managed in the customer's SAP systems.", "dataSource": "\"CUSTOM_DATA_SOURCE\" or \"648824a691d8d2503d65103e\"", "disclosed": "false", "updateMonitoring": "true", "updateCommercialMonitoring": [], "metadata": {}, "record": "{\"name\": \"BUSINESSPARTNER_NAME\", ...}", "names": [], "legalForm": {}, "identifiers": [], "categories": [], "status": {}, "profile": {}, "relations": [], "types": [], "addresses": [], "bankAccounts": [], "externalContext": {} }, "status": "NOT_FOUND", "message": "Business Partner has been fetched successfully." }

Create Business Partner Tags

Request

Allows the creation of Business Partner tags. The tags are created in the Business Partner profile.

Security
apiKey
Path
storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
businessPartnerIdstring(BusinessPartnerStorageId)required

Business Partner identifier within a storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Bodyapplication/jsonrequired
tagsArray of objects(TagCreate)<= 30 itemsrequired

List of Tags.

tags[].​valuestring(TagValue)required

Value of the tag.

Example: "Warehouse"
tags[].​typeobject(TagType)required

A type that specifies the nature of the tag.

tags[].​type.​technicalKeystring(TagTypeTechnicalKey)required

Technical Key of the Tag.

Example: "WAREHOUSE"
curl -i -X POST \
  https://api.cdq.com/data-exchange/rest/v4/storages/72d6900fce6b326088f5d9d91049e3e6/businesspartners/72d6900fce6b326088f5d9d91049e3e6/profile/tags \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "tags": [
      {
        "value": "Warehouse",
        "type": {
          "technicalKey": "WAREHOUSE"
        }
      }
    ]
  }'

Responses

OK

Bodyapplication/json
tagsArray of objects(Tags)

List of Tags.

resultsArray of objects(BusinessPartnerTagCreateResult)

List of results.

Response
application/json
{ "tags": [ {} ], "results": [ {} ] }

Delete Business Partner Tags

Request

Allows the deletion of Business Partner tags. The tags are deleted from the Business Partner profile.

Security
apiKey
Path
storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
businessPartnerIdstring(BusinessPartnerStorageId)required

Business Partner identifier within a storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Bodyapplication/jsonrequired
tagsArray of objects(TagDelete)<= 30 itemsrequired

List of deleted Tags.

tags[].​valuestring(TagValue)required

Value of the tag.

Example: "Warehouse"
tags[].​typeobject(TagType)required

A type that specifies the nature of the tag.

tags[].​type.​technicalKeystring(TagTypeTechnicalKey)required

Technical Key of the Tag.

Example: "WAREHOUSE"
curl -i -X POST \
  https://api.cdq.com/data-exchange/rest/v4/storages/72d6900fce6b326088f5d9d91049e3e6/businesspartners/72d6900fce6b326088f5d9d91049e3e6/profile/tags/delete \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "tags": [
      {
        "value": "Warehouse",
        "type": {
          "technicalKey": "WAREHOUSE"
        }
      }
    ]
  }'

Responses

OK

Bodyapplication/json
tagsArray of objects(Tags)

List of Tags.

resultsArray of objects(BusinessPartnerTagDeleteResult)

List of results.

Response
application/json
{ "tags": [ {} ], "results": [ {} ] }

Random Business PartnersDeprecated

Request

Get random Business Partners from this storage.

Security
apiKey
Path
storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Query
limitinteger(int32)[ 1 .. 10 ]

Number of items to be returned on the page.

Default 1
Example: limit=5
dataSourcestring(BusinessPartnerDataSource)

Data Source (name or ID) to be measured during calculating statistics. By default, all Data Sources are measured.

Example: dataSource="CUSTOM_DATA_SOURCE" or "648824a691d8d2503d65103e"
countryCodestring(CountryShortName)

Country code (ISO 3166-1 alpha-2) used to filter the result of business partners returned.

Example: countryCode=CH
modifiedBeforestring

Return entries which were modified before given data. The given date should support ISO-8601 representation.

Example: modifiedBefore=2025-08-19T06:23:16Z
modifiedAfterstring

Return entries which were modified after given data. The given date should support ISO-8601 representation.

Example: modifiedAfter=2025-08-19T06:23:16Z
featureOnArray of strings(FetchBusinessPartnerFeatureParam)

Features to be used during the fetch Business Partner.

Items Enum ValueDescription
FETCH_RECORD

Allows to switch fetching record field to reduce data size. By default, turned on.

FETCH_RELATIONS

Allows to switch fetching relations of Business Partners. By default, deactivated. Only for storages with RELATIONS feature activated.

Example: featureOn=FETCH_RECORD
featureOffArray of strings(FetchBusinessPartnerFeatureParam)

Features to be excluded during the fetch Business Partner.

Items Enum ValueDescription
FETCH_RECORD

Allows to switch fetching record field to reduce data size. By default, turned on.

FETCH_RELATIONS

Allows to switch fetching relations of Business Partners. By default, deactivated. Only for storages with RELATIONS feature activated.

Example: featureOff=FETCH_RECORD
curl -i -X GET \
  https://api.cdq.com/data-exchange/rest/v4/storages/72d6900fce6b326088f5d9d91049e3e6/businesspartners/random \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
limitinteger(Limit)

Number of items per page.

Example: "100"
valuesArray of objects(BusinessPartner)

List of Business Partners.

Response
application/json
{ "limit": "100", "values": [ {} ] }

Data Import

Provides functionalities for uploading external data and enabling users to enhance and update their Business Partner records with new information.

Operations

Data Mapping

Provides functionalities for defining and managing data mappings, enabling users to transform and map raw data into structured formats suitable for processing and analysis.

Operations

Data Monitors

Provides functionalities for creating, retrieving, updating and deleting data monitors.

Operations

Data Transformation

Provides functionalities for converting raw data into structured formats.

Operations

DNB Storages

Provides functionalities for creating, retrieving, updating and deleting DNB storage, as well as managing associated data sources and data monitors.

Operations

Files

Provides functionalities for uploading, downloading and deleting files.

Operations

Data Mappers

Provides functionalities for transforming raw data into structured Business Partner data using predefined data mapper definitions. This allows users to convert various data formats into a standardized format suitable for processing and analysis.

Operations

Relations

Manages relationships between Business Partners.

Operations

Subscriptions

Operations