Introduction to Limits
The term Credit Limit refers to the maximum amount of credit a financial institution extends to a customer. A lending institution extends a credit limit on a line of credit. Usually, the lenders set the credit limits based on information in the application of the person seeking credit, that is, borrowers. Credit limit is one of the factors that affect the consumers' credit scores and can impact their ability to get credit in the future. A lender generally gives lower-credit limits to high-risk borrowers because they may not be able to repay the debt. Low-risk borrowers usually get higher credit limits, giving them higher flexibility to spend.
The limits are determined by banks, alternative lenders and credit card companies based on the information related to the borrower, such as
- Borrower's credit rating
- Personal income
- Loan repayment history and other factors
The line of credit is the maximum amount of money a lender allows a borrower to spend on a revolving or non-revolving credit limits.
The Limit (LI) module provides the credit limit or line of credit in Temenos Transact. All the business applications in Temenos Transact refer to the LI module for creation and maintenance of the line of credit facility applicable to the business scenario.
Temenos Transact supports the distributed architecture for several functionalities. The stand-alone systems are positioned as a distinct Temenos Transact subsystem providing different banking capabilities that can be simply hosted on the cloud platform based on the service required by the bank.
The Limit Banking Capability is one such subsystem that caters to customer credit risk management operations. It is designed to work as a stand-alone system interacting with the other subsystems in performing the credit risk management service. It communicates with the other banking capabilities through API in the distributed architecture.
Product Configuration
Credit limits are held by customer and product. Simple limits can be defined for a single customer and single product. However, more complex limits can also be configured with multiple levels.
Limits are held by the customer at two levels:
- Individual
- Liability group
Also, limits can be held by the product as 12 levels:
- 10 levels of sub-product
- Product
- Global
Thus, an individual trade can be updated as six limits.
In this example, bank provides an unsecured loan to ABC Ltd of 3 million USD. ABC Ltd is a part of the larger group, ABC International. Bank monitors the limits at both company and group levels. Unsecured loans are a sub-product within loans and the limits are monitored at both levels. Finally, the bank sets a limitation on all business with ABC Ltd and with ABC International, and these limits are held at the global-level.
Consequently, the unsecured loan has updated six limits. If any limit is exceeded, an override is raised during the input of loan.
- LIMIT application holds the credit limits.
- LIMIT.REFERENCE application holds sub-products, products and global definitions.
- CUSTOMER application holds the customers and customer liability definitions.
- LIMIT.PARAMETER application defines the various high-level parameters regarding the application. It links contracts and accounts to LIMIT.REFERENCE.
The main limit parameters are shown in the below flowchart.
Limits can also be set to monitor the exposure against currencies, countries and industries. These limits are monitored overnight. The LIMIT application uses the parameter and product tables to define the structure of limits.

This application defines the parameters that determine the way in which the limit system operates. LIMIT.PARAMETER record can have the ID as ‘SYSTEM’. The LIMIT.PARAMETER application controls the following:
- An indicator to specify if the foreign exchange contracts must be netted before limit comparison.
- A 'number of days' to define how many days prior to Limit Expiry Date and Review Date (can be fixed in the Review Frequency field) in the LIMIT application, the approach of these events must be reported.
- A date and cycle to indicate when the first revaluation occurs and at what frequency thereafter.
- A date and cycle to indicate when a central liability report (including those liability numbers which did not move) must be produced in the back-end process.
- A date and cycle to indicate when the commodity, country and currency reports must be produced.
- A ‘number of days’, administrative Extension Days, define the maximum number of days by which the expiry date of a limit can be ’administratively’ extended before a new expiry date must be assigned to the limit.
- The LIMIT application is defined according to the specific requirements of the bank. The most important feature of this application is that it allows the bank (for each financial application) to define the precise rules applicable to an environment. In this way, the limit verification process can be established by the bank according to a bank’s own set of rules without any program maintenance.
The product group definition that allows the bank to specify the different products, (in bank’s opinion) must be part of the commodity, country and currency exposure.
Creation of Other Record IDs:
The LIMIT.PARAMETER application allows the creation of other record IDs besides SYSTEM. These record IDs can have a valid legacy application (that is, ACCOUNT, LD, MM and FOREX) as ID. The purpose of these records is to move their parametersation, which was initially done in the SYSTEM record, to new individual records for each application to improve system performance.
For example, for the ACCOUNT application, the user can create a new record, which includes all the necessary parametrisation for this particular application.

In Limit TBC, the default configuration for LIMIT.PARAMETER is available in the SYSTEM record. The user can update the SYSTEM record with the limit product configuration applicable to external applications such as Lending TBC. The conditions determine the way in which limit products are used to create limits.
The following user actions are allowed in LIMIT.PARAMETER to configure the limit product used by the external contracts,
- The LI.EXTERNAL.CONTRACT, which is an application in the Limit TBC that stores the details of the external contracts, can be configured as a value in the Application field of the SYSTEM record or as a separate record in the LIMIT.PARAMETER application, to map the limit product used by the external contract or application.
- The contract details and limit product details stored in the LI.EXTERNAL.CONTRACT application are validated against the product configurations in the LIMIT.PARAMETER application.
The list of configurations in LIMIT.PARAMETER that is not supported in Limit TBC is given below:
- Product and product group definition for Currency, Commodity and Country.
- Excess limit check for DDA service.
- Default product definition for money market fiduciary deposits.
- Default account limit for overdraft balances.
- Default product definition for deposit contracts in money market and loans and deposits.
- Default product definition for money market fiduciary placements for information.
- Default product definition for nostro accounts.
- Definition for central liability ledger report, commodity exposure report, country exposure report and currency exposure report.
- Definition for processing the outstanding calculation of forex limit products.
- Setup to determine the accounting type for the balance types specified in collateral code.
- Setup to allow limit sharing group.
- Netting definition for foreign exchange contracts.
- Setup to allow sweeping of unutilized account balances to contingent account balances.
- Setup to define external contract application for correspondent bank limits.
- Setup to define whether auto defaulting of collateral right ID is in limit.
APIs in Limit Banking Capability
The table below describes the APIs in Limit Banking Capability.
Method | URL | Description |
---|---|---|
POST | /holdings/creditLimits/limits/unsecuredLimits | Allows creation of unsecured credit limit for the given limit product and customer |
PUT | /holdings/creditLimits/limits/{limitId}/unsecuredLimits | Allows amendment of unsecured credit limit details |
PUT | /holdings/creditLimits/limits/{limitId}/dates | Allows amendment of expiry date and admin extension date of a credit limit |
PUT | /holdings/creditLimits/limits/{limitId}/limitAvailabilities | Allows amendment to the credit limit availability |
PUT | /holdings/creditLimits/limits/{limitId}/limitAmounts | Allows amendment of credit limit amounts |
PUT | /holdings/creditLimits/limits/{limitId}/approvals | Allows authorization of credit limit |
GET | /holdings/creditLimits/limits/{limitId} | Retrieve the details about the credit limit for the given limit id |
DELETE | /holdings/creditLimits/limits/{limitId} | Allows deletion of an unapproved credit limit |
DELETE | /holdings/creditLimits/limits/{limitId}/cancellations | Allows cancellation of a credit limit |
GET | /holdings/creditLimits/products | Retrieves the details of limit products |
GET | /holdings/creditLimits/products/pendingApprovals | Retrieves the details of unapproved limit products |
GET | /holdings/creditLimits/limits/expiringLimits | Retrieves the list of credit limits which are about to expire |
GET | /holdings/creditLimits/limits/expiredLimits | Retrieves the list of credit limits which are expired |
GET | /holdings/creditLimits/limits/assessments | Retrieves the list of credit limits which are due for review |
PUT | /holdings/creditLimits/limits/{limitId}/scheduleIncreases | Allows increase of limit amount on a periodical schedule |
PUT | /holdings/creditLimits/limits/{limitId}/scheduleDecreases | Allows the decrease of limit amount on a periodical schedule |
PUT | /holdings/creditLimits/products/{productId} | Allows amendment to limit product |
POST | /holdings/creditLimits/products/{productId} | Allows creation of limit product |
DELETE | /holdings/creditLimits/products/{productId} | Allows deletion of unapproved limit product |
PUT | /holdings/creditLimits/products/{productId}/approvals | Allows approval of limit product |
DELETE | /holdings/creditLimits/products/{productId}/cancellations | Allows cancellation of limit product |
GET | /holdings/creditLimits/limits | Retrieve the list of credit lines available for a given customer |
GET | /holdings/creditLimits/limits/pendingApprovals | Retrieves the details of unapproved limit products |
POST | /holdings/creditLimits/limits/reservations | Create credit reservation limits |
PUT | /holdings/creditLimits/limits/{limitId}/intraday | Update intraday limits |
GET | /holdings/creditLimits/limits/overdrafts | Retrieves overdraft reports of credit limits |
POST | /holdings/creditLimits/limits/buffers | Allows creation of buffer limit for a customer or a group of customers |
POST | /holdings/creditLimits/limits/securedLimits | Allows creation of secured credit limit for the given limit product & customer |
PUT | /holdings/creditLimits/limits/{limitId}/securedLimits | Allows amendment of secured credit limit details |
POST | /holdings/creditLimits/accounts/{accountId} | Allows the creation of New contract |
PUT | /holdings/creditLimits/accounts/{accountId} | Allows the amendment of existing contract |
DELETE | /holdings/creditLimits/accounts/{accountId} | Allows the deletion of contract |
POST | /holdings/creditLimits/accounts/transactions/{transactionId} | Allows creation of Limit transaction |
PUT | /holdings/creditLimits/accounts/transactions/{transactionId} | Allows the amendment of Limit transaction |
DELETE | /holdings/creditLimits/accounts/transactions/{transactionId} | Allows deletion of Limit transaction |
PUT | /holdings/creditLimits/accounts/transactions/{transactionId}/status | Updates transaction status associated with the credit limit |
GET | /settings/configurations/creditLimits/parameters/{parameterId} | Retrieves the list of credit limit |
POST | /settings/configurations/creditLimits/parameters/{parameterId} | Allows creation of credit limit configurations |
PUT | /settings/configurations/creditLimits/parameters/{parameterId} | Allows amendment of credit limit configurations |
DELETE | /settings/configurations/creditLimits/parameters/{parameterId} | Allows deletion of credit limit configurations that are pending for approvals |
PUT | /settings/configurations/creditLimits/parameters/{parameterId}/approvals | Allows authorisation of credit limit configurations |
POST | /holdings/creditLimits/subAllocations | Allows the creation of Sub-allocation |
PUT | /holdings/creditLimits/subAllocations/{subAllocationId} | Allows the Amendment of Sub-allocation |
PUT | /holdings/creditLimits/subAllocations/{subAllocationId}/approvals | Allows the Approval of Sub-allocation |
DELETE | /holdings/creditLimits/subAllocations/{subAllocationId} | Allows the deletion of Unauthorised Sub-allocation |
DELETE | /holdings/creditLimits/subAllocations/{subAllocationId}/cancellations | Allows the canecellation of Sub-allocation |
GET | /holdings/creditLimits/subAllocations | Retrieves the List of Sub-allocation |
GET | /holdings/creditLimits/subAllocations/pendingApprovals | Retrieves the List of Unauthorised Sub-allocation |
POST | /party/customers/groupPurposes/{groupPurposeId} | Allows creation of customer group purpose |
PUT | /party/customers/groupPurposes/{groupPurposeId} | Allows amendment of customer group purpose |
DELETE | /party/customers/groupPurposes/{groupPurposeId} | Allows deletion of unapproved customer group purpose |
PUT | /party/customers/groupPurposes/{groupPurposeId}/approvals | Allows authorization of customer group purpose |
DELETE | /party/customers/groupPurposes/{groupPurposeId}/cancellations | Allows cancellation of customer group purpose |
POST | /party/customers/groups/{groupId} | Allows creation of customer group |
PUT | /party/customers/groups/{groupId} | Allows amendment of customer group |
DELETE | /party/customers/groups/{groupId} | Allows deletion of customer group |
PUT | /party/customers/groups/{groupId}/approvals | Allows authorization of customer group |
GET | /party/customers/groupPurposes/pendingApprovals | Retrieves the list of unapproved customer group purposes |
GET | /party/customers/groupPurposes | Retrieves the list of customer group purposes |
GET | /party/customers/groups/pendingApprovals | Retrieves the list of unapproved customer groups |
GET | /party/customers/groups | Retrieves the details of customer group |
POST | /reference/relationships/{relationshipId} | Allows the creation of Relationship |
PUT | /reference/relationships/{relationshipId} | Allows the amendment of relationship |
GET | /reference/relationships/{relationshipId} | Retrieves the relationship details |
GET | /reference/relationships | Retrieves the relationships |
GET | /holdings/creditLimits/limits/riskExposures | Retrieves exposure summary of a customer |
Business Events
Limit TBC interacts through events with external systems or business applications. Whenever a significant action occurs, the system creates business events such as creating or modifying the limit product and credit limit in the Limit TBC. The business events communicate with various external subsystems or solutions through an event-driven architecture. The communication occurs in both ways between the subsystems, and the events emitted by the Limit TBC are consumed by the external subsystems, and vice versa.

The events related to Limit TBC are classified based on the event class definition in the MS.EVENT application as given below:
- Limit products – Events emitted during the limit product life cycle.
- Credit limits – Events emitted during the credit limit life cycle.
- Limit contracts – Response events emitted to the external TBC during the contract life cycle.
- Limit transactions - Response events emitted to the external TBC during the transaction processing.
The following events are emitted by the Limit Banking Capability:

The table below describes the events emitted during the life cycle of the limit product.
Event Name | Description |
---|---|
CreditLimits.CreateProduct.ProductCreated | Indicates the creation of a new Limit product |
CreditLimits.CreateValidationProduct.ValidationProductCreated | Indicates the creation of validation limit Product |
CreditLimits.CreateUtilisationProduct.UtilisationProductCreated | Indicates the creation of utilisation limit Product |
CreditLimits.UpdateLimitProduct.ProductUpdated | Indicates the change in limit product |
CreditLimits.CancelLimitProduct.ProductCancelled | Indicates the limit product cancellation |
creditLimits.createReservationProduct.reservationProductCreated | Indicates the creation of a reservation product |
creditLimits.createIntradayProduct.intradayProductCreated | Indicates the creation of intraday limit product |
creditLimits.updateIntradayProduct.intradayProductUpdated | Indicates the change in the intraday limit product |

The table below describes the events emitted during the life cycle of the credit limit.
Event Name | Description |
creditLimits.cancelLimit.limitCancelled | Indicates cancellation of the limit |
creditLimits.createBufferLimit.bufferLimitCreated | Indicates creation of buffer limit |
creditLimits.createIntradayLimit.intradayLimitCreated | Indicates creation of intraday credit limit |
creditLimits.createLimitParameter.limitParameterCreated | Indicates creation of limit parameter |
creditLimits.createReportingLimits.customerReportingLimitsCreated | Indicates creation of reporting credit limit |
creditLimits.createReservationLimit.reservationLimitCreated | Indicates creation of reservation limit |
creditLimits.createSecuredLimit.securedLimitCreated | Indicates creation of secured limit |
creditLimits.createUnsecuredLimit.unsecuredLimitCreated | Indicates creation of unsecured limit |
creditLimits.limitExpiryDueDate.expiryDue | Indicates limit expiry due date |
creditLimits.limitExpiryFailure.expiryFailed | Indicates limit expiry failure |
creditLimits.limitReviewDate.reviewDateReached | Indicates review of limit on the review date |
creditLimits.limitReviewDueDate.reviewDue | Indicates review of limit |
creditLimits.reportLimitBreach.validationLimitBreached | Indicates validation limit breach |
creditLimits.reportLimitDecrease.limitDecreased | Indicates decrease limit schedule is processed |
creditLimits.reportLimitExpiry.limitExpired | Indicates limit expired |
creditLimits.reportLimitIncrease.limitIncreased | Indicates increase limit schedule is processed |
creditLimits.updateExpiryDate.limitExpiryDateUpdated | Indicates update of the expiry date of limit |
creditLimits.updateIntradayLimit.intradayLimitUpdated | Indicates amendment of an intraday credit limit |
creditLimits.updateLimit.limitUpdated | Indicates amendment of limit |
creditLimits.updateLimitAmount.limitAmountUpdated | Indicates update of limit amounts |
creditLimits.updateLimitAvailability.limitAvailabilityUpdated | Indicates update of limit availability |
creditLimits.updateLimitParameter.limitParameterUpdated | Indicates amendment of limit parameter |
CreditLimits.CreateValidationLimit.ValidationLimitCreated | Indicates creation of new validation Limit |
Creditlimits.CreateUtilisationLimit.UtilisationLimitCreated | Indicates creation of new utilisation Limit |
CreditLimits.UpdateExpiryDate.LimitExpiryDateUpdated | Indicates a change in the limit expiry date |
creditLimits.updatelimitutilisation.utilisationUpdated | Indicates a change in utilisation amount |
CreditLimits.recordUtilisation.UtilisationExceeded | Indicates that limit utilization amount exceeded |

The table below describes the events emitted by the Limit TBC as a response during the life cycle of the external contract.
Event Name | Description |
---|---|
creditLimits.delinkContract.contractDelinked | Indicates the delink contract from the limit |
creditLimits.recordContractClosure.contractClosed | Indicates the closure of the limit contract |
creditLimits.recordContractLink.contractRecorded | Indicates the contract linkage with the limit |
creditLimits.updateContractLimit.contractLimitUpdated | Indicates the change in the limit of the contract |
creditLimits.updateContractOwners.contractOwnersUpdated | Indicates the change in the owner of the contract |
creditLimits.updateContractProperties.contractDetailsUpdated | Indicates the change in properties of the contract |
creditLimits.updateContractTerm.contractTermUpdated | Indicates the change in contract terms |

The table below describes the event emitted by the Limit TBC as a response to transaction processing on the underlying contract.
Event Name | Description |
---|---|
creditLimits.updateExposure.exposureUpdated | Indicates the limit exposure update |

The table below lists the events emitted during the limit parameter creation and amendment.
Event Name | Description |
---|---|
CreditLimits.CreateLimitParameter.LimitParameterCreated | Indicates the limit parameter creation |
CreditLimits.UpdateLimitParameter.LimitParameterUpdated | Indicates the limit parameter amendment |

The table below describes the event emitted during the creation and amendment of limit sub-allocation.
Event | Description |
---|---|
creditLimits.createlLimitSubAllocation.limitSubAllocationCreated | Indicates the Creation of Sub-allocation |
creditLimits.updatelLimitSubAllocation.limitSubAllocationUpdated | Indicates the amendment of Sub-allocation |
creditLimits.cancelLimitSubAllocation.limitSubAllocationCancelled | Indicates the reversal of Sub-allocation |
creditLimits.expireLimitSubAllocation.limitSubAllocationExpired | Indicates the Expiry of Sub-allocation |
creditLimits.updateLimitSuballocationGiven.limitSuballocationGivenUpdated | Indicates that Sub-allocation is given from the limit |
creditLimits.updateLimitSuballocationTaken.limitSuballocationTakenUpdated | Indicates that Sub-allocation is taken from External limit |
creditLimits.restoreimitSuballocation.limitSuballocationRestored | Indicates that sub-allocation is given was restored |
creditLimits.revokeLimitSuballocation.limitSuballocationRevoked | Indicates that Sub-allocation taken was revoked |

The table below describes the event emitted during amendment of Fed secured variable limit event.
Event | Description |
---|---|
creditLimits.updateSecuredAmount.securedAmountUpdated | Indicates the change of Fed secured limit Amount |

The table below describes the event emitted during the creation and amendment of customer group from Party microservice.
Event | Description |
---|---|
party.createCustomerGroup.customerGroupCreated | Indicates the creation of customer group |
party.updateCustomerGroup.customerGroupUpdated | Indicates the amendment of Customer Group |
party.closeCustomerGroup.customerGroupClosed | Indicates the Closure of Customer group |

The table below describes the event emitted for creation and amendment of customer liability group limit.
Event | Description |
---|---|
CreditLimits.CreateLiabilityGroupLimit.LiabilityGroupLimitCreated | Indicates the Customer Customer Liability group creation |
CreditLimits.UpdateLiabilityGroupLimit.LiabilityGroupLimitUpdated | Indicates the Customer Customer Liability group Amendment |
CreditLimits.ReverseGroupUnsecuredLimit.GroupUnsecuredLimitReversed | Indicates the reversal of Unsecured Customer libility group limit |
CreditLimits.ReverseGroupsecuredLimit.GroupSecuredLimitReversed | Indicates the reversal of secured Customer liability group limit |
CreditLimits.ReverseLiabilityGroupLimit.LiabilityGroupLimitReversed | Indicates the reversal of Customer liability group limit |

The loans are created in the Lending Banking Capability, an external subsystem.
The following sequence of events take place when the loan is created or updated in the Lending TBC:
- The Lending TBC emits command events to Limit TBC whenever a contract is created or updated.
- The adapter microservice converts the events emitted from Lending TBC to a format supported by Limit TBC and emits the events to Limit TBC.
- The event listener receives the events and sends them to Limit TBC, which evaluates the events and updates the application in Limit TBC that holds the details of the external contracts and transactions.
- The LI.EXTERNAL.CONTRACT application is created and updated for all the external contracts that have a link with the limit with the relevant details of the contract.
- The LI.EXTERNAL.TRANSACTION application is created and updated for all the transactions on the contract with the relevant details.
The table below describes the list of events received by the Limit TBC from Lending TBC.
Event Name | Description |
---|---|
creditLimits.deleteExposure | Transaction command event for exposure delete |
creditLimits.delinkContract | Event to be emitted when the limit is delinked from the contract |
creditLimits.recordContractClosure | Event to be emitted when contract linked to limit closed |
creditLimits.recordContractLink | Event to be emitted for the limit and contract link |
creditLimits.updateContractLimit | Event to be emitted for an update in limit property linked with the contract |
creditLimits.updateContractOwners | Event to be emitted when there is a change in customer for the contract linked to limit |
creditLimits.updateContractProperties | Event to be emitted when any change to contract linked to limit |
creditLimits.updateContractTerm | Event to be emitted when there is a change to the contract term |
creditLimits.updateExposure | Transaction command event for exposure update |
creditLimits.updateTransactionStatus | Transaction command event when the exposure update is authorized |
In this topic