# Retrieve duplicate business partner records

Returns a paginated list of potential duplicate business partner records based on search criteria

Endpoint: GET /entityresolution/entitymatchinglinks
Version: 2
Security: apiKey

## Query parameters:

  - `matchingScore` (number, required)
    Minimum matching score threshold
    Example: 0.8

  - `dataMonitorId` (string, required)
    Unique Data Monitor identifier
    Example: "72d6900fce6b326088f5d9d91049e3e6"

  - `businessPartnerIds` (array)
    Return only entity matching links associated with the specified Business Partner IDs. Provide an array of Business Partner IDs to filter the results. Maximum 500 IDs can be specified.
To provide multiple values, use a comma-separated list: businessPartnerIds=bpId1,bpId2.
You can also pass them separately as multiple query parameters: businessPartnerIds=bpId1&businessPartnerIds=bpId2.
    Example: ["63e635235c06b7396330fe40"]

  - `status` (string)
    Status of the entity matching link
    Enum: "INFERRED", "ASSERTED", "RETRACTED"

  - `limit` (integer)
    Number of items to be returned.
    Example: "100"

  - `startAfter` (string)
    Indicator for the next page. Used together with nextStartAfter from the result.
    Example: "5712566172571652"

  - `featuresOn` (array)
    Enable additional features for entity matching links.
    Enum: "NUMBER_OF_TOTAL"

  - `dataSourceId` (string)
    Unique Storage's Data Source identifier.
    Example: "648824a691d8d2503d65103e"

  - `createdBefore` (string)
    Return entries which were created before given date. The given date should support ISO-8601 representation.
    Example: "2026-09-09T10:48:46Z"

  - `createdAfter` (string)
    Return entries which were created after given date. The given date should support ISO-8601 representation.
    Example: "2026-09-09T10:48:46Z"

  - `externalIds` (array)
    Business Partner externalIDs. To provide multiple values, use a comma-separated list: externalIds=extId1,extId2.
You can also pass them separately as multiple query parameters: externalIds=extId1&externalIds=extId2.
    Example: ["The ID managed in the customer's SAP systems."]

  - `confidenceStatus` (string)
    Filter by link confidence status.
    Enum: "MATCH", "NO_MATCH", "MAYBE_MATCH"

  - `sort` (string)
    Defines the attributes to sort by. Supported attribute is 'matchingScore'. Sort direction can be specified in front of each attribute. '+' means ascending, '-' means descending. If direction is not given default sort is '-matchingScore'.
    Example: "-matchingScore"

## Response 200 fields (application/json):

  - `status` (object)
    Details about status or error of a service

  - `status.code` (integer, required)
    RFC 7231 status code for this error.
    Example: "200"

  - `status.technicalKey` (string, required)
    Technical key describing the status or error
    Example: "OK"

  - `status.details` (array, required)

  - `status.details.id` (integer, required)
    9-digit code which is uniquely identifying a message
    Example: 200000004

  - `status.details.message` (string, required)
    Human-readable message which may also be presented in user interface.
    Example: "The job came to an end and finished successfully."

  - `status.details.technicalKey` (string)
    Technical key to uniquely identify a message.
    Example: "JOB_FINISHED"

  - `status.details.jsonPath` (string)
    JSONPath as specified by the IETF standard
    Example: "$.businessPartner.names[0].value"

  - `status.details.jsonRecord` (string)
    Object provided in plain JSON format.
    Example: "{ \"key\" : \"value\"}"

  - `status.path` (string)
    Requested path which caused this error.
    Example: "/v2/businesspartners/lookup"

  - `status.timestamp` (string)
    ISO 8601 representation of the timestamp.
    Example: "2026-09-09T10:48:46Z"

  - `startAfter` (string)
    The ID which is used to read the page.
    Example: "5712566172571652"

  - `limit` (integer)
    Number of items per page.
    Example: "100"

  - `nextStartAfter` (string)
    Provides a value to be used as a startAfter in next page request.
    Example: "5712566172571652"

  - `total` (integer)
    Total number of items which can be paged.
    Example: "67"

  - `values` (array)
    List of entity matching links.

  - `values.id` (string)
    ID of the Entity Matching Link.
    Example: "5712566172571652"

  - `values.storageId` (string)
    Uniquely identifying ID of entity matching link's the storage.
    Example: "96f89e48aa7b331c82fb30c02d0f7154"

  - `values.dataMonitorId` (string)
    Unique Data Monitor identifier.
    Example: "72d6900fce6b326088f5d9d91049e3e6"

  - `values.createdAt` (string)
    Date of creation (ISO 8601-compliant).
    Example: "2026-09-09T10:48:46Z"

  - `values.createdBy` (string)
    Creator of a resource.
    Example: "76248934691294444"

  - `values.modifiedBy` (string)
    User or Client UUID which modified the resource.
    Example: "76248934691294444"

  - `values.modifiedAt` (string)
    Date of modification (ISO 8601-compliant).
    Example: "2026-09-09T10:48:46Z"

  - `values.entityA` (object)
    Represents a business entity in the system with its unique identifiers and source information.

  - `values.entityA.dataSourceId` (string, required)
    Unique identifier for a Data Source of the Storage.
    Example: "648824a691d8d2503d65103e"

  - `values.entityA.businessPartnerId` (string, required)
    Technical identifier of a business partner record, unique within the CDQ.
    Example: "63e635235c06b7396330fe40"

  - `values.entityA.externalId` (string, required)
    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."

  - `values.entityB` (object)
    Represents a business entity in the system with its unique identifiers and source information.

  - `values.confidence` (object)
    Represents the confidence level of a match between two entities, including scoring and status information.

  - `values.confidence.overallScore` (number, required)
    Overall confidence score of the match between two entities (0.0 to 1.0).
    Example: 0.95

  - `values.confidence.status` (string, required)
    Value of confidence status.

List of values:
* MATCH: Entities match with high confidence and are considered identical.
* NO_MATCH: Entities do not match and are considered different.
* MAYBE_MATCH: Match confidence is uncertain and falls between threshold ranges.
    Example: "MATCH"

  - `values.confidence.explanation` (object)
    Detailed explanation of why entities were considered matches, breaking down the matching logic by attributes.

  - `values.confidence.explanation.attributeMatchingExplanation` (array)

  - `values.confidence.explanation.attributeMatchingExplanation.jsonPath` (string, required)
    JSON path indicating the location of the matched attribute in the entity structure.
    Example: "businessPartner.name"

  - `values.confidence.explanation.attributeMatchingExplanation.valueA` (string, required)
    Value of the attribute from the first entity being compared.
    Example: "Acme Corporation"

  - `values.confidence.explanation.attributeMatchingExplanation.valueB` (string, required)
    Value of the attribute from the second entity being compared.
    Example: "ACME Corp"

  - `values.confidence.explanation.attributeMatchingExplanation.similarity` (number, required)
    Numerical score indicating how similar the two values are (0.0 to 1.0).
    Example: 0.85

  - `values.linkStatus` (string)
    Value of Entity Link status.

List of values:
* INFERRED: This status means that the link was identified as a result of the matching process. It is purely algorithm based.
* ASSERTED: This status means that the link was manually reviewed and approved.
* RETRACTED: Status was INFERRED, but the status was manually changed. This can be either the customer stating that the link was not valid, the data of the records changed, or the matching configuration was altered.
    Example: "INFERRED"

  - `values.linkStatusUserComment` (string)
    Optional user comment explaining the link status
    Example: "Verified during manual review process"

## Response 400 fields (application/json):

  - `status` (object)
    Details about status or error of a service


