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.

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"}