Accounting Events Lifecycle Guide
This brief guide describes accounting events, which are emitted in addition to business events for a variety of banking products. Temenos Enterprise Pricing (TEP) supports both events and API communication.
For example, when the user executes the API holdings/accounts/savingsAccounts/{savingsAccountId}/credits
for a credit transaction in an account for $1000, then the business event is emitted as accounts.credit.transactionExecuted
and the accounting event updateAccountingJournalEntries.accountingJournalEntriesUpdated
is emitted, together with the API response.
Relevant Events Lifecycle Guides
See the following Events Lifecycle Guides, which describe the APIs that execute the transaction, the business events, related to user-initiated lifecycle activity in an account, and accounting events.
- Savings Account Lifecycle Guide
- Multicurrency Events Lifecycle Guide
- Term Deposit Events Lifecycle Guide
- Lending Events Lifecycle Guide
Accounting Events By Banking Product
The following tables describe the business events for each type of banking product (such as accounts, deposits, lending and multicurrency products) which trigger accounting events.
Note: The lifecycle events for account products are also applicable to multicurrency products.
Account
Business Action | API | Business Event |
Credit Account | /holdings/accounts/savingsAccounts/{savingsAccountId}/credits |
accounts.credit.transactionExecuted |
Debit Account | /holdings/accounts/savingsAccounts/{savingsAccountId}/debits |
accounts.debit.transactionExecuted |
Set Overdraft Limit | /holdings/accounts/savingsAccounts/{savingsAccountId}/limits |
accounts.updateLimit.limitUpdated |
Deposits
Business Action | API | Business Event |
Term Deposit Funding | /holdings/accounts/savingsAccounts/{savingsAccountId}/credits |
accounts.credit.transactionExecuted |
Term Deposit Early Withdrawal | /holdings/accounts/savingsAccounts/{savingsAccountId}/debits |
accounts.debit.transactionExecuted |
Set Overdraft Limit | /holdings/accounts/savingsAccounts/{savingsAccountId}/limits |
accounts.updateLimit.limitUpdated |
Lending
Business Action | API | Business Event |
Loan Disbursement | /holdings/loans/mortgages/{mortgageId}/disbursements |
lending.disburse.transactionExecuted |
Loan Repayment | /holdings/loans/mortgages/{mortgageId}/repayments |
lending.repay.transactionExecuted |
Modify Commitment Amount | /holdings/loans/mortgages/{mortgageId}/commitmentIncreases |
lending.modifyCommitment.commitmentModified |
Loan Payoff | /holdings/loans/mortgages/{mortgageId}/payoffs |
lending.settleSettlement.settlementSettled |
Loan Chargeoff | /holdings/loans/mortgages/{mortgageId}/partialChargeOffs |
lending.chargeOffAccount.accountChargeOff |
Loan Writeoff | /holdings/loans/consumerLoans/{consumerLoanId}/writeOffs |
lending.writeOff.loanWrittenOff |
Multicurrency
Business Action | API | Business Event |
Multicurrency Subaccount Transfer |
/accounts/multiCurrencyAccounts/{multiCurrencyAccountId}/positionTransfers |
multiCurrency.internalSweep.transactionExecuted |
Accounting Journal Entries Updated
The following accounting event is generated along with the business event when there's a transaction that updates the balance of an account.
updateAccountingJournalEntries.accountingJournalEntriesUpdated
Event Payload
Payload | Description |
journalEntryType |
Indicates the type of journal entry, such as STMT, CATEG or SPEC. |
positionType |
Indicates which exchange position this entry falls into. Always blank in local currency entries. |
entryDateTime |
Indicates the date and time of the transaction entry. |
departmentId |
Identifies the department where the original transaction was inputted. |
processingDate |
The date on which the entry updated the CRF. |
receivableBalance |
Indicates the receivable balance. |
creditDebitIndicator |
Indicates the type of posting (either Debit or Credit). |
onlineClearedBalance |
Indicates the current cleared balance for the account. |
balanceType |
Specifies the balance type of AA (Arrangement Architecture) related entries. Valid record in the table AC.BALANCE.TYPE . |
uniqueFlag |
Indicates the unique identifier for each accounting event incremental in the second part of the Id if more than one journal entry type is generated. |
workingBalance |
Contains the present balance of the account, which is used for checking by the Limits System and so on. At the start of day, this is the same as the cleared balance (Online Cleared Balance).For Nostro and Internal Accounts, it is updated by all entries when they have been fully authorised. For other customer accounts, it is updated by debit entries when they are validated, and by credit entries when they have been fully authorised (with the exception of any credit or reversal debit entries with exposure dates in the future). |
customerId |
Identifies the customer for the account. Some accounts, such as internal accounts, won't have a customer name attached to them, so won't be displayed here. |
contractSystemId |
Identifies the system by which the entry was generated, and the file from which further details may be obtained. |
Currency |
STMT - The SWIFT currency code for the entry.CATEG -The SWIFT currency code for the account or transaction on which the profit or loss was earned.SPEC - Standard Transact currency field. |
payableBalance |
Indicates the payable balance |
systemId |
Identifies the system by which the entry was generated and the application from which further details may be obtained. |
Narrative |
A multivalue field containing a variable number of lines of 34 characters which may be printed on descriptive statements in addition to the standard narrative and/or reference. |
originationReference |
Contains the reference number by which the originating transaction may be accessed in the front end application system which generated the entry. |
transactionReference |
Reference given to the transaction. |
exposureDate |
Indicates the actual date on which the clear funds are available. |
transactionAmountLocalCurrency |
Specifies the amount of the entry expressed in local currency. |
transactionCode |
Identifies the type of transaction. The code is used to determine the references and narratives that will be printed on statements and for M.I.S. and charging details. |
valueDate |
The date on which the entry is to be given value for interest purposes. Not used for entries over internal accounts. |
Authorizer |
The authoriser of the contract. |
companyId |
Specifies the branch or office where the account is held. |
eventTypeId |
Indicates the corresponding event for each activity triggered. |
onlineActualBalance |
Contains the current actual balance of the account. |
contractId |
Identifies the transaction, in this case, the arrangement Id. |
bookingDate |
Contains the run date on which the entry was generated. |
balanceUpdateStage |
Indicates the balance update stage, in this case, accounting. |
allocationRuleId |
Indicates the allocation rule for the transaction which in turn is used to determine the type of accounting entries to be raised and the content of these entries. |
balanceType |
Specifies the balance amount for the corresponding balance type. |
currencyMarket |
Indicates the currency market of the entry. |
Sample Payload
- Sample Code: Activity Pricing Event
-
{ "sourceSystem": "AccountTBC", "accountingCompany": "GB0010001", "journalEntries": [ { "journalEntryType": "STMT", "positionType": "TR", "entryDateTime": "20230515072914434", "departmentId": "1", "processingDate": "20231222", "receivableBalance": "0", "creditDebitIndicator": "CREDIT", "onlineClearedBalance": "52000", "balanceType": "CURBALANCE", "uniqueFlag": "202245787446754.030001", "workingBalance": "52000", "customerId": "2311546498", "contractSystemId": "AC", "currency": "USD", "payableBalance": "0", "entryReference": "AA23356YZSNC", "systemId": "AA", "narratives": [ { "narrative": "Account" }, { "narrative": "Account Credited" } ], "originationReference": "1013715738", "transactionReference": "AAACT23356P136XF5H", "exposureDate": "20231222", "transactionAmountLocalCurrency": "12000.00", "transactionCode": "890", "valueDate": "20231222", "authoriser": "57874_INPUTTER", "accountOfficer": "2620", "companyId": "GB0010001", "eventTypeId": "ACCOUNT-CR.MOVEMENT-PAY-CUR", "bookedBalance": "52000", "onlineActualBalance": "52000", "contractId": "1013715738", "bookingDate": "20231222", "balanceUpdateStage": "Accounting", "allocationRuleId": "ACCOUNTS-ACCOUNT", "balanceTypeBalances": [ { "balanceType": "CURBALANCE", "balanceAmount": "52000" }, { "balanceType": "AASUSPENSE", "balanceAmount": "-12000" } ], "currencyMarket": "1", "categoryId": "6001" }, { "journalEntryType": "SPEC", "positionType": "TR", "departmentId": "1", "processingDate": "20231222", "receivableBalance": "0", "creditDebitIndicator": "DEBIT", "balanceType": "AASUSPENSE", "uniqueFlag": "202245787446754.030001", "customerId": "2311546498", "contractSystemId": "AC", "currency": "USD", "payableBalance": "0", "systemId": "AAAA", "originationReference": "1013715738", "transactionReference": "AAACT23356P136XF5H", "exposureDate": "20231222", "transactionAmountLocalCurrency": "-12000.00", "transactionCode": "SUS", "valueDate": "20231222", "authoriser": "57874_INPUTTER", "accountOfficer": "2620", "companyId": "GB0010001", "eventTypeId": "ACCOUNT-CR.MOVEMENT-PAY-CUR", "contractId": "1013715738", "bookingDate": "20231222", "balanceUpdateStage": "Accounting", "allocationRuleId": "ACCOUNTS-ACCOUNT", "balanceTypeBalances": [ { "balanceType": "CURBALANCE", "balanceAmount": "52000" }, { "balanceType": "AASUSPENSE", "balanceAmount": "-12000" } ], "currencyMarket": "1" } ] }, "subject":"event", "eventType":"financialAccounting.updateAccountingJournalEntries.accountingJournalEntriesUpdated"}