Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Status

Page Status

Owner
Stakeholders
Jira Request ID

Jira
serverSyensqo's Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdd8efc1ef-48bd-3b4e-8714-ad827f4f059b
keyERP-101

Jira Development ID

Jira
serverSyensqo's Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdd8efc1ef-48bd-3b4e-8714-ad827f4f059b
keyERP-290

High- Level Specification

Implementing SystemIcertis
Invoked byERP-289
ParameterValue
Application System (Source)Syniti
Application System ( Target)Icertis
Business Process Reference03.03.04.05. Manage Contract Master Data

Functional Overview

Syniti which is the source of Currency Conversion Master Data SAP ECC, the source system for currency conversion master data, will be integrated with Icertis to create and update currency exchange masterdata master data records in Icertis a custom Currency Exchange masterdata table using 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.

This Exchange rate

The exchange rates maintained in Icertis will be used to convert

the

local

Value

currency values into Euros

to identify the DOA approvers

in

agreement

agreements.

In Icertis, records

Records will be created

/

or updated

in bulk once in a month preferably 1st of every month and it will take the rate of last date of the previous month

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 interface facilitates the monthly integration of currency exchange rates from Syniti into Icertis Contract Intelligence (ICI) to support accurate financial calculations and DOA (Delegation of Authority) logic in contractsdocument outlines the functional configuration required in Icertis to support the creation and maintenance of currency exchange master data sourced from SAP ECC.

Scope Includes:

  1. Source System:

    • Syniti as the master source for currency exchange rates.
  2. Target System:

    • Icertis, with a custom Currency Exchange Master Data table.
  3. Integration Mechanism:

    • Syniti will call Icertis Business API used for bulk creation and update of masterdata records.
  4. Data Elements Transferred:

    • Source Currency
    • Target Currency (EUR)
    • Exchange Rate
    • Effective Date (last day of previous month)
    • Rate Source (Syniti)
    • Timestamp of update
  5. Frequency:

    • Monthly, preferably on the 1st of each month.
  6. Operation Type:

    • Bulk Upsert (create new or update existing records).
  7. Usage in Icertis:

    • Used to convert local currency values to Euros.
    • Enables correct DOA approver identification based on Euro thresholds.
  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. Support DOA Logic in Agreements

    • Enable automated identification of approvers based on Euro-converted contract values.
  3. Maintain Data Integrity

    • Prevent outdated or duplicate exchange rate records.
    • Ensure historical accuracy by using the rate from the last day of the previous month.
  4. 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 belowImage Added
  5. Minimize Manual Intervention

    • Automate the monthly 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

API Information

Get bulk api prepare for masterdata

POST/v{version}/bulk/masterdata/prepare

Sample Request

POST/{{baseUrl}}/{{version}}/bulk/masterdata/prepare

{

"Data": {

"ContractTypeName": "ICMOtherPartyMaster",

"SelectedAttributes": []

}

}

Create or update masterdata records in Bulk

POST/v{version}/bulk/masterdata

Process Flow Diagram


Process Flow Diagram

draw.io Board Diagram
bordertrue
diagramNameCPI to Icertis Currency Conversion
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth441
height182
revision1
Image Removed

2

Once in a month, Syniti

Step

Description

Comment

1

The execution of the interface is triggered as per the defined job schedule

CPI will call the Icertis

Business API's to create/update currency exchange masterdata

Assumptions

  • Syniti will provide validated and complete exchange rate data for all required currency pairs.
  • The exchange rate for the last day of the previous month will be available in Syniti by the 1st of the current month.
  • Icertis Business API will support bulk upsert operations without performance degradation.
  • The Icertis custom Currency Exchange master table is already configured and accessible via API.
  • Exchange rates will be used only for DOA logic and not for financial reporting or invoicing.
  • No real-time updates are required; monthly sync is sufficient.
  • Error handling and logging will be managed by the middleware or integration layer.
  • The integration will be triggered by a scheduled job or batch process on the 1st of each month.

Dependencies

  • Syniti Data Availability: Exchange rate data must be finalized and accessible by the 1st of each month.
  • Icertis API Availability: Business API must be operational and accessible during the integration window.
  • Middleware/ETL Tool: A tool or service must be in place to extract data from Syniti and push it to Icertis.
  • Authentication Setup: Secure tokens or credentials must be configured for API access.
  • Schedule Dependency: This interface must run after Syniti’s daily currency update job completes.
  • Team Coordination: Dependencies on Syniti data team and Icertis integration team for support and monitoring.

Security, Integrity and Controls

  • Authentication: API access to Icertis must use secure OAuth tokens or API keys.
  • Authorization: Only designated integration service accounts should have write access to the Currency Exchange master table.
  • Encryption: Data in transit must be encrypted using HTTPS/TLS.
  • Audit Logging: All API calls and data changes must be logged for audit purposes.
  • Data Validation: Exchange rates must be validated for completeness and correctness before pushing to Icertis.

Configuration Requirements

  • Icertis Custom Table: Must include fields for Source Currency, Target Currency, Exchange Rate, Effective Date, Source System, and Timestamp.
  • API Endpoint Configuration: Business API endpoints must be configured to accept bulk upsert payloads.
  • Job Scheduler: A scheduler (e.g., Control-M, SAP PO, or custom script) must be configured to run the job monthly.
  • Currency API daily, upon receiving data from SAP ECC, 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"
    Info
    titleDifferent 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
    Error Handling Rules: Define retry logic, failure notifications, and fallback mechanisms.

    Special Requirements

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


    Design Rationale

    This interface is designed as an API consumer. Icertis will consume data from Syniti via a scheduled integration that uses the Icertis Business API to create or update currency exchange master data records.

    The API will be used to:

    • Push monthly exchange rates from Syniti to Icertis.
    • Ensure that the latest rates are available for contract value conversion and DOA logic.

    API Use

    • Type: API Consumer
    • System Consuming API: Icertis
    • System Providing API: Syniti (or middleware extracting from Syniti)
    Data

    Create a currency exchange rate master data CT in Icertis which will store the currency exchange rates

    Data Structure

    The following fields will be

    used

    configured in Icertis to provide the required data structure of the interface:

    ParentFieldDescriptionMandatory (Y/N)Data Type
    ExchangeRateICMCurrencyExchangeRateSourceCurrencyCurrency code of the local currencyYString
    ExchangeRateICMCurrencyExchangeRateTargetCurrencyCurrency code of the target currency (EUR)YString
    ExchangeRateICMCurrencyExchangeRateRateConversion rate from source to targetY

    Number - Decimal

    ExchangeRateEffectiveDateDate the rate is valid fromYDate
    ExchangeRateSourceSystemSystem providing the rate (Syniti)YString
    ExchangeRateLastUpdatedTimestamp of last updateYDateTime

    Calculation and Validation

    ParentFieldRule TypeRule InstructionExchangeRateRateValidationMust be > 0ExchangeRateEffectiveDateValidationMust be the last day of the previous monthExchangeRateSourceCurrencyValidationMust be a valid ISO currency codeExchangeRateTargetCurrencyValidationMust be 'EUR'

    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

    ExchangeRateLastUpdatedCalculationAuto-populated during integration

    Processing Logic

      • The integration job runs
    • on the 1st of each month
      • daily.
    • It fetches exchange rates from Syniti for the last day of the previous month.
    • The data is transformed into the required format and pushed to Icertis via the Business API.
    • The API performs bulk upsert: updates existing records or creates new ones.
    • Errors are logged and flagged for manual review.
      • 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
    • monthly
        • daily.

    Interface Alert & Monitoring

    • Alerts should be configured for:
      • API failures
      • Missing or incomplete data
      • Validation errors
    • Monitoring tools (middleware logs) should notify:
      • Integration support team
      • Business users (email)
    • Retry logic should be in place for transient failures.
      • 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 (e.g., early morning on the 1st of each month) daily to avoid contention with other system processes.

    Error Handling

    Validation Errors

    • Cause: Missing mandatory fields, invalid currency codes, negative exchange rates.
    • Handling:
      • Reject the record.
      • Log the error with detailed message.
      • Notify integration support team via email or dashboard.
      • Continue processing remaining records.

    2. API Failures

    • Cause: Icertis Business API is unavailable, authentication failure, timeout.
    • Handling:
      • Retry up to 3 times with exponential backoff.
      • If retries fail, log the failure and raise an alert.
      • Notify support team with error code and timestamp.

    3. Data Load Failures

    • Cause: Payload formatting issues, bulk upsert failure.
    • Handling:
      • Validate payload structure before submission.
      • Use staging logs to identify failed records.
      • Allow manual reprocessing of failed records.

    4. Partial Success

    • Cause: Some records succeed, others fail due to validation or API issues.
    • Handling:
      • Log both successful and failed records.
      • Generate a summary report for review.
      • Provide reprocessing option for failed records.

    5. Missing Data from Syniti

    • Cause: Exchange rate data not available on schedule.
    • Handling:
      • Alert business users and integration team.
      • Optionally use previous month’s rates (if approved by business).
      • Flag contracts that rely on missing data for manual review.

    6. Monitoring and Alerts

    • Tools: Integration monitoring dashboard, email notifications, log files.
    • Recipients: Integration support team, business operations team.
    • Alert Types:
      • Job success/failure
      • Record-level validation errors
      • API connectivity issues
      • Missing or delayed data


    Error Handling

    Not Applicable


    Testing

    Testing

    How to Test

    Test Conditions and Expected Results

    IDConditionExpected Results
    TC1For the initial load, create new exchange rate masterdata. Valid exchange rate data for multiple Source to EUR currency pairs is pushed from CPI to IcertisRecords are Record is successfully created or updated in Icertis.
    TC2Full load of 100+ records.For subsequent loads, update the existing masterdata records from CPI to IcertisAll records processed updated successfully; API response confirms success.
    TC3Missing mandatory field .in the data load sent  from CPI to IcertisStatus of batch job should be Record is rejected; error logged; An email notification alert triggered
    TC4Invalid currency codeValidation error; record rejected
    TC5Negative exchange rateValidation error; record rejected.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:

    Code Block
    languagejs
    {
    
      "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
    
    }



    View file
    nameCurrency Conversion for Icertis.xlsx
    height250

    See also


    Attachments
    previewfalse
    patterns^(?!.*\.(png|jpg|jpeg|svg)$).*
    sortOrderdescending

    Change log

    Change History
    limit10