Introduction to EMIR
European Market Infrastructure Regulation (EMIR) is a European Union approach to increase efficiency and transparency of financial markets. It requires counterparties for OTC derivatives to report transaction data to competent trade repositories. EMIR phase 1 in Temenos Transact (since 2015) performs the OC reporting for the Treasury modules (Foreign Exchange, Swaps, Forward Rate Agreements and Derivatives).
The recent regulations amendment has significant operational changes in the life cycle of OTC derivatives transaction. To support these changes, the OTC derivatives operational workflows in Temenos Transact is enhanced to help banks to comply with their local regulatory norms in terms of reporting and clearing OTC trades.
Configuring EMIR
The user needs to configure the following requirements to enable reporting in European Market Infrastructure Regulation (EMIR) II regulation:
Installing OC Product
To install OC module in Temenos Transact, the user needs to ensure the following:
- OC product is added to System Property File (SPF).

- Company records have the OC application.

Setting Up Static Parameters
The parameter tables are mandatory to enable the OTC reporting functionality. In the below screenshot, the Corporate Sector field (in a record for the bank) is mapped to reporting data.
Setting Up PGM.FILE Record for Mapping Routines
The user needs to configure the following records in PGM.FILE (Type as ‘S’ and Product as ‘OC’), which supports EMIR reporting:
Record | Screenshot |
---|---|
OC.UPD.CPARTY.CORP.SECTOR |
|
OC.UPD.OTHER.CPARTY.ID |
|
OC.UPD.OTH.CPARTY.ID.TYPE |
|
OC.UPD.ID.TYPE.BENEFICIARY |
|
OC.UPD.PROD.TYPE |
|
OC.UPD.PRICE.CURRENCY |
|
OC.UPD.LEVEL |
|
OC.UPD.VAL.DATE.TIME |
|
OC.UPD.FIXED.LEG2.RATE.DAY.COUNT |
|
OC.UPD.FIXED.LEG.PAYMENT.MULT |
|
OC.UPD.FIXED.LEG2.PAYMENT.FREQ
|
|
OC.UPD.FLOAT.LEG.PAYMENT.MULT |
|
OC.UPD.FLOAT.LEG2.PAYMENT.FREQ |
|
OC.UPD.FLOAT.LEG2.PAYMENT.MULT |
|
OC.UPD.FLOAT.RR.MULT.LEG1 |
|
OC.UPD.FLOAT.RR.FREQ.LEG |
|
OC.UPD.FLOAT.RR.MULT.LEG2 |
|
OC.UPD.STRIKE.PRICE.NOTATION |
|
Creating Database and Mapping Fields
The following records are required to create a database and map the fields:

If the reporting database file name is OC.TRADE.DATA, then ID of PARMS record needs to have the database name (that is, OC.TRADE.DATA). The user needs to enter the required values in the following fields:
- Field Name.1
- Field Fmt.1
- Fld Val Rtn.1
The following fields are introduced in TX.TXN.BASE.PARMS to support EMIR II reporting:
- PRICE.CURRENCY
- OTHER.CPARTY.ID.TYPE
- ID.TYPE.BENEFICIARY
- PROD.CLASSIFICATION.TYPE
- PROD.CLASSIFICATION
- PROD.IDEN.TYPE
- PROD.IDENTIFICATION
- LEVEL
- FIXED.LEG2.RATE.DAY.COUNT
- FIXED.LEG.PAYMENT.MULT
- FIXED.LEG2.PAYMENT.FREQ
- FIXED.LEG2.PAYMENT.MULT
- FLOAT.LEG.PAYMENT.MULT
- FLOAT.LEG2.PAYMENT.FREQ
- FLOAT.LEG2.PAYMENT.MULT
- FLOAT.RR.MULT.LEG1
- FLOAT.RR.FREQ.LEG
- FLOAT.RR.MULT.LEG2
- STRIKE.PRICE.NOTATION
- MAT.DATE.UNDERLYING
- COMPLEX.TRADE.ID
- The FIXED.LEG2.RATE.DAY.COUNT to FLOAT.RR.MULT.LEG2 fields are applicable only for the Swap reporting.
- The STRIKE.PRICE.NOTATION, MAT.DATE.UNDERLYING, and COMPLEX.TRADE.ID fields are applicable only for DX.TRADE.
- The Complex Trade ID field is applicable for Foreign Exchange (
FX
) and DX.TRADE.
A sample TX.TXN.BASE.PARMS record for OC.TRADE.DATA is shown in the below screenshot.
- Remove the field added in the database
- Add new fields in between existing fields (but can add it at the end)

If the reporting database file name is OC.VAL.COLL.DATA, then ID of PARMS record needs to have the database name (that is, OC.VAL.COLL.DATA). The user needs to enter the required values in the following fields:
- Field Name.1
- Field Fmt.1
- Fld Val Rtn.1
The following new fields are introduced in the TX.TXN.BASE.PARMS to support the EMIR II reporting:
- VAL.DATE.TIME
- INITIAL.MARGIN.POSTED
- CCY.IN.MAR.POSTED
- VARIATION.MARGIN.POSTED
- INITIAL.MARGIN.RECEIVED
- CCY.IN.MAR.RECEIVED
- VARIATION.MARGIN.RECEIVED
- EXCESS.COLL.POSTED
- CCY.EXC.COLL.POS
- EXCESS.COLL.RECEIVED
- CCY.EXC.COLL.REC
- CCY.VAR.MAR.POSTED
- CCY.VAR.MAR.REC
A sample screenshot of TX.TXN.BASE.PARMS record for OC.VAL.COLL.DATA is shown in the below screenshots.




This application enables the user to map the fields. The ID of the record needs to be in the following format: APPLICATION*OC.TRADE.DATA.
- FRA.DEAL*OC.TRADE.DATA
- ND.DEAL*OC.TRADE.DATA
- SWAP*OC.TRADE.DATA
- DX.TRADE*OC.TRADE.DATA
- FOREX*OC.TRADE.DATA
Although, transaction reporting database (OC.TRADE.DATA) is the same for all OTC applications, the user have to define the mapping record for every OTC application that needs to be reported. The following is the list of field mapping routines released under core:
CPARTY | |||||
---|---|---|---|---|---|
OC.TRADE.DATA Field | Forward Rate Agreements (FRA) | Non-Deliverable Forward (NDF) | Swaps (SW) | DX.TRADE | Foreign Exchange (Forex or FX) |
CPARTY.CORP.SECTOR | OC.UPD.CPARTY.CORP.SECTOR | OC.UPD.CPARTY.CORP.SECTOR | OC.UPD.CPARTY.CORP.SECTOR | OC.UPD.CPARTY.CORP.SECTOR | OC.UPD.CPARTY.CORP.SECTOR |
OTHER.CPARTY.ID | OC.UPD.OTHER.CPARTY.ID | OC.UPD.OTHER.CPARTY.ID | OC.UPD.OTHER.CPARTY.ID | OC.UPD.OTHER.CPARTY.ID | OC.UPD.OTHER.CPARTY.ID |
PRICE.NOTATION | OC.UPD.PRICE.NOTATION | OC.UPD.PRICE.NOTATION | OC.UPD.PRICE.NOTATION | OC.UPD.PRICE.NOTATION | OC.UPD.PRICE.NOTATION |
New Field Changes | |||||
---|---|---|---|---|---|
OC.TRADE.DATA Field | FRA | NDF | SW | DX.TRADE | FX |
PRICE.CURRENCY | NA | NA | OC.UPD.PRICE.CURRENCY | NA | OC.UPD.PRICE.CURRENCY |
OTHER.CPARTY.ID.TYPE | OC.UPD.OTH.CPARTY.ID.TYPE | OC.UPD.OTH.CPARTY.ID.TYPE | OC.UPD.OTH.CPARTY.ID.TYPE | OC.UPD.OTH.CPARTY.ID.TYPE | OC.UPD.OTH.CPARTY.ID.TYPE |
ID.TYPE.BENEFICIARY | OC.UPD.ID.TYPE.BENEFICIARY | OC.UPD.ID.TYPE.BENEFICIARY | OC.UPD.ID.TYPE.BENEFICIARY | OC.UPD.ID.TYPE.BENEFICIARY | OC.UPD.ID.TYPE.BENEFICIARY |
PROD.CLASSIFICATION.TYPE | OC.UPD.PROD.TYPE | OC.UPD.PROD.TYPE | OC.UPD.PROD.TYPE | OC.UPD.PROD.TYPE | OC.UPD.PROD.TYPE |
PROD.CLASSIFICATION | LINEAR | LINEAR | LINEAR | LINEAR | LINEAR |
PROD.IDEN.TYPE | LINEAR | LINEAR | LINEAR | LINEAR | LINEAR |
PROD.IDENTIFICATION | LINEAR | LINEAR | LINEAR | LINEAR | LINEAR |
LEVEL | OC.UPD.LEVEL | OC.UPD.LEVEL | OC.UPD.LEVEL | OC.UPD.LEVEL | OC.UPD.LEVEL |
FIXED.LEG2.RATE.DAY.COUNT | NA | NA | OC.UPD.FIXED.LEG2.RATE.DAY.COUNT | NA | NA |
FIXED.LEG.PAYMENT.MULT | NA | NA | OC.UPD.FIXED.LEG.PAYMENT.MULT | NA | NA |
FIXED.LEG2.PAYMENT.FREQ | NA | NA | OC.UPD.FIXED.LEG2.PAYMENT.FREQ | NA | NA |
FIXED.LEG2.PAYMENT.MULT | NA | NA | OC.UPD.FIXED.LEG2.PAYMENT.MULT | NA | NA |
FLOAT.LEG.PAYMENT.MULT | NA | NA | OC.UPD.FLOAT.LEG.PAYMENT.MULT | NA | NA |
FLOAT.LEG2.PAYMENT.FREQ | NA | NA | OC.UPD.FLOAT.LEG2.PAYMENT.FREQ | NA | NA |
FLOAT.LEG2.PAYMENT.MULT | NA | NA | OC.UPD.FLOAT.LEG2.PAYMENT.MULT | NA | NA |
FLOAT.RR.MULT.LEG1 | NA | NA | OC.UPD.FLOAT.RR.MULT.LEG1 | NA | NA |
FLOAT.RR.FREQ.LEG | NA | NA | OC.UPD.FLOAT.RR.FREQ.LEG | NA | NA |
FLOAT.RR.MULT.LEG2 | NA | NA | OC.UPD.FLOAT.RR.MULT.LEG2 | NA | NA |
STRIKE.PRICE.NOTATION | NA | NA | NA | OC.UPD.STRIKE.PRICE.NOTATION | NA |
MAT.DATE.UNDERLYING | NA | NA | NA | OC.UPD.MAT.DATE.UNDERLYING | NA |
COMPLEX.TRADE.ID | NA | NA | NA | SY.DX.REFERENCE | SY.DX.REFERENCE |
The following are the existing field changes for FRA, ND.DEAL, DX.TRADE, FX and Swaps:
Field | Existing Mapping | New Mapping |
---|---|---|
OTHER. CPARTY. ID |
![]() | |
PRICE. NOTATION (only for NDF) |
![]() |
Field | Procedure |
---|---|
CPARTY.CORP.SECTOR |
![]() |
OTHER.CPARTY.ID.TYPE |
![]() |
ID.TYPE.BENEFICIARY |
![]() |
PROD.CLASSIFICATION.TYPE |
![]() |
PRICE.NOTATION |
![]() |
LEVEL |
![]() |
PROD.CLASSIFICATION |
![]() |
PROD.IDEN.TYPE |
![]() |
PROD.IDENTIFICATION |
![]() |
The following fields are applicable only for Swaps:
FIXED.LEG2.RATE.DAY.COUNT |
![]() |
FIXED.LEG.PAYMENT.MULT |
![]() |
FIXED.LEG2.PAYMENT.FREQ |
![]() |
FIXED.LEG2.PAYMENT.MULT |
![]() |
FLOAT.LEG.PAYMENT.MULT |
![]() |
FLOAT.LEG2.PAYMENT.FREQ |
![]() |
FLOAT.LEG2.PAYMENT.MULT |
![]() |
FLOAT.RR.MULT.LEG1 |
![]() |
FLOAT.RR.FREQ.LEG |
![]() |
FLOAT.RR.MULT.LEG2 |
![]() |
STRIKE.PRICE.NOTATION |
![]() |
MAT.DATE.UNDERLYING |
![]() |
COMPLEX.TRADE.ID |
![]() |

This application enables the user to map the fields. The ID of the record needs to be in the following format: APPLICATION*OC.VAL.COLL.DATA.
- FRA.DEAL*OC.VAL.COLL.DATA
- ND.DEAL*OC.VAL.COLL.DATA
- SWAP*OC.VAL.COLL.DATA
- DX.TRADE*OC.VAL.COLL.DATA
- FOREX*OC.VAL.COLL.DATA
The following is the list of field mapping routines released under core:
SWAP | DX.TRADE | FOREX |
---|---|---|
OC.UPD.VAL.DATE.TIME | OC.UPD.VAL.DATE.TIME | OC.UPD.VAL.DATE.TIME |
LINEAR | LINEAR | LINEAR |
LINEAR | LINEAR | LINEAR |
LINEAR | LINEAR | LINEAR |
LINEAR | LINEAR | LINEAR |
LINEAR | LINEAR | LINEAR |
LINEAR | LINEAR | LINEAR |
LINEAR | LINEAR | LINEAR |
LINEAR | LINEAR | LINEAR |
LINEAR | LINEAR | LINEAR |
LINEAR | LINEAR | LINEAR |
LINEAR, MARGIN.POSTED.CCY | LINEAR, MARGIN.POSTED.CCY | LINEAR, MARGIN.POSTED.CCY |
LINEAR, MARGIN.REC.CCY | LINEAR, MARGIN.REC.CCY | LINEAR, MARGIN.REC.CCY |
The following are the new fields introduced for FRA, NDF, DX.TRADE, FX and Swap:
Field | Procedure |
---|---|
VAL.DATE.TIME
|
|
INITIAL.MARGIN.POSTED |
|
CCY.IN.MAR.POSTED |
|
VARIATION.MARGIN.POSTED |
|
INITIAL.MARGIN.RECEIVED |
|
CCY.IN.MAR.RECEIVED |
|
VARIATION.MARGIN.REC |
|
EXCESS.COLL.POSTED |
|
CCY.EXC.COLL.POS |
|
EXCESS.COLL.RECEIVED |
|
CCY.EXC.COLL.REC |
|


In this topic