Skip to content

Data Validation API (3)

This API provides services used for business partner qualification

Languages
Servers
Mock server

https://idp.cdq.com/_mock/apis/data-validation-api/api-v3/

Production SOAP

https://api.corporate-data-league.ch/data-validation/soap/v3/

Production

https://api.corporate-data-league.ch/data-validation/

Qualification

Provides funcionalities for qualification of Business Partners. Includes endpoints that allow users to submit Business Partner data for qualification, retrieve qualification results, and handle various qualification scenarios.

Operations

Validation

Provides funcionalities for validation of Business Partner data.

Operations

Batch Validation

Provides funcionalities for validation of multiple records or entities in a single request. Includes endpoints that allow users to start validation jobs, poll the status of these jobs, and retrieve validation results.

Operations

Business Partners

Provides funcionalities for managing Business Partners. Includes endpoints that allow users to validate Business Partners against data quality rules.

Operations

Configuration

Provides funcionalities for managing configurations. Includes endpoints that allow users to create, update, and delete configurations for the current user.

Operations

Public

Provides funcionalities to provide an RDF model of a record and validate a Business Partner.

Operations

Records

Provides funcionalities for managing records. Includes endpoints that allow users to validate records.

Operations

Rdificate Custom Record

Request

Rdificate a custom record. It returns rdf model of the record.

Security
basicAuth
Headers
X-Credential-Usernamestringrequired

Username that is passed as header parameter with the name X-Credential-Username. The header can take form of:

  • username (e.g. "johndoe")
  • user id (e.g. "87b1bdb1-ba87-4522-b363-c5a0e6e917b3")
Example: 87b1bdb1-ba87-4522-b363-c5a0e6e917b3
Bodyapplication/json
jsonRecordobject

JSON object that will be RDFied. Record and jsonRecord cannot be present at the same time.

Example: "{'recordId': 'id', 'name': 'demo'}"
baseURLstringrequired

Base.

Example: "https://meta.cdq.com/"
recordstring

Stringified data that will be RDFied. Record and jsonRecord cannot be present at the same time.

Example: "{\\\"recordId\\\":\\\"id\\\",\\\"name\\\":\\\"demo\\\"}"
referenceIdTagstringrequired

Name of the attribute that should be used as a main identifier for all triples generated based on the data sent. Will use first found value of an attribute with given name.

Example: "record_id"
pathToReferenceIdstringrequired

JSON path that can locate attribute, in case of non-existent path selection will fall back to referenceIdTag.

Example: "\\fullPath\\recordId"
rootPrefixstringrequired

Prefix that is used for generating TTL triples. Single resource URI is created by baseUrl + rootPrefix + encodedJSONPath ex. https://meta.cdq.com/data/name.

Example: "data"
knowledgeGraphIdstring

Knowledge Graph that contains required configuration for test cases rdfication process.

Example: "kg_1_m_1"
curl -i -X POST \
  -u <username>:<password> \
  https://idp.cdq.com/_mock/apis/data-validation-api/api-v3/records/rdfify \
  -H 'Content-Type: application/json' \
  -H 'X-Credential-Username: 87b1bdb1-ba87-4522-b363-c5a0e6e917b3' \
  -d '{
    "jsonRecord": "{'\''recordId'\'': '\''id'\'', '\''name'\'': '\''demo'\''}",
    "baseURL": "https://meta.cdq.com/",
    "record": "{\\\"recordId\\\":\\\"id\\\",\\\"name\\\":\\\"demo\\\"}",
    "referenceIdTag": "record_id",
    "pathToReferenceId": "\\fullPath\\recordId",
    "rootPrefix": "data",
    "knowledgeGraphId": "kg_1_m_1"
  }'

Responses

OK

Body
rdfRecordstring

Returns input record or jsonRecord transformed to triples.

Example: "<https://monitor.test.cdq.com/380bdf33-ad17-41bc-a3e5-78b27befdca9> a <https://monitor.test.cdq.com/Record>; <https://monitor.test.cdq.com/Property/Has_record_id> '92912918-a85c-4d77-9f62-3b2ddb57a279'; <https://monitor.test.cdq.com/Property/Name> 'demo' ."
Response
{ "rdfRecord": "<https://monitor.test.cdq.com/380bdf33-ad17-41bc-a3e5-78b27befdca9> a <https://monitor.test.cdq.com/Record>; <https://monitor.test.cdq.com/Property/Has_record_id> '92912918-a85c-4d77-9f62-3b2ddb57a279'; <https://monitor.test.cdq.com/Property/Name> 'demo' ." }

Run Custom Rule

Request

Run custom rule with test cases.

Security
basicAuth
Headers
X-Credential-Usernamestringrequired

Username that is passed as header parameter with the name X-Credential-Username. The header can take form of:

  • username (e.g. "johndoe")
  • user id (e.g. "87b1bdb1-ba87-4522-b363-c5a0e6e917b3")
Example: 87b1bdb1-ba87-4522-b363-c5a0e6e917b3
Bodyapplication/json
querystringrequired

SPARQL query that’s being tested

Example: "SELECT * WHERE{ ?record a <https://monitor.test.cdq.com/Record> ; \t<https://monitor.test.cdq.com/Property/Name> ?name .FILTER(str(?name) != 'demo')}"
knowledgeGraphIdstringrequired

Knowledge Graph that contains required configuration for test cases rdfication process.

Example: "kg_1_m_1"
testCasesArray of objects(TestCustomRuleTestCase)required

List of Test Custom Rule Test Cases.

testCases[].​namestring

Name of the test case.

Example: "Test case 1"
testCases[].​datastring

JSON object with test case data. If data and jsonRecord are present, exception will be thrown.

Example: "{\\\"name\\\":\\\"demo\\\"}"
testCases[].​jsonRecordobject

Stringified test case data. If data and jsonRecord are present, exception will be thrown.

Example: "{\\\"name\\\":\\\"demo\\\"}"
curl -i -X POST \
  -u <username>:<password> \
  https://idp.cdq.com/_mock/apis/data-validation-api/api-v3/records/testCustomRule \
  -H 'Content-Type: application/json' \
  -H 'X-Credential-Username: 87b1bdb1-ba87-4522-b363-c5a0e6e917b3' \
  -d '{
    "query": "SELECT * WHERE{  ?record a <https://monitor.test.cdq.com/Record> ;  \t<https://monitor.test.cdq.com/Property/Name> ?name .FILTER(str(?name) != '\''demo'\'')}",
    "knowledgeGraphId": "kg_1_m_1",
    "testCases": [
      {
        "name": "Test case 1",
        "data": "{\\\"name\\\":\\\"demo\\\"}",
        "jsonRecord": "{\\\"name\\\":\\\"demo\\\"}"
      }
    ]
  }'

Responses

OK

Body
resultsArray of objects(TestCustomRuleResult)

List of Test Custom Rule Results.

Response
{ "results": [ {} ] }

Validate Business Partner Chunk

Request

Validates a custom record. If the custom knowledge graph also contains a mapping, the mapping is applied ad-hoc and CDL validation rules are applied as well

Security
basicAuth
Headers
X-Credential-Usernamestringrequired

Username that is passed as header parameter with the name X-Credential-Username. The header can take form of:

  • username (e.g. "johndoe")
  • user id (e.g. "87b1bdb1-ba87-4522-b363-c5a0e6e917b3")
Example: 87b1bdb1-ba87-4522-b363-c5a0e6e917b3
Bodyapplication/json
jsonRecordobject

Stringified JSON of the custom record.

customKnowledgeGraphstring

Identifier for the custom knowledge graph that should be used for validation.

Example: "customer_name"
dataMapperDefinitionIdstring(DataMapperDefinitionId)

Mapping ID that should be used for the mapping. Overrules a mapping of the knowledge graph (if exists). To run validation against CDL Rules, data mapping definition by given ID must exist and user executing validation needs to have permission to access it.

Example: "ef48bc9f-7fa1-4c4e-8c0d-d1cc3301cc20"
profilestring(ValidationProfile)

Profile which is used during validation. Default value is STANDARD.

Enum ValueDescription
QUICK

This profile checks data quality of records in a quick way, i.e. data quality rules that have a negative impact on performance.

STANDARD

This profile checks data quality using CDQ's standard configuration.

QUALIFICATION

Deprecated.

AUTOMATION

Deprecated.

EU_VAT_QUALIFICATION

This profile qualifies EU VATs using CDQ's default configuration of data quality rules for qualified checks of EU VATs

DATA_SHARING_QUALITY_GATE

Quality checks ensure that only valid data enters the CDQ Community Data Pool

IDENTIFIER_QUALITY

This profile checks identifiers with a standard configuration of data quality rules. It does not comprise qualified checks of identifiers regarding e.g. name or address.

ADDRESS_QUALITY

This profile checks addresses with a standard configuration of data quality rules.

WORLDWIDE_IDENTIFIER_QUALIFICATION

This profile qualifies any supported business identifier (e.g. tax numbers) worldwide using CDQ's default configuration of data quality rules for qualified checks of a particular identifier

FEATURES_OFF

This profile turns off any qualification rules and is designed for custom rules selection.

Example: "QUICK"
ruleStatusesArray of strings(RuleStatus)

Filter for rule status.

Items Enum ValueDescription
RELEASED

Rule was moved from status PLANNED automatically during daily testing or by manual maintenance.

DRAFT

Rule was created as a draft and it will be not executed.

HYPERCARE

Rule was moved from status DEACTIVATED automatically during daily testing.

Example: ["RELEASED"]
featuresOnArray of strings

Activate features.

Items Enum ValueDescription
ENRICH_DATA_MIRROR_CHANGES

Enriches the data with changes from the data mirror.

EXTERNAL_SOURCES_OFF

Disables any rule that utilizes Data Sources in validation process (rule’s Primary/Secondary datasources).

SHOW_BUSINESSPARTNER

Returns the Business Partner as a part of the validation response.

SHOW_DEBUG_INFO

Return additional information that can be used for debugging purposes.

USE_AUTOMATION_RULES

Executes business rules of category Automation_rule.

Example: ["SHOW_LOOKUP_RESULTS"]
featuresOffArray of strings

List of features to be deactivated.

Items Enum ValueDescription
ENRICH_DATA_MIRROR_CHANGES

Enriches the data with changes from the data mirror.

EXTERNAL_SOURCES_OFF

Disables any rule that utilizes Data Sources in validation process (rule’s Primary/Secondary datasources).

SHOW_BUSINESSPARTNER

Returns the Business Partner as a part of the validation response.

SHOW_DEBUG_INFO

Return additional information that can be used for debugging purposes.

USE_AUTOMATION_RULES

Executes business rules of category Automation_rule.

Example: ["SHOW_LOOKUP_RESULTS"]
ruleCategoriesOnArray of objects(RuleCategoryOn)

Categories use for selecting active business rules.

ignoredRulesArray of strings(BusinessRuleUrl)

Urls of cdl rules ignored during validation process.

Example: ["https://meta.cdq.com/Identifier_unknown_(European_value_added_tax_identifier_(The_Netherlands))"]
activatedRulesArray of strings(BusinessRuleUrl)

Urls of cdl rules that are active during validation process.

Example: ["https://meta.cdq.com/Identifier_unknown_(European_value_added_tax_identifier_(The_Netherlands))"]
criticalitiesArray of objects(Criticality)

Criticalities of cdl rules that are active during validation process.

dataSourcesOnArray of objects(DataSource)

If data sources are disabled by feature toggle you can enable some of them passing their prefixes here.

dataSourcesOffArray of objects(DataSource)

Rules with data sources passed here are not used in validation process.

dataMirrorStorageIdstring

Storage used for data mirror enrichment.

Example: "6ecd44476b95347e8a0d215589afj420"
recordsArray of objects(RecordParam)required

Stringified test case data. If data and jsonRecord are present, exception will be thrown.

records[].​jsonRecordobject

Stringified JSON of the custom record.

records[].​recordstring

Stringified test case data. If data and jsonRecord are present, exception will be thrown.

Example: "{\\\"name\\\":\\\"demo\\\"}"
records[].​externalIdstring

Unique id from the client system.

Example: "A12345"
curl -i -X POST \
  -u <username>:<password> \
  https://idp.cdq.com/_mock/apis/data-validation-api/api-v3/v2/records/validateChunk \
  -H 'Content-Type: application/json' \
  -H 'X-Credential-Username: 87b1bdb1-ba87-4522-b363-c5a0e6e917b3' \
  -d '{
    "jsonRecord": {},
    "customKnowledgeGraph": "customer_name",
    "dataMapperDefinitionId": "ef48bc9f-7fa1-4c4e-8c0d-d1cc3301cc20",
    "profile": "QUICK",
    "ruleStatuses": [
      "RELEASED"
    ],
    "featuresOn": [
      "SHOW_LOOKUP_RESULTS"
    ],
    "featuresOff": [
      "SHOW_LOOKUP_RESULTS"
    ],
    "ruleCategoriesOn": [
      {
        "url": "https://meta.cdq.com/Identifier_checkdigit"
      }
    ],
    "ignoredRules": [
      "https://meta.cdq.com/Identifier_unknown_(European_value_added_tax_identifier_(The_Netherlands))"
    ],
    "activatedRules": [
      "https://meta.cdq.com/Identifier_unknown_(European_value_added_tax_identifier_(The_Netherlands))"
    ],
    "criticalities": [
      {
        "businessRuleUrl": "https://meta.cdq.com/Identifier_unknown_(European_value_added_tax_identifier_(The_Netherlands))",
        "violationLevel": "INFO"
      }
    ],
    "dataSourcesOn": [
      {
        "prefix": "VIES"
      }
    ],
    "dataSourcesOff": [
      {
        "prefix": "VIES"
      }
    ],
    "dataMirrorStorageId": "6ecd44476b95347e8a0d215589afj420",
    "records": [
      {
        "jsonRecord": {},
        "record": "{\\\"name\\\":\\\"demo\\\"}",
        "externalId": "A12345"
      }
    ]
  }'

Responses

OK

Body
resultsArray of objects(RecordChunkItemResult)

List of Validation Results.

Response
{ "results": [ {} ] }

Validate Record

Request

Validates a custom record. If the custom knowledge graph also contains a mapping, the mapping is applied ad-hoc and CDL validation rules are applied as well.

Security
basicAuth
Headers
X-Credential-Usernamestringrequired

Username that is passed as header parameter with the name X-Credential-Username. The header can take form of:

  • username (e.g. "johndoe")
  • user id (e.g. "87b1bdb1-ba87-4522-b363-c5a0e6e917b3")
Example: 87b1bdb1-ba87-4522-b363-c5a0e6e917b3
Bodyapplication/json
jsonRecordobject

Stringified JSON of the custom record.

Example: "{}"
customKnowledgeGraphstring

Identifier for the custom knowledge graph that should be used for validation.

Example: "customer_name"
dataMapperDefinitionIdstring(DataMapperDefinitionId)

Mapping ID that should be used for the mapping. Overrules a mapping of the knowledge graph (if exists). To run validation against CDL Rules, data mapping definition by given ID must exist and user executing validation needs to have permission to access it.

Example: "ef48bc9f-7fa1-4c4e-8c0d-d1cc3301cc20"
profilestring(ValidationProfile)

Profile which is used during validation. Default value is STANDARD.

Enum ValueDescription
QUICK

This profile checks data quality of records in a quick way, i.e. data quality rules that have a negative impact on performance.

STANDARD

This profile checks data quality using CDQ's standard configuration.

QUALIFICATION

Deprecated.

AUTOMATION

Deprecated.

EU_VAT_QUALIFICATION

This profile qualifies EU VATs using CDQ's default configuration of data quality rules for qualified checks of EU VATs

DATA_SHARING_QUALITY_GATE

Quality checks ensure that only valid data enters the CDQ Community Data Pool

IDENTIFIER_QUALITY

This profile checks identifiers with a standard configuration of data quality rules. It does not comprise qualified checks of identifiers regarding e.g. name or address.

ADDRESS_QUALITY

This profile checks addresses with a standard configuration of data quality rules.

WORLDWIDE_IDENTIFIER_QUALIFICATION

This profile qualifies any supported business identifier (e.g. tax numbers) worldwide using CDQ's default configuration of data quality rules for qualified checks of a particular identifier

FEATURES_OFF

This profile turns off any qualification rules and is designed for custom rules selection.

Example: "QUICK"
ruleStatusesArray of strings(RuleStatus)

Filter for rule status.

Items Enum ValueDescription
RELEASED

Rule was moved from status PLANNED automatically during daily testing or by manual maintenance.

DRAFT

Rule was created as a draft and it will be not executed.

HYPERCARE

Rule was moved from status DEACTIVATED automatically during daily testing.

Example: ["RELEASED"]
featuresOnArray of strings

Activate features.

Items Enum ValueDescription
ENRICH_DATA_MIRROR_CHANGES

Enriches the data with changes from the data mirror.

EXTERNAL_SOURCES_OFF

Disables any rule that utilizes Data Sources in validation process (rule’s Primary/Secondary datasources).

SHOW_BUSINESSPARTNER

Returns the Business Partner as a part of the validation response.

SHOW_DEBUG_INFO

Return additional information that can be used for debugging purposes.

USE_AUTOMATION_RULES

Executes business rules of category Automation_rule.

Example: ["SHOW_LOOKUP_RESULTS"]
featuresOffArray of strings

List of features to be deactivated.

Items Enum ValueDescription
ENRICH_DATA_MIRROR_CHANGES

Enriches the data with changes from the data mirror.

EXTERNAL_SOURCES_OFF

Disables any rule that utilizes Data Sources in validation process (rule’s Primary/Secondary datasources).

SHOW_BUSINESSPARTNER

Returns the Business Partner as a part of the validation response.

SHOW_DEBUG_INFO

Return additional information that can be used for debugging purposes.

USE_AUTOMATION_RULES

Executes business rules of category Automation_rule.

Example: ["SHOW_LOOKUP_RESULTS"]
ruleCategoriesOnArray of objects(RuleCategoryOn)

Categories use for selecting active business rules.

ignoredRulesArray of strings(BusinessRuleUrl)

Urls of cdl rules ignored during validation process.

Example: ["https://meta.cdq.com/Identifier_unknown_(European_value_added_tax_identifier_(The_Netherlands))"]
activatedRulesArray of strings(BusinessRuleUrl)

Urls of cdl rules that are active during validation process.

Example: ["https://meta.cdq.com/Identifier_unknown_(European_value_added_tax_identifier_(The_Netherlands))"]
criticalitiesArray of objects(Criticality)

Criticalities of cdl rules that are active during validation process.

dataSourcesOnArray of objects(DataSource)

If data sources are disabled by feature toggle you can enable some of them passing their prefixes here.

dataSourcesOffArray of objects(DataSource)

Rules with data sources passed here are not used in validation process.

dataMirrorStorageIdstring

Storage used for data mirror enrichment.

Example: "6ecd44476b95347e8a0d215589afj420"
recordstring

Stringified JSON of the custom record

Example: "{}"
externalIdstring

Unique ID from the client system.

Example: "A12345"
curl -i -X POST \
  -u <username>:<password> \
  https://idp.cdq.com/_mock/apis/data-validation-api/api-v3/v2/records/validate \
  -H 'Content-Type: application/json' \
  -H 'X-Credential-Username: 87b1bdb1-ba87-4522-b363-c5a0e6e917b3' \
  -d '{
    "jsonRecord": "{}",
    "customKnowledgeGraph": "customer_name",
    "dataMapperDefinitionId": "ef48bc9f-7fa1-4c4e-8c0d-d1cc3301cc20",
    "profile": "QUICK",
    "ruleStatuses": [
      "RELEASED"
    ],
    "featuresOn": [
      "SHOW_LOOKUP_RESULTS"
    ],
    "featuresOff": [
      "SHOW_LOOKUP_RESULTS"
    ],
    "ruleCategoriesOn": [
      {
        "url": "https://meta.cdq.com/Identifier_checkdigit"
      }
    ],
    "ignoredRules": [
      "https://meta.cdq.com/Identifier_unknown_(European_value_added_tax_identifier_(The_Netherlands))"
    ],
    "activatedRules": [
      "https://meta.cdq.com/Identifier_unknown_(European_value_added_tax_identifier_(The_Netherlands))"
    ],
    "criticalities": [
      {
        "businessRuleUrl": "https://meta.cdq.com/Identifier_unknown_(European_value_added_tax_identifier_(The_Netherlands))",
        "violationLevel": "INFO"
      }
    ],
    "dataSourcesOn": [
      {
        "prefix": "VIES"
      }
    ],
    "dataSourcesOff": [
      {
        "prefix": "VIES"
      }
    ],
    "dataMirrorStorageId": "6ecd44476b95347e8a0d215589afj420",
    "record": "{}",
    "externalId": "A12345"
  }'

Responses

OK

Body
dataDefectsArray of objects(DataDefect)

List of Data Defects found in the record.

decisionsArray of objects(Decision)

List of Decisions made by the automation rules.

qualificationResultobject(QualificationResult)

QualificationResult is created when validation process takes into consideration rules of category and the feature SHOW_QUALIFICATION_DECISIONS is enabled. Enabling qualification can be done by the profile related to the qualification. QualificationResult contains information about qualification decisions, the data that have been qualified and overall qualification decisions.

summaryobject(ValidationSummary)

Summary of the validation result.

debugInfoobject(DebugInfo)

Reference implementation how to structure external service responses. Can be activated by a feature SHOW_DEBUG_INFO.

diffstring

Applicable only for Record Validation when feature ENRICH_DATA_MIRROR_CHANGES is enabled. Contains differences between value stored in CDQ storage and the value that was sent with the request.

Example: "{\"Identified_changes\":[{\"op\":\"add\",\"path\":\"/partner/header/objectTask\",\"value\":\"C\"}]}"
businessPartnerobject(BusinessPartner3)

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.

Response
{ "dataDefects": [ {} ], "decisions": [ {} ], "qualificationResult": { "sourceData": [], "formattedSourceData": {}, "validatorStatus": "ONLINE", "validatorMessage": "VAT ID is valid.", "qualifiedBy": {}, "qualifiedAt": "2019-07-11T16:32:28.425", "addressQualification": "QUALIFIED", "addressQualificationDetails": {}, "identifierValidity": "VALID", "businessPartnerNameQualification": "QUALIFIED", "overallQualification": "QUALIFIED" }, "summary": { "validationLevel": "ERROR", "dataQualityRecordStatus": {}, "action": "FULL_CHECK", "statistics": {} }, "debugInfo": { "externalServiceResponses": [], "businessRulesExecutionSummary": {} }, "diff": "{\"Identified_changes\":[{\"op\":\"add\",\"path\":\"/partner/header/objectTask\",\"value\":\"C\"}]}", "businessPartner": { "names": [], "legalForm": "Aktiengesellschaft", "identifiers": [], "categories": [], "status": {}, "addresses": [], "externalId": "The ID managed in the customer's SAP systems.", "profile": {}, "formattedSapRecord": {}, "relations": [], "bankAccounts": [], "types": [], "externalContext": "LIFNR", "id": "63e635235c06b7396330fe40", "dataSource": "VIES", "lastModifiedAt": "2020-08-31T16:47+00:00" } }

Processing Logs

Provides funcionalities for managing processing logs. Includes endpoints that allow users to read processing log results.

Operations