| Status | |
|---|---|
| Owner | |
| Stakeholders | RAI-ext, Praveen BAVISKAR-ext, Amit |
| Jira Request ID | |
| Jira Development ID |
| Parameter | Value |
|---|---|
| Application System (Source) | Ariba |
| Application System (Target) | Icertis |
| Source System Interface | Ariba |
| Target System Interface | Icertis |
| Business Process Reference | 03.03.04.05. Manage Contract Master Data |
To ensure consistent and automated management of supplier records across systems, a custom integration and job scheduling solution will be implemented. This solution will:
Scope and Objectives

Step | Description | Comment |
|---|---|---|
1 | Schedule Job in Icertis | A configurable daily job triggers the synchronization process (delta update) |
2 | Connect to Ariba via API | The job establishes a connection to Ariba |
3 | Retrieve Inactive Supplier Records | Fetches data from inactive suppliers from Ariba |
4 | Deactivate suppliers in Icertis via Business Bulk API | Uses Business bulk API to update the status |
5 | Ensure data integrity | Mark identified suppliers as Deactivated in Icertis |
Dependencies
Not Applicable
Not Applicable
API Credentials: Secure storage and management of authentication tokens is ensured. Icertis securely stores all configuration data required to invoke Ariba APIs..
Endpoint Configuration: URLs for supplier data retrieval (full list and delta updates).
Not Applicable
Data Structure
| Field | Description |
|---|---|
| Active (Boolean field) | Active: Active = "True" Inactive: Active = "False" |
The following field within the table ICMSupplierMaster will be used to provide the required information for this interface:
| Field | Description |
|---|---|
| Status (String field) | Active: Status = "Created" Inactive: Status = "Deactivated" |
In this integration, the Active field from Ariba (a boolean) will be mapped to the Status field in Icertis (a string). The mapping logic is as follows:
If Active = FALSE, then Status = "Deactivated"
This transformation ensures compatibility between the data models of both systems and supports accurate status representation during synchronization
| Source Table | API or Portlet Name | Source Field | Required (Y/N) | Description | Target Table | API or Portlet Name | Target Field | Required (Y/N) | Description | Rule Type | Rule Instruction |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Supplier Master | Master Data Retrieval API for Sourcing | Active | Y | ICMSupplierMaster | /v{version}/bulk/masterdata | Status | Y | ||||
Not Applicable
APIs Used:
Ariba Supplier API (for inactive supplier retrieval) : Master Data Retrieval API for Sourcing
Icertis Business Bulk API (for supplier deactivation) : POST/v{version}/bulk/masterdata
Ariba Supplier API (for Inactive supplier retrieval) Master Data Retrieval API for Sourcing request looks like below:
Note that this API directly filters the suppliers and provide only inactive suppliers.
curl --location 'https://eu.openapi.ariba.com/api/sourcing-mds-search/v1/prod/entities/organizations?$filter=(Active eq false and TimeUpdated gt 2025-11-25T00:00:00Z)&%24includeInactive=true' \ --header 'Accept-Language: en' \ --header 'X-Realm: 745255310-SS-T' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <Your Auth Toke>' \ --header 'apiKey: VJfuIdNt5gi5DqkNOFdXMv92HWGaA81j' |
The example looks like:
{
"DynamicProfileSyncStatus": "0",
"IsCustomer": "false",
"MinorityOther": "",
"MinorityNativeAmerican": "false",
"CorporatePhone": "",
"Name_en": "Ariba P2P Test Supplier",
"CorporateURL": "",
"SystemID": "sid111",
"SystemId": "AN11228658404-T",
"IsOrgApproved": "2",
"AODMigrationStatus": "0",
"OrganizationType": "",
"TimeUpdated": "2025-10-04 00:31:30.811",
"TimeCreated": "2025-05-25 21:17:29.899",
"CorporateEmailAddress": "",
"AODDataSyncScn": "0",
"HasTradingRelationship": "false",
"Active": "false",
"HierarchyPath": "/CCNSAINDMDGykWJ",
"IsSupplier": "true",
"StateOfIncorporation": "",
"CorporateFax": "",
"IsManaged": "0"
} |
Icertis Business Bulk API (for supplier deactivation) : POST /v{version}/bulk/actions/trigger
Sample payload:
{
"Data": {
"TypeOfContract": "Masterdata",
"ContractTypeName": "ICMAccountEntityMaster",
"JobItems": [
{
"RequestIdentifier": "MD123",
"Id": "739caf5b-2c9b-4ba0-9dc7-b4cfbd0cf4b3",
"Action": "Deactivate",
"EndpointVersion": 2,
"UseExternalId": true,
"RequestBody": {
"EntityName": "ICMAccountEntityMaster",
"Id": "739caf5b-2c9b-4ba0-9dc7-b4cfbd0cf4b3",
"Note": "Test Bulk Action",
"IsPrivate": true,
"ReasonCode": {
"UniqueValues": [
"763A18D2-63DB-4E39-8500-0B8BBB3697E7"
],
"DisplayValue": "01",
"ExternalId": null
}
}
}
]
}
} |
Not Applicable.
Not Applicable.
Delta or Full Load Requirements
SYNC" timestamp in the master data payload of the bulk API.Interface Alert & Monitoring
No alerts are generated; however, monitoring is managed through the Error Handling process described in the dedicated section below.
Interface Reporting
Not Applicable
Language Requirements
Not Applicable
User Interface Requirements
Not Applicable
| Resource Type | Max items per job |
|---|---|
| Master Data | 5000 |
Delta records since the last run job.
The execution of the scheduled job in Icertis should be carefully timed to avoid overlap with other system batch processes and to minimize impact during peak business hours. Scheduling should take into account system maintenance windows and existing job loads to ensure optimal performance and reliability.
Further considerations: Ariba Rate Limit (Requests): 10/sec, 40/minute, 200/hour, 1000/day - The rate limit will consume the bandwidth for the standard MD if both share the same application.
SAP Ariba API Errors
If the API call to SAP Ariba fails, an error entry will be created in a designated log table within Icertis to capture details of the failure for monitoring and troubleshooting.
Icertis Bulk API Invocation Errors
If the invocation of the Icertis Business Bulk API fails, the error will be logged in the same log table to ensure traceability and support issue resolution.
Icertis Bulk API Processing Errors
If errors occur during the processing of supplier records via the Bulk API, Icertis will automatically generate out-of-the-box error logs in its standard log table, ensuring system-level traceability.
| ID | Condition | Expected Results |
|---|---|---|
| 1 | Initial Full Load First run of the job with full supplier list from Ariba. |
|
| 2 | Daily Delta Update |
|
| 3 | Supplier Reactivation in Ariba |
|
| 4 | API Connectivity Failure Ariba API is unavailable during job execution. |
|
| 5 | Data Integrity Check Supplier record in Icertis already marked inactive before job runs. |
|
Not Applicable
| Package Name | Parent Package |
|---|---|
Other Development Objects
| Object Type | Object Name | Purpose/High Level Logic | Design Rationale Reference |
|---|---|---|---|
Insert links and references to other documents which are relevant when trying to understand this decision and its implications. Other decisions are often impacted, so it's good to list them here with links. Attachments are also possible but dangerous as they are static documents and not updated by their authors.
