Status

  Approved

Owner
Stakeholders
Jira Request ID

ERP-101 - Getting issue details... STATUS

Jira Development ID

ERP-290 - Getting issue details... STATUS

High- Level Specification

ParameterValue
Application SystemIcertis
Business Process Reference03.03.04.05. Manage Contract Master Data

Functional Overview

Syniti, the source system for currency conversion master data, will be integrated with Icertis to create and update currency exchange master data records in a custom Currency Exchange Master Data table within Icertis.

This integration will be executed via SAP CPI, which will invoke the Icertis Business API to perform bulk upsert operations.

The exchange rates maintained in Icertis will be used to convert local currency values into Euros in agreements.

Records will be created or updated daily in Icertis. The objective of this FS is to create Currency Exchange Masterdata in Icertis so that the currency exchange rates can be maintained.

Scope and Objectives

Functional Scope:

This document outlines the functional configuration required in Icertis to support the creation and maintenance of currency exchange master data sourced from Syniti.

Scope Includes:

  1. Creation and update of currency exchange master data in Icertis.
  2. Daily update of exchange rates.

Functional Objectives:

  1. Ensure Accurate Currency Conversion

    • Maintain up-to-date exchange rates for converting local values to Euros in contracts.
  2. Maintain Data Integrity

    • Prevent outdated or duplicate exchange rate records.
  3. Enable Auditability and Traceability

    • Ensure all exchange rate records are timestamped and sourced for compliance and audit purposes. In Icertis when the masterdatas record is created, system automatically generates the Modified Date and time stamp as displayed below
  4. Minimize Manual Intervention

    • Automate the daily currency exchange masterdata update process to reduce errors and improve efficiency.

Out of Scope:

  1. Deletion of any existing currency exchange masterdata record
  2. De-activating any existing currency exchange masterdata record


Process Flow Diagram

Step

Description

Comment

1

CPI will call the Icertis Currency API daily, upon receiving data from Syniti, to create or update the currency exchange master data. It will send only the Source-to-EUR direct rates and update the existing currency exchange master data records accordingly

CPI to Icertis 

Assumptions

  • Not Applicable.

Dependencies

  • Not Applicable.

Security, Integrity and Controls

  • Authentication: Access to Create Masterdata Contract Type (CT)
  • A new security group to be created for the Integration Users with manage access to Currency Exchange Master CT. The new security group title will be "Integration User"

Different Integration Users

We will be using different users for CPI integration, IAG integration, Ariba Integration. All the users will be placed under Integration User security group

Configuration Requirements

  • Configure Currency Exchange Masterdata CT in Icertis with below details:
ParentFieldDescriptionMandatory (Y/N)Data Type
ICMCurrencyExchangeRateSourceCurrencyCurrency code of the local currencyYString
ICMCurrencyExchangeRateTargetCurrencyCurrency code of the target currency (EUR)YString
ICMCurrencyExchangeRateRateConversion rate from source to targetY

Number - Decimal upto 4 points. Eg: 01.8228

01.0003

01.3001

ICMCurrencyExchangeRateUnique NameName FieldYString


Following Technical Configuration is required to enable integration between CPI & Icertis using ICI Business API

  • OAuth Setup

    • Microsoft Identity Platform
      • Register application in Microsoft Identity Platform
      • Capture the following details from IDP     
InformationDescription
Application (client) IDApplication Id for the App created for accessing ICI API’s
Directory (tenant) IDTenant Id for the App created for accessing ICI API’s
Object IDObject Id for the App created for accessing ICI API’s
OpenID Connect metadata documentMetadata document URL for the App created for accessing ICI API’s
    • Icertis Side Configuration

      • Configure new masterdata CT in Icertis to store currency exchange rates 
      • Create an Integration User (CPI Integration User) in Icertis with Admin access.
      • Create Security Group "Integration User" with Manage access to Currency Exchange Rate CT.
      • Configure the following OAuth keys in Icertis json file:
Key Values
Core.API.OAuth.STSDiscoveryEndpointhttps://login.microsoftonline.com/{Directory (tenant) ID}/v2.0/.well-known/openid-configuration
Core.API.OAuth.ValidAudiencesapi://{Client ID}
Core.API.OAuth.ValidIssuerhttps://sts.windows.net/{Directory (tenant) ID}/
Core.API.OAuth.ExternalUpnClaimUrihttp://schemas.microsoft.com/identity/claims/objectidentifier

Special Requirements

  • Localization: Ensure currency formats comply with regional standards (e.g., decimal separators).


Design Rationale

Create a currency exchange rate masterdata CT in Icertis which will store the currency exchange rates from Syniti.

Data Structure

The following fields will be configured in Icertis to provide the required data structure of the interface:

ParentFieldDescriptionMandatory (Y/N)Data Type
ICMCurrencyExchangeRateSourceCurrencyCurrency code of the local currencyYString
ICMCurrencyExchangeRateTargetCurrencyCurrency code of the target currency (EUR)YString
ICMCurrencyExchangeRateRateConversion rate from source to targetY

Number - Decimal upto 4 points. Eg: 01.8228

01.0003

01.3001

ICMCurrencyExchangeRateUnique NameName FieldYString

API Fields Mapping:

Field NameDescriptionValue
ContractTypeNameName of the MasterdataStatic value - ICMCurrencyConversion
NextState
Always Blank
RequestIdentifierUse “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 JobAuto Increment (Eg: 1,2,3)
EndpointVersion
    • “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.
Static value - 3
UseExternalId
Static value - true
SysIdUnique technical identifier of the record
    • Blank when creating the masterdata
    • 32 characters when updating
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)
ICMAgreementCodeUnique 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

Calculation and Validation

Not Applicable

Processing Logic

    • The integration job runs daily.
    • Currency Conversion rates are pushed from a system interface to Icertis via CPI.

Delta or Full Load Requirements

    • Full Load:
      • The interface always pushes the complete set of exchange rates for all supported currencies, for a given date. This does not process historical data. 
      • No delta tracking is required since the data is refreshed daily.

Interface Alert & Monitoring

    • Not Applicable as this FS objective is to create a masterdata CT in Icertis

Language Requirements

    • No multilingual support required for exchange rate data.
    • All fields are numeric or standard ISO codes.

User Interface Requirements

Not Applicable


Volumetrics

  • See the appendix for the list of Currencies which needs to be converted to Euros


Performance Consideration

Scheduling and Execution Window

  • The integration job should be scheduled during off-peak hours daily to avoid contention with other system processes.
  • The priority of the jobs will be decided based on the other jobs mentioned in the list DD-TEC-130 R2 Batch Jobs Register and Schedule


Error Handling

Not Applicable


Testing

Test Conditions and Expected Results

IDConditionExpected Results
TC1For the initial load, create new exchange rate masterdata. Valid exchange rate data for Source to EUR currency pairs is pushed from CPI to IcertisRecords are successfully created in Icertis.
TC2For subsequent loads, update the existing masterdata records from CPI to IcertisAll records updated successfully; API response confirms success.
TC3Missing mandatory field in the data load sent  from CPI to IcertisStatus of batch job should be rejected; error logged; An email notification alert is triggered in CPI

Test Considerations/Dependencies

Not Applicable


Other Information

Not Applicable


Development Details

Package

Package NameParent Package




Other Development Objects

Object TypeObject NamePurpose/High Level LogicDesign Rationale Reference









Appendix

Sample payload:

{

  "Messages": null,

  "Data": {

    "ContractTypeName": "ICMCurrencyExchangeRate",

    "JobItems": [

      {

        "NextState": "",

        "RequestIdentifier": 1,

        "EndpointVersion": null,

        "UseExternalId": true,

        "SysId": "5449222c-3d3a-4044-baae-a17165381ed1",

        "RequestBody": {

          "ICMUniqueName": "AUD:EUR",

          "Name": "Masterdata_1_created",

          "ICMFromCurrency": "AUD",

          "ICMAgreementCode": "ICMCurrencyExchangeRate_19",

          "ICMToCurrency": "EUR",

           "ICMRate": "0.59",

          }

        },

        "TemplateSelection": "none",

        "EndPointVersion": 3

      },

      {

        "NextState": "",

        "RequestIdentifier": 2,

        "EndpointVersion": null,

        "UseExternalId": false,

        "SysId": "96c08d87-3c89-4b7d-b075-e360bb41db07",

        "RequestBody": {

         "ICMUniqueName": "INR:EUR",

          "Name": "Masterdata_2_created",

          "ICMFromCurrency": "INR",

          "ICMAgreementCode": "ICMCurrencyExchangeRate_20",

          "ICMToCurrency": "EUR",

           "ICMRate": "0.0099",

          }

        },

        "TemplateSelection": "none",

        "EndPointVersion": 3

      }

    ]

  },

  "HasMoreData": false,

  "PagingData": null

}



See also


  File Modified
File ~CPI to Icertis Currency Conversion.tmp draw.io Draft Nov 03, 2025 by RAI-ext, Praveen
File CPI to Icertis Currency Conversion draw.io diagram Nov 03, 2025 by RAI-ext, Praveen
Microsoft Excel Spreadsheet Currency Conversion for Icertis.xlsx Oct 29, 2025 by RAI-ext, Praveen

Change log

Version Published Changed By Comment
CURRENT (v. 30) Nov 19, 2025 13:36 WENNINGER-ext, Sascha
v. 33 Nov 17, 2025 08:58 WENNINGER-ext, Sascha
v. 32 Nov 12, 2025 14:53 MCARTHUR-ext, Richard
v. 31 Nov 06, 2025 02:59 EPASINGHE-ext, Kapila
v. 30 Nov 04, 2025 12:35 WENNINGER-ext, Sascha
v. 29 Nov 04, 2025 12:28 WENNINGER-ext, Sascha
v. 28 Nov 04, 2025 11:23 RAI-ext, Praveen
v. 27 Nov 04, 2025 11:19 RAI-ext, Praveen
v. 26 Nov 03, 2025 07:28 RAI-ext, Praveen
v. 25 Nov 03, 2025 07:06 RAI-ext, Praveen

Go to Page History

5 Comments

  1. Once both comments are processed, I can approve the review.

    1. Hi Wytse, I have responded to your comments. Thanks.

      1. Hi Wytse, 

        Thanks, created a new section Out of Scope -


        We should also not allow to de-activate any existing records through integration as it is very rare that any standard currency exchange will be deactivated.

  2. Hi BEZEMER-ext, Wytse Could you please help complete the tech review. In this FS, we are just configuring the Currency Exchange Masterdata. In FS 289 we have defined the technical requirements for CPI to Icertis integration.

  3. RAI-ext, Praveen please resolve the comments (also from Rajesh and Kapila).