Business Partners

Delete Business PartnersWSDL

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.

SecurityapiKey
Request
path Parameters
storageId
required
string (BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Request Body schema: application/json
required

cmd

Array of objects <= 1000 items

List of Business Partners to be deleted.

dataSource
string (BusinessPartnerStorageDataSourceId)

Unique identifier for a Data Source of the Storage.

Example: "648824a691d8d2503d65103e"
featuresOn
Array of strings (DeleteFeatureParam)

List of features to be used during delete.

Items Enum: "DELETE_BY_EXTERNAL_ID" "DELETE_BUSINESS_PARTNER_DATA" "DELETE_LINKS"
Example: ["DELETE_BY_EXTERNAL_ID"]
Responses
200

OK

201

Created

401

Unauthorized

403

Forbidden

404

Not Found

post/storages/{storageId}/businesspartners/delete
Request samples
application/json
{
  • "dataSource": "YOUR_DATASOURCE_ID",
  • "businessPartners": [
    ],
  • "featuresOn": [
    ]
}
Response samples
application/json
{
  • "numberOfDeletes": "50",
  • "numberOfFailures": "0",
  • "failures": [
    ]
}

Fetch a Business Partner

Fetch a Business Partner from this storage.

SecurityapiKey
Request
path Parameters
storageId
required
string (BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Request Body schema: application/json
required
dataSource
string (BusinessPartnerStorageDataSourceId)

Unique identifier for a Data Source of the Storage.

Example: "648824a691d8d2503d65103e"
externalId
required
string (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."
Responses
200

OK

401

Unauthorized

403

Forbidden

post/v3/storages/{storageId}/businesspartners/fetch
Request samples
application/json
{
  • "externalId": "The ID managed in the customer's SAP systems.",
  • "dataSource": "648824a691d8d2503d65103e"
}
Response samples
application/json
{
  • "businessPartner": {
    },
  • "status": "NOT_FOUND",
  • "message": "Business Partner has been fetched successfully."
}

List Business PartnersWSDL

Read Business Partners from this storage.

SecurityapiKey
Request
path Parameters
storageId
required
string (BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
query Parameters
businessPartnerId
Array of strings (BusinessPartnerId)

Business Partner IDs which should be filtered.

Example: businessPartnerId=63e635235c06b7396330fe40
countryCode
string (CountryShortName)

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

Example: countryCode=CH
dataSource
string (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"
hasRawData
boolean
Default: false

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

Example: hasRawData=false
limit
integer <int32> >= 1
Default: 500

Number of items to be returned on the page.

Example: limit=100
modifiedAfter
string

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

Example: modifiedAfter=2024-11-21T16:00:54Z
modifiedBefore
string

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

Example: modifiedBefore=2024-11-21T16:00:54Z
startAfter
string

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
Responses
200

OK

get/v3/storages/{storageId}/businesspartners
Request samples
Response samples
application/json
{
  • "startAfter": "5712566172571652",
  • "limit": "100",
  • "total": "67",
  • "values": [
    ]
}

List Business Partners Updates

Example Response:

{
   "values": [
      {
         "businessPartner": {
            "id": "123456",
            "externalId": "EXTID-86",
            ...,
            "record": "{<JSON>}"
         },
         "changeSet": [
            {
               "modifiedAt": "2007-08-31T16:47",
               "propertyChanges": [
                  {
                     "newContent": "AAB",
                     "previousContent": "XYZ",
                     "changeType": "MODIFIED",
                     "changeClassification": "MAJOR",
                     "provenance": {
                        "name": "Supplier Gateway",
                        "technicalKey": "SGW"
                     },
                     "property": {
                        "name": "Minority Indicator Value",
                        "contentSelector": "$.partnerProfile.minorityIndicator.value",
                        "technicalKey": "MINORITY_INDICATOR_VALUE"
                        "parentConcept": {
                           "name": "Minority Indicator",
                           "technicalKey": "MINORITY_INDICATOR"
                        }
                     }
                  }
               ]
            }
         ]
      }
   ]
}

In typed concepts, like Name, Identifier or Premise, type.technicalKey and any non-empty property are required to be filled in order to monitor updates.

The following limits for updates calculated per concepts is applied:

  • $.addresses.administrativeAreas: up to 5 sub concept levels supported
  • $.addresses.localities: up to 5 sub concept levels supported
  • $.addresses.postCodes: up to 3 sub concepts supported
  • $.addresses.postalDeliveryPoints: up to 3 sub concepts supported
  • $.addresses.thoroughfares: up to 3 sub concepts supported
  • $.addresses.premises: up to 6 sub concepts supported
SecurityapiKey
Request
path Parameters
storageId
required
string (BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
query Parameters
affectedConcepts
Array of strings (BusinessPartnerConcept)

Only show updates which affected these concepts.

Items Enum: Description
NAME

Name of the Business Partner.

IDENTIFIER

Identifier of the Business Partner.

LEGAL_FORM

Legal form of the Business Partner.

MINORITY_INDICATOR

Minority indicator of the Business Partner.

STATUS

Status of the Business Partner.

ADDRESS

Address of the Business Partner.

COUNTRY

Country of the Business Partner.

ADMINISTRATIVE_AREA

Administrative area of the Business Partner.

POST_CODE

Post code of the Business Partner.

LOCALITY

Locality of the Business Partner.

THOROUGHFARE

Thoroughfare of the Business Partner.

PREMISE

Premise of the Business Partner.

POSTAL_DELIVERY_POINT

Postal delivery point of the Business Partner.

GEOGRAPHIC_COORDINATES

Geographic coordinates of the Business Partner.

BUSINESS_PARTNER_RELATION

Relation of the Business Partner.

Example: affectedConcepts=MINORITY_INDICATOR
affectedProperties
Array of strings (BusinessPartnerPropertyParam)

Only show updates which affected these properties.

Items Enum: Description
NAME_VALUE

Value of Name of the Business Partner.

IDENTIFIER_VALUE

Value of Identifier of the Business Partner

MINORITY_INDICATOR_VALUE

Value of Minority indicator of the Business Partner.

ADMINISTRATIVE_AREA_VALUE

Value of Administrative area of the Business Partner.

LOCALITY_VALUE

Value of Locality of the Business Partner.

POST_CODE_VALUE

Value of Post code of the Business Partner.

THOROUGHFARE_VALUE

Value of Thoroughfare of the Business Partner.

THOROUGHFARE_NUMBER

Thoroughfare number of the Business Partner.

BUSINESS_PARTNER_STATUS_TYPE

Status of the Business Partner.

LEGAL_FORM_NAME

Legal form of the Business Partner.

RECORD

Record status of the Business Partner.

Example: affectedProperties=MINORITY_INDICATOR_VALUE
dataSource
string (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"
featuresOn
Array of strings (BusinessPartnerUpdatesFeature)

Features to be activated for request.

Items Value: "SHOW_BUSINESS_PARTNER"
Example: featuresOn=SHOW_BUSINESS_PARTNER
from
string

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=2024-11-21T16:00:54Z
limit
integer <int32> >= 1
Default: 500

Number of items to be returned on the page.

Example: limit=100
startAfter
string

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
Responses
200

OK

get/v3/storages/{storageId}/businesspartners/updates
Request samples
Response samples
application/json
{
  • "limit": "100",
  • "total": "67",
  • "startAfter": "5712566172571652",
  • "nextStartAfter": "5712566172571652",
  • "values": [
    ]
}

Lookup a Business PartnerWSDL

Lookup a Business Partner in this storage.

SecurityapiKey
Request
path Parameters
storageId
required
string (BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Request Body schema: application/json
required

cmd

required
object

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.

dataSources
Array of strings (BusinessPartnerStorageDataSourceId)

List of Data Sources.

Example: ["648824a691d8d2503d65103e"]
matchingThreshold
number <double> (DataMatchingThreshold) [ 0 .. 1 ]
Default: 0

The threshold for the data matching.

Example: "0.5"
page
integer (Page) >= 0
Default: 0

Current page number.

Example: "1"
pageSize
integer (PageSize) [ 1 .. 1000 ]
Default: 10

Number of items per page.

Example: "100"
Responses
200

OK

401

Unauthorized

403

Forbidden

404

Not Found

post/v3/storages/{storageId}/businesspartners/lookup
Request samples
application/json
{
  • "matchingThreshold": "0.5",
  • "pageSize": "100",
  • "page": "1",
  • "dataSources": [
    ],
  • "businessPartner": {
    }
}
Response samples
application/json
{
  • "pageSize": "100",
  • "totals": "67",
  • "page": "1",
  • "values": [
    ],
  • "debugInfo": {
    }
}

Poll a Toggle Update Monitoring Job

Poll endpoint for a job created in POST toggleUpdateMonitoringJobs.

SecurityapiKey
Request
path Parameters
jobId
required
string (JobId)

Unique identifier of a job.

Example: 35f23c03-1c22-45fe-9484-3ffe769325de
Responses
200

OK

get/jobs/toggleUpdateMonitoringJobs/{jobId}
Request samples
Response samples
application/json
{
  • "job": {
    },
  • "status": "OK"
}

Read a Business Partner

Read a Business Partner from this storage.

SecurityapiKey
Request
path Parameters
id
required
string (BusinessPartnerId)

Unique identifier of the Business Partner.

Example: 63e635235c06b7396330fe40
storageId
required
string (BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Responses
200

OK

get/v3/storages/{storageId}/businesspartners/{id}
Request samples
Response samples
application/json
{
  • "id": "63e635235c06b7396330fe40",
  • "createdAt": "2024-11-21T16:00:54Z",
  • "lastModifiedAt": "2024-11-21T16:00:54Z",
  • "dataSource": "\"CUSTOM_DATA_SOURCE\" or \"648824a691d8d2503d65103e\"",
  • "externalId": "The ID managed in the customer's SAP systems.",
  • "disclosed": "false",
  • "names": [],
  • "legalForm": {},
  • "identifiers": [],
  • "categories": [],
  • "classifications": [],
  • "status": {},
  • "metadata": {
    },
  • "addresses": [
    ],
  • "record": "{\"name\": \"BUSINESSPARTNER_NAME\", ...}",
  • "partnerProfile": {
    }
}

Start a Toggle Update Monitoring Job

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.

SecurityapiKey
Request
Request Body schema: application/json
required
countryShortName
string (CountryShortName)

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

Example: "CH"
dataSourceId
required
string (BusinessPartnerStorageDataSourceId)

Unique identifier for a Data Source of the Storage.

Example: "648824a691d8d2503d65103e"
description
string (JobDescription)

Detailed description of a Job.

Example: "I started this job to improve quality of our data."
enable
required
boolean (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"
name
string (JobName)

Name of a Job.

Example: "Process vendor data."
storageId
required
string (BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: "72d6900fce6b326088f5d9d91049e3e6"
Responses
200

OK

400

The sent request is malformed.

post/jobs/toggleUpdateMonitoringJobs
Request samples
application/json
{
  • "enable": "true",
  • "storageId": "72d6900fce6b326088f5d9d91049e3e6",
  • "name": "Process vendor data.",
  • "description": "I started this job to improve quality of our data.",
  • "dataSourceId": "648824a691d8d2503d65103e",
  • "countryShortName": "CH"
}
Response samples
application/json
{
  • "id": "35f23c03-1c22-45fe-9484-3ffe769325de",
  • "createdBy": "76248934691294444",
  • "createdAt": "2024-11-21T16:00:54Z",
  • "modifiedAt": "2024-11-21T16:00:54Z",
  • "progress": "77",
  • "status": "RUNNING",
  • "statusMessage": "The job failed because storage is empty.",
  • "enable": "true",
  • "storageId": "72d6900fce6b326088f5d9d91049e3e6",
  • "dataSourceId": "648824a691d8d2503d65103e",
  • "countryShortName": "CH"
}

Toggle Business Partners Update Monitoring

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.

SecurityapiKey
Request
path Parameters
storageId
required
string (BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Request Body schema: application/json
required
businessPartnerIds
required
Array of strings (BusinessPartnerId) [ 1 .. 1000 ] items

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

Example: ["63e635235c06b7396330fe40"]
enable
required
boolean (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"
Responses
204

OK

put/storages/{storageId}/businesspartners/toggleUpdateMonitoring
Request samples
application/json
{
  • "enable": "true",
  • "businessPartnerIds": [
    ]
}

Update Disclosure

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.

SecurityapiKey
Request
path Parameters
storageId
required
string (BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Request Body schema: application/json
required
businessPartnerIds
Array of strings (BusinessPartnerId) non-empty

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

Example: ["63e635235c06b7396330fe40"]
countryCode
string
Deprecated

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

Example: "DE"
dataSourceId
string
Deprecated

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

Example: "648824a691d8d2503d65103e"
disclosed
required
boolean

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

Example: "true"
Responses
200

OK

post/v3/storages/{storageId}/businesspartners/updateDisclosure
Request samples
application/json
{
  • "disclosed": "true",
  • "dataSourceId": "648824a691d8d2503d65103e",
  • "countryCode": "DE",
  • "businessPartnerIds": [
    ]
}

Upsert Business PartnersWSDL

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/v3/storages/{YOUR STORAGE ID}/businesspartners
{
  "dataSource": "{YOUR DATA SOURCE}",
  "featuresOn": ["UPSERT_BY_EXTERNAL_ID"],
  "businessPartners": [
   {
     "externalId": "123",
     "record": "{\"MyId\":\"123\", \"City\":\"St. Gallen\"}",
     "names": [
       {
         "value": "CDQ AG",
         "type": {
           "name": "Local",
           "technicalKey": "LOCAL"
         }
       }
     ],
     "addresses": [
     {
       "thoroughfares": [{
         "value": "Lukasstrasse 4"
       }],
       "postCode": {
         "value": "9008"
       },
       "localities": [{
         "value": "St. Gallen"
       }],
       "country": {
         "shortName": "CH"
       }
     }]
   }]
}'

The response is shown below.

{
   "numberOfInserts": "1",
   "numberOfUpdates": "0",
   "numberOfFailed": "0",
}

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

Path Max array size
$.businessPartners[*].names 20
$.businessPartners[*].identifiers 20
$.businessPartners[*].categories 20
$.businessPartners[*].addresses 20
$.businessPartners[].addresses[].contexts 100
$.businessPartners[].addresses[].administrativeAreas 20
$.businessPartners[].addresses[].localities 20
$.businessPartners[].addresses[].thoroughfares 20
$.businessPartners[].addresses[].premises 20
$.businessPartners[].addresses[].types 20
SecurityapiKey
Request
path Parameters
storageId
required
string (BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: 72d6900fce6b326088f5d9d91049e3e6
Request Body schema: application/json
required

Parameters for Business Partners Upsert.

required
Array of objects (BusinessPartner) [ 1 .. 1000 ] items

List of Business Partners.

dataSource
string (BusinessPartnerStorageDataSourceId)

Unique identifier for a Data Source of the Storage.

Example: "648824a691d8d2503d65103e"
featuresOff
Array of strings (UpsertFeature)

Features to be deactivated during the upsert.

Items Enum: Description
UPSERT_BY_EXTERNAL_ID

Updates Business Partners identified by external ID instead of an insert if the external ID is already present in this Business Partner 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 Business Partner 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"]
featuresOn
Array of strings (UpsertFeature)

Features to be activated during the upsert.

Items Enum: Description
UPSERT_BY_EXTERNAL_ID

Updates Business Partners identified by external ID instead of an insert if the external ID is already present in this Business Partner 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 Business Partner 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"]
Responses
200

OK

put/v3/storages/{storageId}/businesspartners
Request samples
application/json
{
  • "dataSource": "648824a691d8d2503d65103e",
  • "businessPartners": [
    ],
  • "featuresOn": [
    ],
  • "featuresOff": [
    ]
}
Response samples
application/json
{
  • "numberOfInserts": "10",
  • "numberOfUpdates": "10",
  • "numberOfFailed": "10",
  • "numberOfAccepted": "10",
  • "failures": [
    ]
}