[ 
https://issues.apache.org/jira/browse/FINERACT-2760?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Victor Romero updated FINERACT-2760:
------------------------------------
    Description: 
*Adding an date of issuance and expiry date to m_document in Apache Fineract is 
useful for better document lifecycle management, compliance and operational 
control.*
h3. What m_document is

The m_document table stores general file attachments linked to various entities 
(clients, loans, savings accounts, groups, etc.). It currently contains:
 * id
 * parent_entity_type / parent_entity_id (what the document belongs to)
 * name / file_name
 * size / type
 * description
 * location / storage_type_enum

There is *no native expiry or validity date* field.
h3. Why an expiry date is valuable
 # *Regulatory & compliance requirements* Many attached documents have limited 
validity (ID scans, proof of address, contracts, insurance certificates, tax 
documents, financial statements, etc.). Regulators often require institutions 
to work only with current, non-expired supporting documents. Storing an expiry 
date makes this enforceable in the system instead of relying on manual checks.
 # *Automated monitoring and alerts* With an expiry date the platform can:
 ** Run scheduled jobs that list documents expiring soon (e.g. in 30/60/90 
days).
 ** Automatically flag or deactivate expired documents.
 ** Trigger notifications or block certain actions (loan approval, 
disbursement, account activation) until a valid replacement is uploaded.
 # *Risk and operational control* Using outdated supporting documents increases 
compliance risk and can lead to rejected applications or audit findings. 
Capturing expiry allows the system to treat a document as no longer trustworthy 
after that date.
 # *Better document lifecycle management* Staff and self-service users can 
clearly see which attachments are still valid. This improves onboarding 
quality, reduces repeated manual verification, and helps keep client/loan files 
clean and up-to-date.
 # *Reporting and audits* Compliance officers and auditors can easily generate 
reports of entities with expired or soon-to-expire documents which is a common 
requirement during regulatory examinations or internal reviews.

h3. Practical benefits in a Fineract context
 * Enables validation rules when uploading or updating documents (reject past 
expiry dates or warn about near-expiry ones).
 * Supports business events or hooks that fire when a document approaches or 
reaches expiry.
 * Makes the data more complete for integrations with external KYC/AML systems, 
document management platforms, or credit bureaus that expect validity dates.
 * Aligns Fineract with common practices in commercial core banking systems, 
where document expiry is a standard attribute for attached files.

In short, without an expiry date the system only knows that a file exists; with 
it, the system knows whether the document is still usable and relevant. That 
single piece of information strengthens compliance, reduces operational risk, 
and improves day-to-day document management across clients, loans, and other 
entities.

> Add expiry date to m_document
> -----------------------------
>
>                 Key: FINERACT-2760
>                 URL: https://issues.apache.org/jira/browse/FINERACT-2760
>             Project: Apache Fineract
>          Issue Type: Bug
>            Reporter: Victor Romero
>            Priority: Major
>
> *Adding an date of issuance and expiry date to m_document in Apache Fineract 
> is useful for better document lifecycle management, compliance and 
> operational control.*
> h3. What m_document is
> The m_document table stores general file attachments linked to various 
> entities (clients, loans, savings accounts, groups, etc.). It currently 
> contains:
>  * id
>  * parent_entity_type / parent_entity_id (what the document belongs to)
>  * name / file_name
>  * size / type
>  * description
>  * location / storage_type_enum
> There is *no native expiry or validity date* field.
> h3. Why an expiry date is valuable
>  # *Regulatory & compliance requirements* Many attached documents have 
> limited validity (ID scans, proof of address, contracts, insurance 
> certificates, tax documents, financial statements, etc.). Regulators often 
> require institutions to work only with current, non-expired supporting 
> documents. Storing an expiry date makes this enforceable in the system 
> instead of relying on manual checks.
>  # *Automated monitoring and alerts* With an expiry date the platform can:
>  ** Run scheduled jobs that list documents expiring soon (e.g. in 30/60/90 
> days).
>  ** Automatically flag or deactivate expired documents.
>  ** Trigger notifications or block certain actions (loan approval, 
> disbursement, account activation) until a valid replacement is uploaded.
>  # *Risk and operational control* Using outdated supporting documents 
> increases compliance risk and can lead to rejected applications or audit 
> findings. Capturing expiry allows the system to treat a document as no longer 
> trustworthy after that date.
>  # *Better document lifecycle management* Staff and self-service users can 
> clearly see which attachments are still valid. This improves onboarding 
> quality, reduces repeated manual verification, and helps keep client/loan 
> files clean and up-to-date.
>  # *Reporting and audits* Compliance officers and auditors can easily 
> generate reports of entities with expired or soon-to-expire documents which 
> is a common requirement during regulatory examinations or internal reviews.
> h3. Practical benefits in a Fineract context
>  * Enables validation rules when uploading or updating documents (reject past 
> expiry dates or warn about near-expiry ones).
>  * Supports business events or hooks that fire when a document approaches or 
> reaches expiry.
>  * Makes the data more complete for integrations with external KYC/AML 
> systems, document management platforms, or credit bureaus that expect 
> validity dates.
>  * Aligns Fineract with common practices in commercial core banking systems, 
> where document expiry is a standard attribute for attached files.
> In short, without an expiry date the system only knows that a file exists; 
> with it, the system knows whether the document is still usable and relevant. 
> That single piece of information strengthens compliance, reduces operational 
> risk, and improves day-to-day document management across clients, loans, and 
> other entities.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to