| Status | |
|---|---|
| Owner | |
| Stakeholders | |
| Jira Request ID | |
| Jira Development ID |
The objective of this integration is to establish a robust middleware process that facilitates the automated transmission of Currency Exchange Rate Master data from SAP ECC(PRS, PF2-050) to the Icertis Contract Intelligence(ICI) platform. The integration ensures that Icertis always has up-to date currency and exchange-rate information essential for contract calculations and validations. This process performs the following functions.
This integration is triggered daily through a scheduled job to ensure that Icertis consistently receives the most recent exchange-rate information required for contract evaluation and processing.

Step | Description | Comment |
|---|---|---|
1 | SAP ECC(PRS, PF2-050) will execute the job daily to send latest currency Exchange Rate xml data to CPI | Through daily scheduled job at SAP ECC(PRS, PF2-050) side |
2 | Transform and map data to Icertis API format | Data mapping, validation, enrichment |
3 | Orchestrate data transmission to Icertis | API calls, error handling, logging |
4 | Receive response from Icertis | Success/failure, process feedback |
5 | Log results and handle exceptions by triggering an email to Support Team | No retry, data will be uploaded next day |
Secure authentication mechanisms are in place at middleware for access to both SAP ECC and Icertis systems:
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.
This interface is designed to facilitate seamless integration between Syniti (source) and Icertis (target) for currency/exchange rate master data. The middleware orchestrates the data flow, ensuring mapping, transformation, and reliable delivery
Requested Sample (Extract from SAP ECC):
| Exchange Rate Type | From Currency | To Currency | Valid From | Exchange Rate | Ration (from) | Ratio (to) |
|---|---|---|---|---|---|---|
| M | CHF | EUR | 08.07.2025 | /0,93510 | 1 | 1 |
| M | USD | EUR | 08.07.2025 | /117,22500 | 1 | 100 |
Currency conversion file generated as per ERP-110 Currency Conversion into Ariba .FS should be re-used for Icertis as well. CPI will filter out the EUR conversion rate.
From Currency | Unique Name | To Currency | Exchange Rate |
|---|---|---|---|
USD | USD:EUR | EUR | 0.86 |
CAD | CAD:EUR | EUR | 0.61 |
Transformation in CPI (Icertis required format):
| Field Name | Description | Value |
|---|---|---|
| ContractTypeName | Name of the Masteredata | Static value - ICMCurrencyConversion |
| NextState | Always Blank | |
| RequestIdentifier | 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 | Auto Increment (Eg: 1,2,3) |
| EndpointVersion |
| Static value - 3 |
| UseExternalId | Static value - true | |
| SysId | Unique technical identifier of the record |
|
| ICMUniqueName | Concatenate FromCurrency and ToCurrency with ":" colon in the middle | Pass Unique Name of the Currency Pairs |
| ICMFromCurrency | Get the To-currency from ECC extract | FromCurrency (Eg: USD, CAD) |
| ICMAgreementCode | Unique masterdata code | |
| ICMToCurrency | Get the From currency from ECC extract | ToCurrency - Static Value EUR |
| ICMRate | -Replace comma with period (.). -Remove the forward slash / (-1) | Rate (1.07) |
| TemplateSelection | Static Value - none | |
| EndPointVersion | Static Value - 1 |
Processing Logic
Inbound Trigger
Data Validation
Transformation
Routing
Error Handling
Monitoring & Logging
Delta or Full Load Requirements
Not Applicable
Error Handling
Interface Alert & Monitoring
Testing
| TC1 | Valid exchange rate data for Source to EUR currency pairs | Record is successfully created or updated in Icertis. |
| TC2 | Full load of records with valid EUR pairs | All records processed successfully; API response confirms success. |
| TC3 | Missing mandatory field. | Record is rejected; error logged; alert triggered |
| TC4 | Negative exchange rate | Validation error; record rejected. |
| Package Name | Parent Package |
|---|---|
Other Development Objects
| Object Type | Object Name | Purpose/High Level Logic | Design Rationale Reference |
|---|---|---|---|
Sample payload:
{
"Data": {
"JobItems": [
{
"SysId": "96c08d87-3c89-4b7d-b075-e360bb41db07",
"UseExternalId": "false",
"NextState": "",
"EndPointVersion": "3",
"RequestIdentifier": "1",
"RequestBody": {
"ICMFromCurrency": "INR",
"ICMRate": "0.0094",
"Name": "INR:EUR",
"ICMToCurrency": "EUR"
}
},
{
"SysId": "5449222c-3d3a-4044-baae-a17165381ed1",
"UseExternalId": "false",
"NextState": "",
"EndPointVersion": "3",
"RequestIdentifier": "2",
"RequestBody": {
"ICMFromCurrency": "AUD",
"ICMRate": "0.54",
"Name": "AUD:EUR",
"ICMToCurrency": "EUR"
}
}
],
"HasMoreData": "false",
"ContractTypeName": "ICMCurrencyExchangeRate"
}
} |
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.
