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

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

Start Transformation Job

Request

Starting a Transformation Job. In case any selected data source does not have a dataMappingDefinition an API error returned.

Security
apiKey
Bodyapplication/jsonrequired

cmd

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

Unique identifier for a Data Source of the Storage.

If set, only the records that belong to the data source identified by this ID are transformed. By default, all records of the Business Partner Storage (means from all data sources) are transformed.

Example: "648824a691d8d2503d65103e"
countriesArray of objects(TransformationJobRequestCountry)

List of countries for which the records should be transformed.

storageIdstring(BusinessPartnerStorageId)required

Unique identifier of the Storage.

Example: "72d6900fce6b326088f5d9d91049e3e6"
dataMapperDefinitionIdstring(DataMapperDefinitionId)

ID of related Data Mapper Definition that is used for mapping data of this Business Partner Storage.

Example: "6440dba32b30176c5917b1b7"
dataTransformationDefinitionIdstring(DataTransformationDefinitionId)

Unique identifier for a data transformation definition.

Example: "SAP.ODM"
startAfterstring

Processes transformation of records starting from the ID 'startAfter'.

Example: "NjI4ZGNkZjAzYjlkMjY4NjhlNjQxNDRm"
businessPartnerIdsArray of strings(BusinessPartnerId)

List of Business Partner IDs to be transformed.

Example: ["63e635235c06b7396330fe40"]
featuresOnArray of strings(TransformationJobFeatureParam)
Items Enum ValueDescription
ENABLE_EXTERNAL_ID_UPDATE

Enables to update external ID of a Business Partner.

UPSERT_CHANGES_ONLY

Performs transformation only for business partners, for which changes in the mapping are relevant. By default, all records of the storage are transformed.

Example: ["UPSERT_CHANGES_ONLY"]
curl -i -X POST \
  https://api.cdq.com/data-exchange/rest/jobs/transformationjobs \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "dataSourceId": "YOUR_DATA_SOURCE_ID",
    "storageId": "YOUR_DATA_MIRROR_ID",
    "featuresOn": [
      "UPSERT_CHANGES_ONLY"
    ]
  }'

Responses

OK

Bodyapplication/json
idstring(JobId)

Unique identifier of a job.

Example: "35f23c03-1c22-45fe-9484-3ffe769325de"
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."
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

The status message contains the error message if the transformation job failed.

Example: "DataSource [5e2874fb8d2a7400011acee1] has no DataMapperDefinition attached and no alternative dataMapperDefinitionId was passed to the job"
storageIdstring(BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: "72d6900fce6b326088f5d9d91049e3e6"
dataSourceIdstring(BusinessPartnerStorageDataSourceId)

Unique identifier for a Data Source of the Storage.

Example: "648824a691d8d2503d65103e"
dataMapperDefinitionIdstring(DataMapperDefinitionId)

ID of related Data Mapper Definition that is used for mapping data of this Business Partner Storage.

Example: "6440dba32b30176c5917b1b7"
dataTransformationDefinitionIdstring(DataTransformationDefinitionId)

Unique identifier for a data transformation definition.

Example: "SAP.ODM"
featuresOnArray of strings(TransformationJobFeature)
Example: ["UPSERT_CHANGES_ONLY"]
resultobject(TransformationJobResult)

The result of a Transformation Job.

domainstring(Domain)Deprecated

Domain of a Business Partner Storage.

Example: "BusinessPartner"
Response
application/json
{ "id": "35f23c03-1c22-45fe-9484-3ffe769325de", "domain": "BusinessPartner", "name": "Process vendor data.", "description": "I started this job to improve quality of our data.", "createdBy": "76248934691294444", "createdAt": "2025-08-19T06:23:16Z", "modifiedAt": "2025-08-19T06:23:16Z", "progress": "77", "status": "RUNNING", "statusMessage": "DataSource [5e2874fb8d2a7400011acee1] has no DataMapperDefinition attached and no alternative dataMapperDefinitionId was passed to the job", "storageId": "72d6900fce6b326088f5d9d91049e3e6", "dataSourceId": "648824a691d8d2503d65103e", "dataMapperDefinitionId": "6440dba32b30176c5917b1b7", "dataTransformationDefinitionId": "SAP.ODM", "featuresOn": [ "UPSERT_CHANGES_ONLY" ], "result": { "statistics": {} } }

Poll Transformation Job

Request

After you have started a transformation job, you will receive a job id in the response.

{
  "id" : "<ID>"
}

Use this ID to poll for the status of the job using this endpoint. Once the status is FINISHED the transformation is done, and you are able to verify the result in your storage.

Security
apiKey
Path
idstring(JobId)required

ID of the transformation job.

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

Responses

OK

Bodyapplication/json
idstring(JobId)

Unique identifier of a job.

Example: "35f23c03-1c22-45fe-9484-3ffe769325de"
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."
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

The status message contains the error message if the transformation job failed.

Example: "DataSource [5e2874fb8d2a7400011acee1] has no DataMapperDefinition attached and no alternative dataMapperDefinitionId was passed to the job"
storageIdstring(BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: "72d6900fce6b326088f5d9d91049e3e6"
dataSourceIdstring(BusinessPartnerStorageDataSourceId)

Unique identifier for a Data Source of the Storage.

Example: "648824a691d8d2503d65103e"
dataMapperDefinitionIdstring(DataMapperDefinitionId)

ID of related Data Mapper Definition that is used for mapping data of this Business Partner Storage.

Example: "6440dba32b30176c5917b1b7"
dataTransformationDefinitionIdstring(DataTransformationDefinitionId)

Unique identifier for a data transformation definition.

Example: "SAP.ODM"
featuresOnArray of strings(TransformationJobFeature)
Example: ["UPSERT_CHANGES_ONLY"]
resultobject(TransformationJobResult)

The result of a Transformation Job.

domainstring(Domain)Deprecated

Domain of a Business Partner Storage.

Example: "BusinessPartner"
Response
application/json
{ "id": "35f23c03-1c22-45fe-9484-3ffe769325de", "domain": "BusinessPartner", "name": "Process vendor data.", "description": "I started this job to improve quality of our data.", "createdBy": "76248934691294444", "createdAt": "2025-08-19T06:23:16Z", "modifiedAt": "2025-08-19T06:23:16Z", "progress": "77", "status": "RUNNING", "statusMessage": "DataSource [5e2874fb8d2a7400011acee1] has no DataMapperDefinition attached and no alternative dataMapperDefinitionId was passed to the job", "storageId": "72d6900fce6b326088f5d9d91049e3e6", "dataSourceId": "648824a691d8d2503d65103e", "dataMapperDefinitionId": "6440dba32b30176c5917b1b7", "dataTransformationDefinitionId": "SAP.ODM", "featuresOn": [ "UPSERT_CHANGES_ONLY" ], "result": { "statistics": {} } }

Use Data Mapper DefinitionDeprecated

Request

Use a Data Mapper Definition to transform a list of records into Business Partners.

Security
apiKey
Path
idstring(DataMapperDefinitionId)required

ID of the Data Mapper Definition.

Example: 6440dba32b30176c5917b1b7
Bodyapplication/jsonrequired

Records

recordsAsJsonStringArray of strings

The records to be transformed as json string.

Example: ["{\"address\": \"Musterstrasse 1, 12345 Musterstadt\"}"]
curl -i -X POST \
  https://api.cdq.com/data-exchange/rest/v3/datamappers/6440dba32b30176c5917b1b7/transform \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "recordsAsJsonString": [
      "{\"address\": \"Musterstrasse 1, 12345 Musterstadt\"}"
    ]
  }'

Responses

OK

Bodyapplication/jsonArray [
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": {}, "record": "{\"name\": \"BUSINESSPARTNER_NAME\", ...}", "names": [], "legalForm": {}, "identifiers": [], "categories": [], "status": {}, "profile": {}, "relations": [], "types": [], "addresses": [], "bankAccounts": [], "externalContext": {} } ]

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