Cookies Settings

Loading

dnb-logo
Direct 2.0
Collapse

Create Monitoring Profile

This function allows a customer to specify which data layer (or portion thereof) should be monitored and the condition(s) that should trigger change notices.

A Monitoring Profile establishes the specific data fields within a given data layer that should be monitored, and the conditions under which a change event should be triggered.

Update History

  • April 22, 2016 (v6.0 SOAP &REST): Changed the current implementation on the conditions, Value Goes Beyond and Value Goes Below, based on the ContinuousChangeNotificationIndicator. This establishes the following features: If ContinuousChangeNotificationIndicator is set to TRUE (by default), change notices are sent when the new value is less than or greater than the customer threshold. If ContinuousChangeNotificationIndicator is set to FALSE, change notices are sent only when the new value crosses through the customer threshold range relative to the former value.
  • March 11, 2016 (v6.0 SOAP & REST)): Multiple conditions may now be specified for any one particular element in create monitoring profile and update monitoring profile. This feature is applicable for any monitorable numeric element.

Feature Request

IMPORTANT: Please see the new Online Services Security Enhancement Release, effective November 09, 2020.

Overview

When providing PCMElementXPATHText values, the format should be "//Organization/..." WITHOUT any spaces. Some data elements may only be monitored by the associated aggregate or attribute XPATH.

Example:

As displayed in documentationValue in PCMElementXPATHText
OrderProductResponse { OrderProductResponseDetail { Product { Organization { Events { PublicFilingHeader { DisclaimerText//Organization /Events /PublicFilingHeader /DisclaimerText

Data Layer Entitlement

For customers in U.S. and Canadian markets, the API is provisioned for specific collections of products, reports, and/or features (collectively referred to as data layers) for production and trial usage. Entitlement is not required for testing in the sandbox environment.

  • This function does not require entitlement for production and trial usage. Entitlement for monitoring is only required for the Add Monitoring Registration function, and for the data layers that will monitored.

Specification

Please refer to the list of products that may be included in the Monitoring process.

Restriction: The sequence of Request Parameters submitted to POST/PUT operations currently MUST follow the order presented in this section. This applies to REST calls only.

Restriction: An XML namespace statement MUST be included as the first statement within the primary Aggregate of the request. Please refer to the Sample Request for an example. This applies to REST calls only.

Sample Request (Create)
POST https://direct.dnb.com/V6.0/monitoring/monitoringprofiles
Content-Type: application/json
Authorization: <MyToken>

{
	"mon:CreateMonitoringProfileRequest": {
		"@xmlns$mon": "http://services.dnb.com/MonitoringServiceV2.0",
		"TransactionDetail": {
			"ApplicationTransactionID": "ID_002",
			"TransactionTimestamp": "2013-03-11T09:29:10Z",
			
		},
		"CreateMonitoringProfileRequestDetail": {
			"MonitoringProfileSpecification": {
				"MonitoringProfileName": "John_Monitoring_Profile_PBPR_STD_1",
				"MonitoringProfileDescription": "Profile for monitoring PBPR_STD",
				"DNBProductID": "PBPR_STD",
				"MonitoringLevel": "Level1",
				"MonitoringElementDetail": {
					"MonitoringElement": {
						"PCMElementXPATHText": "//Organization/Financial/KeyFinancialFiguresOverview/ProfitOrLossAmount",
						"MonitoringChanges": {
							"ChangeCondition": "MultiCondition",
							"ChangeValue": "((element > 25) OR (element < 100))"
						}
					}
				}
			},
			"InquiryReferenceText": {
				"CustomerReferenceText": ["PBPR_STD",
				"Level2 Monitoring"]
			}
		}
	}
}
Name Characteristics
CreateMonitoringProfileRequest Aggregate
CreateMonitoringProfileRequest@ServiceVersionNumber Attribute
CreateMonitoringProfileRequest@xsi:schemaLocation Attribute
CreateMonitoringProfileRequest { TransactionDetail Aggregate, Optional

Records information necessary to process this request.

CreateMonitoringProfileRequest { TransactionDetail { ApplicationTransactionID string up to 64 chars., Optional

A number assigned by the calling application to uniquely identify this request.

CreateMonitoringProfileRequest { TransactionDetail { TransactionTimestamp DateTimestamp, Optional

The date and time when this request was created. When the request is from an intermediary, such as a workflow manager or service bus, this is the date and time when the message was sent to the D&B function, i.e., the date and time when the xml document was created by the requesting intermediary.

CreateMonitoringProfileRequest { TransactionDetail { SubmittingOfficeID string up to 64 chars., Optional

A number that identifies the system or the software application from where this request originated. / A number used to uniquely identfy the D&B business segment or delivery channel from where this request originated.

END: CreateMonitoringProfileRequest } TransactionDetail /Aggregate
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail Aggregate, Required

Records details of the request to create a profile, a set of events and their thresholds, used to monitor a DUNS or a set of DUNS.

CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification Aggregate, Required

Records the preferences provided by the Customer/User on the monitoring parameters while enrolling for the monitoring service.

CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringProfileName string at least 1 chars. up to 64 chars. Pattern: {.*[^\s].*}., Required

A name that is provided by the user to the profile.

CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringProfileDescription string up to 256 chars., Optional

A string that records the description of the profile

CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { DNBProductID string up to 64 chars., Required

Records the product code that is provided by the customer to create a profile

CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringLevel MonitoringLevelTextEnum up to 16 chars., Required

A alphanumeric string which determines the level of details that the customer will receive during a change event

Possible values: Level1; Level2. Level2 provides change event notices along with a copy of the data layer; while Level1 only provides the notices.

CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail Aggregate, Optional
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { MonitoringElement Aggregate, Required (Infinite)
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { MonitoringElement { PCMElementXPATHText string up to 3000 chars., Required
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { MonitoringElement { MonitoringChanges Aggregate, Required (Infinite)
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { MonitoringElement { MonitoringChanges { ChangeCondition ChangeConditionEnum, Required

Criteria to monitor an element.

 

Possible values: AnyChange; ValueIncreaseByPercentage; ValueDecreaseByPercentage; ValueChangeByPercentage; ValueIncreaseBy; ValueDecreaseBy; ValueChangeBy; ValueGoesBeyond; ValueGoesBelow; ValueEquals; DateChangeBy; DateEquals; MultiCondition

The Continuous Change Notification Indicator is considered for values: ValueGoesBeyond and ValueGoesBelow.

Refer to the MultiCondition table for more details.

CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { MonitoringElement { MonitoringChanges { ChangeValue string, up to 3000 chars., Optional

Threshold value corresponding to monitoring criteria.

CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { MonitoringElement { MonitoringChanges { ContinuousChangeNotificationIndicator boolean, Optional

When 'true' (default), change notices are sent when the new value is less than or greater than the customer threshold. When 'false', change notices are sent only when the new value crosses through the customer threshold range relative to the former value.

END: CreateMonitoringProfileRequest } CreateMonitoringProfileRequestDetail } MonitoringProfileSpecification } MonitoringElementDetail } MonitoringElement } MonitoringChanges /Aggregate
END: CreateMonitoringProfileRequest } CreateMonitoringProfileRequestDetail } MonitoringProfileSpecification } MonitoringElementDetail } MonitoringElement /Aggregate
END: CreateMonitoringProfileRequest } CreateMonitoringProfileRequestDetail } MonitoringProfileSpecification } MonitoringElementDetail /Aggregate
END: CreateMonitoringProfileRequest } CreateMonitoringProfileRequestDetail } MonitoringProfileSpecification /Aggregate
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { ReturnChangedDataOnlyIndicator boolean

When 'true' indicates that Change Notices will only include information for fields whose value has changed. When 'false' indicates that Change Notices will include information for all fields, regardless if the values have changed. The latter scenario applies when a whole data layer and/or aggregate is being monitored.

CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { InquiryReferenceText Aggregate, Optional

Records data that allows the customer to specify information to be linked to the request in order to support subsequent order reconciliation.

CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { InquiryReferenceText { CustomerReferenceText string up to 240 chars., Optional(Up to 5x)

A freeform reference string provided by the customer to be linked to the product in order to support subsequent order reconciliation.

END: CreateMonitoringProfileRequest } CreateMonitoringProfileRequestDetail } InquiryReferenceText /Aggregate
END: CreateMonitoringProfileRequest } CreateMonitoringProfileRequestDetail /Aggregate
END: CreateMonitoringProfileRequest /Aggregate

Endpoint

Use the following endpoint for requesting this feature. The {version} is dependent on the underlying service delivering the response.

Endpoint (Monitoring)
POST https://direct.dnb.com/V{version}/monitoring/monitoringprofiles

Testing

This operation will return a static set of results in the D&B Direct test environment (sandbox), regardless of the request parameters.

Feature Response

NOTE: The D&B Direct REST implementation uses the BadgerFish approach for JSON with some minor variations.

Specification

The following is a list of the possible data fields returned by this operation in the JSON response. Samples are provided for testing successful and failed retrieval, and to demonstrate the basic layout of a response. The data returned in samples may not represent actual values that this feature will deliver.

NOTE: The D-U-N-S Number returned in the response will be a nine-digit zero-padded, numeric value.

Sample Response (Create)
{"CreateMonitoringProfileResponse": {
   "@ServiceVersionNumber": "6.0",
   "TransactionDetail":    {
      "ApplicationTransactionID": "ID_002",
      "ServiceTransactionID": "Id-3a42ff22524466d469bb3435-1",
      "TransactionTimestamp": "2013-03-11T05:29:10-04:00"
   },
   "TransactionResult":    {
      "SeverityText": "Information",
      "ResultID": "CM000",
      "ResultText": "Success"
   },
   "CreateMonitoringProfileResponseDetail":    {
      "MonitoringProfileDetail":       {
         "MonitoringProfileName": "John_Monitoring_Profile_PBPR_STD_1",
         "MonitoringProfileID": 272
      },
      "InquiryReferenceText": {
      	"CustomerReferenceText": [
      		"PBPR_STD",
		"Level2 Monitoring"]
      ]}
   }
}}
NameCharacteristics
CreateMonitoringProfileResponse Aggregate
CreateMonitoringProfileResponse@ServiceVersionNumber Attribute
CreateMonitoringProfileResponse@xsi:schemaLocation Attribute
CreateMonitoringProfileResponse { TransactionDetail Aggregate, Required

Records information necessary to process a particular request. Examples of a request is the ordering of a product.

CreateMonitoringProfileResponse { TransactionDetail { ApplicationTransactionID string up to 64 chars., Optional

A number assigned by the calling application to uniquely identify this request.

CreateMonitoringProfileResponse { TransactionDetail { ServiceTransactionID string up to 64 chars., Required

A number assigned by the D&B service to uniquely identify this transaction.

CreateMonitoringProfileResponse { TransactionDetail { TransactionTimestamp DateTimestamp, Required

The date and time when this request was submitted or the date and time when the requesting intermediary, such as a workflow manager or service bus, sent the message to the D&B function, i.e., the date and time when the xml document was created by the requesting intermediary.

END: CreateMonitoringProfileResponse } TransactionDetail /Aggregate
CreateMonitoringProfileResponse { TransactionResult Aggregate, Required

An aggregate that can repeat multiple times to record the different outcomes of the transaction.

CreateMonitoringProfileResponse { TransactionResult { SeverityText string up to 16 chars., Required

Text that records the criticality of the outcome, e.g., Information, Warning, Error, Fatal.

CreateMonitoringProfileResponse { TransactionResult { ResultID string up to 32 chars., Required

An alphanumeric string that uniquely identifies the outcome of the transaction.

CreateMonitoringProfileResponse { TransactionResult { ResultText string up to 512 chars., Optional

Text that explains the outcome of the transaction.

CreateMonitoringProfileResponse { TransactionResult { ResultMessage Aggregate, Optional (Infinite)

An aggregate that can repeat multiple times to record textual data that expands on the ResultID and ResultText to provide additional information to the user regarding the status of the transaction. If the status implies that there is a problem this may also provide guidance to the user on how to address it.

CreateMonitoringProfileResponse { TransactionResult { ResultMessage { ResultDescription string up to 512 chars., Required

Text that describes the additional information regarding the outcome of the transaction.

END: CreateMonitoringProfileResponse } TransactionResult } ResultMessage /Aggregate
END: CreateMonitoringProfileResponse } TransactionResult /Aggregate
CreateMonitoringProfileResponse { CreateMonitoringProfileResponseDetail Aggregate, Optional

Records the details of events and their thresholds, set to the profile to monitor a DUNS or a set of DUNS.

CreateMonitoringProfileResponse { CreateMonitoringProfileResponseDetail { MonitoringProfileDetail Aggregate, Required

Records the preferences set on the monitoring parameters enrolled for the monitoring service.

CreateMonitoringProfileResponse { CreateMonitoringProfileResponseDetail { MonitoringProfileDetail { MonitoringProfileName string at least 1 chars. up to 64 chars. Pattern: {.*[^\s].*}., Required

A name that is provided by the user to the profile.

CreateMonitoringProfileResponse { CreateMonitoringProfileResponseDetail { MonitoringProfileDetail { MonitoringProfileID int, Required

A number that uniquely identifies a set of events and their thresholds, used to monitor a DUNS or a set of DUNS.

END: CreateMonitoringProfileResponse } CreateMonitoringProfileResponseDetail } MonitoringProfileDetail /Aggregate
CreateMonitoringProfileResponse { CreateMonitoringProfileResponseDetail { InquiryReferenceText Aggregate, Optional

Records data that allows the customer to specify information to be linked to the request in order to support subsequent order reconciliation.

CreateMonitoringProfileResponse { CreateMonitoringProfileResponseDetail { InquiryReferenceText { CustomerReferenceText string up to 240 chars., Optional(Up to 5x)

A freeform reference string provided by the customer to be linked to the product in order to support subsequent order reconciliation.

END: CreateMonitoringProfileResponse } CreateMonitoringProfileResponseDetail } InquiryReferenceText /Aggregate
END: CreateMonitoringProfileResponse } CreateMonitoringProfileResponseDetail /Aggregate
END: CreateMonitoringProfileResponse /Aggregate

Response Codes & Error Handling

Successful service requests will return a CM000 response code in the TransactionResult ResultID field. Otherwise, one of the D&B Direct standard response codes will be returned.

This operation may return the following response codes: CM001, CM002, CM004, CM007, CM014, CM023, SC001-SC009.

D&B Direct 2.0 API requests are provided on a metered basis; and may require entitlement prior to use in the production environment. In addition, a concurrency limit (QPS) is monitored to ensure that it is not exceeded. An error code will be returned in the event that a transaction is throttled.

While this operation is provided on a metered basis, usage is tracked; however, no billing for successful calls is recorded.

Operation-specific supplemental response code explanations:

Feature Notes

Here are some constraints of the <ChangeCondition> component in the Monitoring profile.

  • Profiles may have a single change condition or multiple change conditions per element.
  • The default condition for any element is AnyChange
  • <ChangeValue> values should match the data type of the element being monitored

The following table highlights the condition options applicable for each data type:

Data type Supported change condition
String AnyChange
Numeric AnyChange
String ValueEquals
Numeric ValueEquals
Numeric ValueIncreaseByPercentage
Numeric ValueDecreaseByPercentage
Numeric ValueChangeByPercentage
Numeric ValueIncreaseBy
Numeric ValueDecreaseBy
Numeric ValueChangeBy
Numeric ValueGoesBeyond
Numeric ValueGoesBelow
Boolean AnyChange
Date AnyChange
Date DateChangeBy
Date DateEquals
EnumString AnyChange
EnumString ValueEquals

Multiple Condittions

Multiple conditions may be specified for any one element, currently restricted to up to ten conditions. Multiple conditions may not be combined. The following operators support multicondition scenarios.

NOTE: Some of the following operators support single condition scenarios, as well as, multicondition scenarios.

Supported Operators

Operators

Description

Data Types SupportedOperands Supported
AND, And, andAND condition  
OR, Or, or

OR condition

  
= equal to Numeric/ Stringelement
!=not equal to Numericelement
< less thanNumericelement
> greater thanNumericelement
<= less than or equal to Numericelement
>= greater than or equal toNumericelement
ValueIncreaseByPercentageValueIncreaseByPercentageNumericelement
ValueIncreaseByPercentageValueDecreaseByPercentageNumericelement
ValueIncreaseByPercentage ValueChangeByPercentageNumericelement
ValueIncreaseByValueIncreaseByNumericelement
ValueDecreaseBy ValueDecreaseByNumericelement
ValueChangeByValueChangeByNumericelement
ValueGoesBeyond ValueGoesBeyondNumericelement
ValueGoesBelowValueGoesBelowNumericelement
ValueEquals ValueEqualsNumeric/ Stringelement, elementPrevious
ValueBecomesNullValueBecomesNullNumeric/ Stringelement
ValueBecomesNotNullValueBecomesNotNullNumeric/ Stringelement

 

Supported Operands

Operators

Description

Data Types Supported
elementRepresents the new value of the element after the changeNumeric, string
elementPrevious

Represents the previous value of the element before the change

String

 

Sample Multicondition Expression

Example

OperatorsOperands
((element < 25) AND (element > 100)) <, >element, 25, 100

An error code will be returned in the event that a given expression is invalid in the request.

What to do Next