End of Day actions in Kwara

Each day at midnight (your organisation's time) Kwara automatically performs some operations to ensure all account states, days in arrears, penalties, and fees are up to date in accordance with the transactions posted so far.

These automatic actions are known as “cronjobs” in Kwara, follow a particular sequence, and contains 2 type of jobs: daily and hourly jobs. When the cron runs, if it wasn't already executed on that day, then it runs daily and hourly jobs. Otherwise, it runs only hourly jobs. At both types of jobs have finished, backup jobs are executed.

Daily jobs

are executed if not already in progress or completed. Daily jobs are executed sequentially, exactly in this order:

  1. Account jobs

  2. Early organization jobs

  3. Loan jobs, savings jobs

  4. Account jobs (Yes, account jobs are executed twice. See note below for details.)

  5. Late organization jobs

Account jobs

  • REDRAW_TRANSFER -> make automatic transfers from the Redraw Balance to the loan account. It will automatically pay a loan if there is something in the redraw balance (>0) and if there is any balance to pay (principal + interest + fee + penalty > 0).

  • AUTOMATED_TRANSFERS -> automated transfers from deposit settlement accounts to loan accounts, as per loan account schedule

  • UPDATE_SAVINGS_WITH_PRODUCT_SETTINGS -> update deposits accounts with any changes made to underlying Deposit Product Settings

  • UPDATE_LOANS_WITH_PRODUCT_SETTINGS -> update loan accounts with any changes made to underlying Loan Product Settings

Please Note

As noted above, Account jobs are executed twice as part of the daily jobs. This behaviour is necessary to support certain business scenarios (especially those involving backdated or adjusted transactions), but does result in slightly unexpected behaviour in rare cases. For example, when disbursing a loan where the first repayment date is either in the past or on the current day, Kwara will collect the loan repayment with two transfer transactions rather than just one.

If you have additional questions about Kwara's End of Day actions, please contact us at
support@kwara.com.

Early organization jobs

  • RESET_GL_JOURNAL_ENTRY_SUMMARIES_INFO -> reset all the information related to journal entry summary items in order to be able to recreate them from scratch

  • GENERATE_GL_JOURNAL_ENTRY_SUMMARIES -> generate the GL journal entries summary items for the accounting entries logged since the last EOD job was executed

  • UPDATE_JOURNAL_ENTRIES_FOR_EARLY_INTEREST_ACCRUAL -> update the journal entries reflecting the accrues interest before the accrual takes place

Loan jobs

  • AUTO_CLOSE_PAID_OFF_LOANS -> automatic closure of loan accounts with zero balances, based on the Loan Product Dormancy settings

  • AMOUNTS_AMORTIZATION -> Fee amortization in accounting

  • INTEREST_RATE_UPDATE -> Update Interest Rate based on Index Interest Rate changes

  • TAX_RATE_UPDATE -> update tax rate based on Tax Rate changes

  • CREATE_REVOLVING_CREDIT_DUE_REPAYMENTS -> create repayment schedule for Revolving Credit loan accounts

  • LOCK_CAPPING_CHECKER -> check if capping constraints are exceeded and pass the loan account into locked capping state if necessary

  • LOAN_INTEREST_APPLY -> application of interest accrued

  • LATE_LOANS_CHECKER -> set the loan accounts to "In Arrears" state

  • PENALTIES_APPLY-> application of the penalties

  • AUTO_LOCK_ARREARS_LOANS -> lock the loan accounts that have been in arrears for a specific period of time as defined in Loan Product setup

  • DUE_AMOUNTS_UPDATE -> update all due amounts

Savings jobs

  • SAVINGS_ACCOUNT_APPRAISER:accrue and apply interest (positive and overdraft interest)for saving accounts with Tiered Interest -> update Interest Rate and loan transaction if neededupdate overdraft account state -> update account state from Active to Active In Arrears and log activity when Expiry date is met and account's balance is negative

  • AUTO_DORMANT_INACTIVE_SAVINGS_ACCOUNTS -> set deposit accounts as Dormant as defined in Deposit Product Settings

Late organization jobs

  • UPDATE_JOURNAL_ENTRIES_FOR_LTE_INTEREST_ACCRUAL -> update journal entries reflecting the accrued interest after the accrual takes place

  • END_OF_DAY_CLOSURE -> perform end of day accounting closures

  • UPCOMING_REPAYMENTS_CHECKER -> search for all the repayments which are in Pending or Partially Paid state and trigger reminder Notifications using templates (check the due dates equal to today plus a configured number of days (how many days before that due date)  and create notifications)

  • ACCOUNT_IN_ARREARS_CHECKER -> triggers notifications after a configured number of days since the account is passed into arrears state

  • UPCOMING_DISBURSEMENT_CHECKER -> triggers notifications for Approved accounts with a configured number of days before the expected disbursement date (loans and tranches)

  • ENFORCE_USER_PASSWORD_RESET -> reset user passwords if the period defined in "Internal Controls" is up

  • ORGANIZATION_SNAPSHOT -> create a snapshot of all indicators for organization

Hourly jobs

are executed after daily jobs and they are:

  • SEND_QUEUED_NOTIFICATIONS -> check for queued notifications and send them

  • AUTHORIZATION_HOLDS_EXPIRATION

  • BACKGROUND_PROCESS_EVICTION -> clean any background process (technical)

Backup jobs

are executed after daily and hourly jobs. They are not executed during business hours or if they are already in progress or completed. They are executed on Production only, not on Sandbox. Backup jobs are DATABASE_BACKUP, which will create a copy for the database at that moment.

Please Note

SMS notifications are not sent at midnight, but starting at 9:00 AM (your organization's time).

Manual End of Day Processing

Kwara also allows manually executing the End of Day processes,  instead of having it run automatically every night. Manual execution guarantees that Kwara will not run account appraisals every night, but it will still take the regular database backups every night.

Note that End of Day process need to be run before closing accounting books, to make sure that all the accounts are up to date.

To enable manual End of Day Processing, you must have the feature activated and have your admin switch the processing type to manual from the Kwara Administration section.

Triggering the End of Day Processing can be done from the user interface, by hitting the "Run" button, and also from the UI, by calling the dedicated API 2.0 endpoint.

Please be Aware

This option can be enabled upon request to Kwara support.

Please Note

Triggering the End of Day processing manually will run both the hourly and daily jobs. If the daily jobs already ran for the day, then only the hourly jobs will run.

Did this answer your question?