| Status | |
|---|---|
| Owner | RAI-ext, Praveen |
| Stakeholders | |
| Jira Request ID | |
| Jira Development ID |
| Parameter | Value |
|---|---|
| Application System (Source) | Syniti |
| Application System (Target) | Icertis |
| Source System Interface | Link to the wiki page describing the source system interface which feeds data into this Integration Process. If it is a standard, out-of-the-box API, please link to relevant documentation. |
| Target System Interface | Link to the wiki page describing the target system interface which receives data from this Integration Process. If it is a standard, out-of-the-box API, please link to relevant documentation. |
| Business Process Reference | 03.03.02 Manage Suppliers |
Currently, Icertis syncs Supplier Master Data with SAP Ariba Sourcing, capturing supplier names and details. However, SAP Ariba Sourcing does not store Purchasing Organization or Supplier Preferred Currency information. This creates a gap because:
To bridge this gap, an interface will be built where Syniti sends updated Supplier details (including Purchasing Organization and Supplier Preferred Currency) to SAP CPI, which then forwards the data to Icertis using the Bulk Master Data API for Supplier POrg and Currency Master.
![]()
Step | Description | Comment |
|---|---|---|
1 | Syniti sends supplier data CSV file (Supplier ID, Purchasing Org, and Supplier preferred Currency ) to CPI | Generates CSV file. Refer ERP-555 FS |
2 | CPI retrieves the existing data from Icertis via GET call and append the Icertis sysId for the existing records. New records for the initial load will be created | CPI invokes the Icertis API via GET call to retrieve existing supplier master records along with their SysIds. CPI compares the Supplier ID value from Icertis records with the Supplier ID records received from Syniti. If a match is found, CPI appends the corresponding SysId, to the outbound payload for create/update operation. If match is not found, CPI will create new records based on the supplier id. |
3 | CPI will Create/update the existing supplier master records in Icertis | Create/Update of the supplier master records in Icertis will be done using POST API call. |
{
"Data": {
"JobItems": [
{
"SysId": "96c08d87-3c89-4b7d-b075-e360bb41db07",
"UseExternalId": "false",
"NextState": "",
"EndPointVersion": "3",
"RequestIdentifier": "1",
"RequestBody": {
"ICMSupplierID": "ACN8876",
"ICMPurchaseOrg": ['YBE2 - SYENSQO / BE','YAU2 - SYENSQO /AR']
"ICMSupplierPreferredCurrency": "EUR"
}
},
{
"SysId": "5449222c-3d3a-4044-baae-a17165381ed1",
"UseExternalId": "false",
"NextState": "",
"EndPointVersion": "3",
"RequestIdentifier": "2",
"RequestBody": {
"ICMSupplierID": "ACN2665",
"ICMPurchaseOrg": ['YBE2 - SYENSQO / BE','YAU2 - SYENSQO /AR']
"ICMSupplierPreferredCurrency": "USD"
}
}
}
],
"HasMoreData": "false",
"ContractTypeName": "ICMSupplierPOrgandCurrency"
}
} |
Azure Application Registration
Since Icertis relies on Azure Active Directory as its identity provider (IdP), an application must be registered in Azure to enable OAuth 2.0 token generation and validation. This establishes trusted access between the middleware and the Icertis APIs.
The application registration includes defining the client ID, client secret, scope, and API permissions required to access the Icertis endpoints.
Data Structure
The following fields will be used to provide the required information for this interface:
| Field in Icertis | Description | Table | Field in ECC | Data Element | Field Description | Example Values |
|---|---|---|---|---|---|---|
| Supplier ID | SAP ID of the supplier pulled from ECC systems | LFM1 | LIFNR | LIFNR | Supplier | S1234 |
| Purchase Org | Multiple POrg associations for the supplier | LFM1 | EKORG | EKORG | Purchasing Organization | YAE9 - SYENSQO TMS /US, YBE2- SYENSQO / BE |
| Preferred Currency | Preferred currency of the Supplier | LFM1 | WAERS | WAERS | Order Currency | EUR |
Target Structure (Icertis)
The following fields will be used to provide the required information for this interface:
| Field | Description | Field Type | Max Length | Example Values |
|---|---|---|---|---|
| Supplier ID | SAP ID of the supplier pulled from ECC systems | String | 1000 characters | S1234 |
| Purchase Org | Multiple POrg associations for the supplier | Multi Select Choice | 1000 characters | YAE9 - SYENSQO TMS /US, YBE2- SYENSQO / BE |
| Preferred Currency | Preferred currency of the Supplier | String | 1000 characters | EUR |
Mapping and Calculation
Transformation in CPI (Icertis required format):
| Source Table | Source Field | Required (Y/N/O) | Description | Target Field | Required (Y/N) | Description | Rule Type | Rule Instruction |
|---|---|---|---|---|---|---|---|---|
| NA | NA | NA | NA | ContractTypeName | Y | Name of the Masterdata | Fixed Value | ICMSupplierPorgAndCurrencyMaster |
| NA | NA | NA | NA | NextState | Y | indicates the state of the contract type. For currency exchange rate as there is no next state, pass always blank. | Fixed Value | Blank/Empty |
| NA | NA | NA | NA | RequestIdentifier | Y | Use “RequestIdentifier” to uniquely identify each item on the result endpoint’s response. This can be used to track the status of each job item of a bulk Job | Increment | Auto Increment (E.g.: 1,2,3) |
| NA | NA | NA | NA | EndpointVersion | Y | “EndpointVersion” don’t have any default value set. Ensure to set it to a number. The recommended value is 3 for best error handling and reporting. Supported values are 1, 2, and 3. 1 – Not recommended, 2 – Enables attribute validation, and 3 – Handles concurrency errors and enables attribute validation. | Fixed Value | 3 |
| NA | NA | NA | NA | UseExternalId | Y | unique identifier for entities getting created from external systems | Fixed Value | false |
| Icertis-GET API | Sysid | O | Unique Identifier of the existing currency exchange rate record. | SysId | Y | Unique technical identifier of the record | Conditional |
|
| NA | Supplier ID | Y | SAP ID of the Supplier | Supplier ID | Y | Indicates the supplier SAP ID - ACN8876 | Copy | Direct mapping |
| NA | Purchase Org | Y | Specifies the applicable purchasing organization of the supplier | ICMPurchaseOrg | Y | Specifies the Supplier Purchase Org. It is an array with the list of applicable purchase org for the supplier | Copy | Direct mapping |
| NA | Preferred Currency | Y | Specifies the target currency for the exchange rate | ICMSupplierPrefferedCurrency | Y | Specifies the preferred currency of the supplier | Copy | Direct mapping |
| NA | NA | NA | NA | HasMoreData | Y | Indicates if there is more data that can be accessed by going to next page | Fixed Value | false |
Not Applicable
Not Applicable
Scheduled job will be triggered from CPI to Icertis to create/update Supplier Porg and Currency details in Supplier POrg and Currency Masterdata
Not Applicable
Not Applicable
Not Applicable
Not Applicable
| ID | Condition | Expected Results |
|---|---|---|
| TC01 | Generate Full Load of Supplier Details | Full load CSV file transformed successfully to Icertis |
| TC02 | Generate daily full load of updated supplier details (POrg and Preferred Currency) | Delta file successfully sent to Icertis |
| TC03 | Partial batch failure due to mandatory fields missing | Fails the entire batch |
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.

ACN8876